
I'm Engineering a Versioned Database Storage Engine for Byte-Addressable NVM - eaguyhn
https://hackernoon.com/how-im-engineering-a-temporal-database-storage-engine-for-byte-addressable-non-volatile-memory-af1728kl
======
lichtenberger
Disclaimer: Author here.

Thank you for posting :-) While the storage system is based on a system called
Treetank with a longer history it turns out that Marc Kramis, who came up with
the first ideas and a first implementation for his Ph.D. had a tremendous
vision about the future of persistent storage (for instance fast random reads
in conjunction with fine grained access to storage) and that we can shift our
focus from clustering constraints of traditional B+-trees to a storage engines
which stores a dense distribution of unique, dense strictly sequential 64bit
integers in a keyed persistent, durable trie.

His report "Growing Persistent Trees into the 21st Century" is from 2008:

[http://kops.uni-
konstanz.de/bitstream/handle/123456789/5914/...](http://kops.uni-
konstanz.de/bitstream/handle/123456789/5914/report.pdf?sequence=1&isAllowed=y)

SirixDB strictly drops the requirement of a predefined block-size as well as
clustering. It even versions data pages, which are stored in small sized
variable-length byte arrays. The whole tree of a revision is based on many
tries and revisions are indexed as well as AVL trees for secondary indexes.

The system is also heavily inspired by ZFS and some of their design decitions
put to test on a sub-file level.

Any help in putting forward the vision of a versioned, persistent (in the
functional data structure sense) data store would be amazing :-)

