DEV Community

Discussion on: Hacktoberfest 2021 Guide and Resources!

johanneslichtenberger profile image
Johannes Lichtenberger

I'm working on a temporal data store in my spare time (currently together with two other developers).

It was started at the University of Konstanz with a storage engine written from scratch. It basically maps a huge tree of trie indexes to a sequentially written log-file. Thus, it's a huge revision index with several versioned indexes beneath a revision root page. Data of new revisions is only ever appended and never overwritten. The new revisions share unchanged data with their previous revisions. The data pages are not simply copied entirely. Instead, page fragments with changed records and a few more are stored and referenced from the parent pages.

We have a lot of tasks to work on in different languages, so I'm sure there's something for everyone. Of course you don't have to be a database system expert. I'd be very happy if we receive some contributions :-)

GitHub logo sirixdb / sirix

SirixDB is a temporal, evolutionary database system, which uses an accumulate only approach. It keeps the full history of each resource. Every commit stores a space-efficient snapshot through structural sharing. It is log-structured and never overwrites data. SirixDB uses a novel page-level versioning approach called sliding snapshot.

An Evolutionary, Accumulate-Only Database System

Stores small-sized, immutable snapshots of your data and facilitates querying the full history



Download ZIP | Join us on Slack | Community Forum

Working on your first Pull Request? You can learn how from this free series How to Contribute to an Open Source Project on GitHub and another tutorial: How YOU can contribute to OSS, a beginners guide

"Remember that you're lucky, even if you don't think you are, because there's always something that you can be thankful for." - Esther Grace Earl (

SirixDB uses a huge persistent (in the functional sense) tree of tries, wherein the committed snapshots share unchanged pages and even common records in changed pages. The system only stores page-fragments instead of full pages during a commit to reduce write-amplification. During read operations, the system reads the page-fragments in parallel to reconstruct an in-memory page.

SirixDB currently…

suchitra_13 profile image
Suchitra Author

Will try your project and contribute as well.
Thanks for sharing here, hope it will help others as well😊

johanneslichtenberger profile image
Johannes Lichtenberger

Would be awesome, happy to help you getting into the project :)