Hacker News new | ask | show | jobs
user: lichtenberger
created: 2018-12-27
karma: 1804

https://github.com/sirixdb/sirix

I'm working on an evolutionary, accumulate-only database system called SirixDB written in Java (and a module in Kotlin) in my spare time and in my day to day job I'm also working as a software engineer (embedded; besides I'm dancing a lot -- swing dances, mainly Lindy Hop and travel to festivals in Europe often times in my holidays) :-)

Furthermore, I'm working on Brackit (http://brackit.io), a query engine for JSON and XML using a JSONiq like query language. It can be used as ad-hoc in-memory query processor as the query processor of a data store. We envision, that it encapsulates common proven optimizations whereas the individual data stores can add further stages to rewrite the queries for index matching and physical optimizations.

SirixDB (https://sirix.io or https://github.com/sirixdb/sirix) 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 several 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 Git and borrows some ideas and puts these to test on the sub-file level.

In stark contrast to other approaches SirixDB combines copy-on-write semantics with node-level versioning and does not require a write-ahead-log for consistency.

It all started around 2006 as a university / Ph.D. project of Marc Kramis and I worked on the project since 2007 and already did my Bachelor's Thesis, Master's Thesis as well as several HiWi-Jobs on topics regarding 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.

e-mail address: lichtenberger.johannes@gmail.com

submissions:

First Valhalla related stuff will land in Java 28
5 points | 1 comments
Valhalla when? "Now"? Java 27 or 28?
3 points | 0 comments
LeanStore: In-Memory Data Management Beyond Main Memory (Viktor Leis) [video]
2 points | 0 comments
Ask HN: Where is software engineering moving towards in the next years?
2 points | 3 comments
Data Oriented Programming, Beyond Records
2 points | 0 comments
The Static Dynamic JVM – A Many Layered Dive [video]
1 points | 0 comments
After the Big Tech Layoffs
3 points | 0 comments
(Generational) Shenandoah GC (Low Latency) Support in GraalVM Native Images
1 points | 0 comments
Implementation Rust: One Billion Rows Challenge
2 points | 0 comments
Beyond the Vector API – A Quest for a Lower Level API [JVMLS]
1 points | 0 comments
Try the New Valhalla EA Build
3 points | 0 comments
Try Out JEP 401 Value Classes and Objects
2 points | 0 comments
Try Out JEP 401 Value Classes and Objects
3 points | 0 comments
All New Java Language Features Since Java 21
76 points | 125 comments
Ask HN: Which resources do you regularly use to keep yourself updated?
1 points | 3 comments
Valhalla Nullness Emotion [video]
1 points | 0 comments
0 points | 0 comments
How ZGC allocates memory for the Java heap
86 points | 18 comments
Refining Var-Handles in Valhalla
2 points | 0 comments
Generational Shenandoah GC in JDK 24
2 points | 0 comments
JVM Anatomy Quarks
230 points | 85 comments
Compact Object Headers in Java 24
14 points | 0 comments
Sneak Peak at StableValue and SegmentMapper in Java [video]
3 points | 2 comments
Processing a billion Rows in under 2 seconds [video]
2 points | 1 comments
Hexagonal Architecture in Practice [video]
2 points | 0 comments
Async Profiler Manual
1 points | 0 comments
Hello eBPF: Writing a Linux Scheduler in Java with eBPF (15)
1 points | 0 comments
0 points | 0 comments