3 ms·
Key features are: - log-structured storage system with copy-on-write semantics especially well suited for SSDs (random reads, writes are batched and synced to
by lichtenberger 8y ago
Key features are:
- log-structured storage system with copy-on-write semantics especially well suited for SSDs (random reads, writes are batched and synced to disk when a commit is issued)
- implements a novel versioning algorithm called sliding snapshot, which balances read/write-performance and has other beneficial characteristics. We also implement full, incremental and differential versioning at the page-level
- stores hashes of the page-fragments in parent pointers in our main hash array based trie structure in the indirect pages as in ZFS. In the future these can be used to validate the integrity of the whole resource
- compression of each page, as well as encryption in the future
- for each XDM/XML-node in our on-disk structure we optionally store the descendant-count, the child-count as well as a hash of the content
- a diff algorithm, which uses our stable node-identifiers and optionally hashes for comparisons of node-pairs in different revisions
- a RESTful, asynchronous, temporal API written with Vert.x in Kotlin
- several temporal XPath axis extensions, which could also be used for JSON in the future
- several XQuery functions to open, diff, commit... a resource
- opening revisions of resources either by an ID or via a given timestamp. In case of the given timestamp the revision is searched by binary search and either the revision is found or the revision, which is closest to the given point in time is opened