Predstavený je významný release SÚDB immudb 1.0, ktorý zaručuje nemennosť a uchovanie všetkých historicky pridaných údajov, chráni pred spätnými úpravami a poskytuje možnosť kryptografického dôkazu vlastníctva údajov. Pôvodne sa projekt vyvíjal ako špecializované NoSQL úložisko manipulujúce s údajmi vo formáte kľúč/hodnota, ale od vydania 1.0 je immudb prezentovaný ako plnohodnotná SÚDB s podporou SQL. Kód projektu je napísaný v jazyku Go a distribuuje sa pod licenciou Apache 2.0.
Informácie v immudb sú uchovávané s využitím štruktúry podobnej blockchainu, ktorá zaručuje integritu celej reťaze existujúcich záznamov a neumožňuje zmeniť už uložené údaje alebo nahradiť/pridať záznam do histórie transakcií. Úložisko podporuje len pridávanie nových údajov, bez možnosti odstránenia alebo zmeny už pridaných informácií. Pokus o zmenu záznamov v SÚDB vedie len k uloženie novej verzie záznamu, staré údaje nie sú stratené a zostávajú dostupné v histórii zmien.
Navyše, na rozdiel od typických riešení založených na blockchaine, immudb umožňuje dosiahnuť výkon na úrovni miliónov transakcií za sekundu a môže sa používať na spúšťanie ľahkých služieb alebo na integráciu svojej funkčnosti do aplikácií vo forme knižnice.

Vysoký výkon sa dosahuje vďaka použitiu LSM stromu (Log-structured merge-tree) s logom hodnôt, ktorý zabezpečuje rýchly prístup k záznamom pri vysokej intenzite pridávania údajov. Na udržanie integrity úložiska je dodatočne využitá stromová štruktúra „Merkleho strom“ (Merkle Tree), v ktorej každá vetva overuje všetky podriadené vetvy a uzly vďaka spoločnému (stromovému) hashovaniu. S konečným hashom si používateľ môže overiť správnosť celej histórie operácií a tiež správnosť minulých stavov DB (koreňový overovací hash nového stavu databázy je vypočítaný s ohľadom na minulý stav).
Klientom a auditorom sa poskytuje kryptografický dôkaz vlastníctva a integrity údajov. Použitie kryptografie s verejnými kľúčmi nevyžaduje od klienta dôveru k serveru, a pripojenie každého nového klienta k SGBD zvyšuje celkovú úroveň dôvery v celé úložisko. Verejné kľúče a zoznamy zrušených kľúčov sa uchovávajú v databáze, a pri vykonávaní operácií s šifrovaním môžu byť použité enclavy Intel SGX.
Medzi funkciami SGBD sa uvádza podpora SQL, režim ukladania kľúč/hodnota, indexy, segmentácia databázy (sharding), vytváranie snapshotov stavu dát, ACID transakcie so podporou izolácie snapshotov (SSI), vysoký výkon čítania a zápisu, optimalizácia pre efektívnu prácu na SSD diskoch, podpora pre prácu vo forme servera a zabudovanej knižnice, podpora REST API a existenciu webového rozhrania na správu. Typické oblasti použitia, v ktorých sú podobné SGBD ako immudb žiadané, zahŕňajú spravovanie transakcií s kreditnými kartami, uchovávanie verejných kľúčov, digitálnych certifikátov, kontrolných súčtov a záznamov, vytváranie duplikovaného úložiska pre dôležité polia v tradičných SGBD. Klientské knižnice na prácu s immudb sú pripravené pre Go, Java, .NET, Python a Node.js.
Kľúčové vylepšenia v vydaní immudb 1.0:
- Podpora SQL s možnosťou ochrany riadkov pred skrytou modifikáciou.
- Režim TimeTravel, ktorý umožňuje prepínanie stavu databázy na určitý moment v minulosti. Vrátane času strihu dát je možné nastaviť na úrovni jednotlivých poddotazov, čo zjednodušuje analýzu zmien a porovnávanie dát.
- Podpora klientského protokolu PostgreSQL, ktorý umožňuje používať s immudb existujúce aplikácie a knižnice navrhnuté na prácu s PostgreSQL. Okrem natívnych klientských knižníc je možné použiť aj typické klientské knižnice Ruby, C, JDBC, PHP a Perl.
- Webová konzola na interaktívnu navigáciu po dátach a administráciu SGBD. Prostredníctvom webového rozhrania je možné posielať požiadavky, vytvárať používateľov a spravovať dáta. Ďalšie je dostupné vzdelávacie prostredie Playground.


Zdroj: opennet.ru


