Re:SirixDB – An Evolutionary, Temporal NoSQL Storage System
by refset on Sunday May 05, 2019 @07:22PM
(#19835710)
Cool, thanks for the summary! The user-defined indexes sound particularly intriguing.
The documentation page alludes to payroll, audit and decision support applications -- have you implemented one or more of those already? I have been compiling a list of known uses for bitemporality in the Crux docs which you are more than welcome to borrow from:
https://juxt.pro/crux/docs/bitemp.html#_known_uses
It is great to see all this new enthusiasm for temporal databases now that they are finally viable, decades after all the major research happened :)
Re:SirixDB – An Evolutionary, Temporal NoSQL Storage System
by lichtenberger on Sunday May 05, 2019 @07:28PM
(#19835736)
Will have to sleep now... but yes, the ideas and the first prototype emerged already in I think 2006 from Marc Kramis (back then it internally was named Idefix, then Treetank... but I think Treetank is pretty strange ;-))
https://sirix.io/documentation.html
The main distinctive features are our main document store index, features inherited by ZFS (checksums in parent pointers, the main index, a trie, compression and hopefully soon encryption of page-fragments, always consistent on-disk, log-structured without the need of a WAL...), versioned user-defined indexes, highly concurrent data structures (every transaction has access to one snapshot and we only allow one read/write transaction, parallelization has to be done by the client code) and record-level versioning (also a novel sliding window algorithm -- whereas a slightly other implementation is patented by the founder Marc Kramis).
I might implement pointer swizzling for the upcoming 1.0.0 release, should speedup Sirix considerably :-)
https://sirix.io/features.html
I think XQuery is great for querying JSON data. That said in the future I'd also implement something based on Spark to distribute queries...