DEV Community

Discussion on: Hacktoberfest 2020 is here!

Collapse
 
johanneslichtenberger profile image
Johannes Lichtenberger

You can help to build an evolutionary, accumulate-only database system for modern hardware called SirixDB.

The core repository (Java and Kotlin):

"We want to research the indexing of data in a huge persistent data-structure, mapped to persistent storage. SirixDB stores data and indexes of database resources in a huge persistent tree of tries. It allows us to retrieve any past revision and the current revision, whereas the revisions itself are indexed. The system supports time travel queries, reconstruction of any past state, and to revert to any past state. It only ever aggregates data over time and never overwrites data."

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.

The query processor:

"With our research, we want to develop an extensible, retargetable compilation, and runtime framework for driving scripting-like query languages for structured and semi-structured data. Ideally, we envision to prepare the ground for a tool for query languages similar to what the LLVM compiler framework is for general programming languages: an ecosystem in which proven optimization techniques and algorithms are readily available for implementing custom query processing systems."

GitHub logo sirixdb / brackit

Brackit is the query compiler we are using with temporal enhancements

The frontend:

"We want to explore how to visualize time-travel queries best and how best to depict the differences between two revisions or any subtrees."

GitHub logo sirixdb / sirix-svelte-front-end

A GUI console for SirixDB, using Svelte/Sapper.