
Crux: Bitemporal graph query db for Clojure and java - CurrentB
https://github.com/juxt/crux
======
lichtenberger
Nice to see that temporal or even bitempiral database systems get developed
lately more and more (but most of the time just as extensions to an existing
system), thus I enjoyed reading about your native approach.

Do you store all revisions in one huge LSM- tree indexed by the transactional
start- and end-times?

I'm developing one myself (already started around 2005 or 2006 by a Ph.D.
student) and I'm still eager to put forth the ideas of a versioned data store
:-)

~~~
refset
> Do you store all revisions in one huge LSM- tree indexed by the
> transactional start- and end-times

Specifically, RocksDB uses an LSM tree whilst LMDB uses a B+ tree. You can get
a feel for how Crux maintains its indexes here:
[https://github.com/juxt/crux/blob/master/src/crux/codec.clj#...](https://github.com/juxt/crux/blob/master/src/crux/codec.clj#L25-L32)

Crux doesn't natively track valid-to (end) times, but you can transact a
Delete into the future to achieve the same logical result.

