Bolo predstavené významné vydanie immudb 1.0 DBMS, ktoré zaručuje nemennosť a uchovanie všetkých údajov, ktoré boli kedy pridané, ako aj poskytuje ochranu proti retroaktívnym zmenám a poskytuje možnosť kryptografického dôkazu vlastníctva údajov. Spočiatku sa projekt vyvíjal ako špecializované úložisko NoSQL, ktoré manipuluje s údajmi vo formáte kľúč/hodnota, ale počnúc vydaním 1.0 je immudb umiestnený ako plnohodnotný DBMS s podporou SQL. Kód projektu je napísaný v Go a distribuovaný pod licenciou Apache 2.0.
Informácie v immudb sa ukladajú pomocou štruktúry podobnej blockchainu, ktorá zaručuje integritu celého reťazca existujúcich záznamov a neumožňuje zmenu už uložených údajov ani nahradenie/vloženie záznamu do histórie transakcií. Úložisko podporuje iba pridávanie nových údajov, bez možnosti vymazať alebo zmeniť už pridané informácie. Pokus o zmenu záznamov v DBMS vedie len k uloženiu novej verzie záznamu, staré dáta sa nestratia 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 dosahovať výkon na úrovni miliónov transakcií za sekundu a možno ho použiť na spúšťanie odľahčených služieb alebo na zabudovanie jeho funkcionality do aplikácií vo forme knižnice.
Vysoký výkon sa dosahuje použitím LSM (Log-structured merge-tree) stromu s logom hodnôt, ktorý poskytuje rýchly prístup k záznamom s vysokou intenzitou pridávania údajov. Pre zachovanie celistvosti úložiska je dodatočne použitá stromová štruktúra Merkle Tree, v ktorej každá vetva overuje všetky pod ňou ležiace vetvy a uzly vďaka spoločnému (stromovému) hashovaniu. Po konečnom hashu môže používateľ overiť správnosť celej histórie operácií, ako aj správnosť minulých stavov databázy (koreňový overovací hash nového stavu databázy sa vypočíta s prihliadnutím na minulý stav ).
Klientom a audítorom sa poskytuje kryptografický dôkaz vlastníctva a integrity údajov. Použitie kryptografie s verejným kľúčom nevyžaduje, aby klient dôveroval serveru a pripojenie každého nového klienta k DBMS zvyšuje celkovú úroveň dôvery v celé úložisko. Verejné kľúče a zoznamy zrušených kľúčov sú uložené v databáze a pri vykonávaní šifrovacích operácií možno použiť enklávy Intel SGX.
Medzi funkcie DBMS patrí podpora SQL, režim ukladania kľúč/hodnota, indexy, segmentácia databázy (sharding), vytváranie snímok stavu údajov, transakcie ACID s podporou izolácie snímok (SSI), vysoký výkon pri čítaní a zápise, optimalizácie pre spomína sa efektívna prevádzka na SSD.disky, podpora práce vo forme servera a vstavanej knižnice, podpora REST API a prítomnosť webového rozhrania pre správu. Typické aplikácie, v ktorých sú požadované DBMS, ako je immudb, zahŕňajú transakcie kreditných kariet, ukladanie verejných kľúčov, digitálnych certifikátov, kontrolných súčtov a protokolov a vytváranie záložného úložiska pre dôležité polia v tradičných DBMS. Klientske knižnice pre prácu s immudb sú pripravené pre Go, Java, .NET, Python a Node.js.
Kľúčové vylepšenia vo vydaní immudb 1.0:
- Podpora SQL so schopnosťou chrániť riadky pred skrytými úpravami.
- Režim TimeTravel, ktorý umožňuje prepnúť stav databázy do určitého bodu v minulosti. Predovšetkým čas rezania dát je možné nastaviť na úrovni jednotlivých poddotazov, čo zjednodušuje analýzu zmien a porovnávanie dát.
- Podpora klientskeho protokolu PostgreSQL, ktorý umožňuje využívať existujúce aplikácie a knižnice určené na prácu s PostgreSQL s immudb. Okrem natívnych klientskych knižníc môžete použiť štandardné klientske knižnice Ruby, C, JDBC, PHP a Perl.
- Web Console pre interaktívnu navigáciu údajov a správu DBMS. Prostredníctvom webového rozhrania môžete odosielať požiadavky, vytvárať používateľov a spravovať údaje. Okrem toho je k dispozícii vzdelávacie prostredie Playground.
Zdroj: opennet.ru