SirixDB: Sayfa-altı sürümlemeyle bitemporal JSON veritabanı
SirixDB, copy-on-write ve sayfa-altı sürümleme ile her revizyonu anlık sorgulanabilir kılan bitemporal bir JSON veritabanı sistemi.
SirixDB, her revizyonu birinci sınıf veri olarak ele alan açık kaynaklı bir JSON veritabanı. Kayıt üzerine yazma yerine copy-on-write ve sayfa-altı (sub-page) sürümleme kullanıyor: bir commit yalnızca değişen kayıtları içeren sayfa parçaları yazıyor, sliding-snapshot algoritması ise herhangi bir sayfanın en fazla N parçadan (varsayılan 3) yeniden kurulabilmesini garanti ediyor. Sonuç olarak depolama maliyeti değişen kayıt sayısıyla orantılı kalıyor ve eski bir revizyonu okumak, en güncel revizyonu okumakla aynı hızda gerçekleşiyor.
Projenin öne çıkan özelliği bitemporal model: sistem hem verinin ne zaman commit edildiğini (transaction time) hem de gerçek dünyada ne zaman geçerli olduğunu (valid time) ayrı ayrı takip ediyor. Bu, sonradan yapılan düzeltmelerin denetim izini bozmadan hem 'o an ne biliyorduk' hem de 'gerçekte ne olmuştu' sorularının doğru yanıtlanmasını sağlıyor.
Ekip, PostgreSQL ve DuckDB'ye karşı yapılan kıyaslamaları şeffafça paylaşıyor: PostgreSQL küçük doküman ekleme hızında ve toplam depolamada önde giderken, SirixDB gömülü okuma, ~0,3 ms'lik semantik diff ve alt-doküman zaman yolculuğu gibi PostgreSQL'de bulunmayan yeteneklerde öne çıkıyor. DuckDB ile analitik sorgularda dokuz sorgu şeklinden üçünde önde, GraalVM native derlemede ise JVM'e göre 7-17 kat daha hızlı çalışıyor. Tek bir JAR olarak gömülebilen veya REST sunucusu olarak çalıştırılabilen sistem şu an 1.0.0-beta aşamasında ve disk formatı ile API'ler 1.0 sürümüne doğru olgunlaşıyor.