3 ms·
Show HN: Sirix.io – versions XML/JSON efficiently and allows time-travel queries
- lichtenberger 8y agoHi, I had already posted yesterday, but maybe it's of some value for some of you, I still hope at least :-) Sirix.io is all about efficient versioning of your data. That is on the one hand it reduces the storage cost of storing a new revision during each transaction-commit while balancing read- and write-performance through a novel sliding snapshot algorithm and dynamic page compression. On the other hand Sirix supports easy query capabilities for instance to open a specific revision by a timestamp or revisions by a given timespan, to navigate to future or past versions of nodes in the tree-structure and so on. It basically never overwrites data and is heavily inspired by ZFS and borrows some ideas and puts these to test on the sub-file level. It all started around 2006 as a university / Ph.D. project of Marc Kramis and I already spend my Bachelor's Thesis, Master's Thesis as well as several HiWi-Jobs on the project and I'm still more eager than ever to put forth the idea of a versioned, analytics plattform to perform analytical tasks based on current as well as the history of the data. I've been working a lot on Sirix.io the last couple of months and spent most evenings after my day to day software engineering Job. I had already posted around christmas, but now I've added a native JSON storage layer besides XML, that is the storage itself, XQuery extensions for JSON for joint XML- and JSON-querying, a RESTful-API also for JSON, added a website, a forum and first documentation... :-) and last night I release version 0.9.0. So, any feedback, comments, suggestions, just everything is more than welcome. I'll happily (try to? ;)) answer any questions you might have. Happy easter everyone :-) kind regards Johannes https://sirix.io https://sirix.io https://github.com/sirixdb/sirix https://github.com/sirixdb/sirix
- lichtenberger 8y agoOh and I forgot... it for sure supports Diffing capabilities (even an import algorithm for XML-documents currently that tries to find the minimum edit operations to transform a tree into another version of the tree). Once several revisions are stored in Sirix unique IDs are used for comparison and optionally stored hashes can be used by the diffing-algorithms to skip the traversal of subtrees (if the hash-values match). That said, for XML I'm outputting an XQuery Update Script and for JSON-data I have no serialization format as of now. So it's up for discussion basically :-)
- lichtenberger 8y agoWhat might also be interesting are some of the basic features: https://sirix.io/features.html https://sirix.io/features.html And a bit about the concepts/architecture (basically we wrote our storage engine from scratch based on a kind of hash array based tries and concepts from ZFS and our very own novel sliding snapshot versioning algorithm): https://sirix.io/concepts.html https://sirix.io/concepts.html Happy easter to all of you :-) Best regards Johannes