Predstavljeno je značajno izdanje immudb 1.0 DBMS-a, koje jamči nepromjenjivost i očuvanje svih ikada dodanih podataka, kao i pružanje zaštite od retroaktivnih promjena i omogućavanje kriptografskog dokaza vlasništva podataka. U početku se projekt razvijao kao specijalizirana NoSQL pohrana koja manipulira podacima u formatu ključ/vrijednost, ali počevši od izdanja 1.0 immudb je pozicioniran kao punopravni DBMS s podrškom za SQL. Kôd projekta napisan je u Go i distribuiran pod licencom Apache 2.0.
Informacije u immudb-u pohranjuju se korištenjem strukture slične blockchainu koja jamči integritet cijelog lanca postojećih zapisa i ne dopušta promjenu već pohranjenih podataka ili zamjenu/umetanje unosa u povijest transakcija. Pohrana podržava samo dodavanje novih podataka, bez mogućnosti brisanja ili promjene već dodanih informacija. Pokušaj promjene zapisa u DBMS-u dovodi samo do spremanja nove verzije zapisa; stari podaci se ne gube i ostaju dostupni u povijesti promjena.
Štoviše, za razliku od tipičnih rješenja temeljenih na blockchainu, immudb vam omogućuje postizanje performansi na razini milijuna transakcija u sekundi i može se koristiti za pokretanje laganih usluga ili za ugradnju njegove funkcionalnosti u aplikacije u obliku biblioteke.
Visoke performanse postižu se upotrebom LSM (Log-structured merge-tree) stabla s zapisom vrijednosti, koji omogućuje brz pristup zapisima s visokim intenzitetom dodavanja podataka. Da bi se održao integritet pohrane, dodatno se koristi struktura stabla nazvana Merkleovo stablo, u kojoj svaka grana provjerava sve ispod grane i čvorove zahvaljujući zajedničkom (stablu) hashiranju. Imajući konačni hash, korisnik može provjeriti ispravnost cjelokupne povijesti operacija, kao i ispravnost prošlih stanja baze podataka (root verifikacijski hash novog stanja baze podataka izračunava se uzimajući u obzir prošlo stanje ).
Klijenti i revizori dobivaju kriptografski dokaz o vlasništvu i cjelovitosti podataka. Korištenje kriptografije s javnim ključem ne zahtijeva da klijent vjeruje poslužitelju, a povezivanjem svakog novog klijenta s DBMS-om povećava se ukupna razina povjerenja u cijeloj pohrani. Javni ključevi i popisi opozvanih ključeva pohranjeni su u bazi podataka, a Intel SGX enklave mogu se koristiti prilikom izvođenja operacija šifriranja.
Među funkcionalnostima DBMS-a, SQL podrška, način pohrane ključa/vrijednosti, indeksi, segmentacija baze podataka (sharding), stvaranje snimaka stanja podataka, ACID transakcije s podrškom za izolaciju snimaka (SSI), visoke performanse čitanja i pisanja, optimizacije za spominje se učinkovit rad na SSD pogonima, podrška za rad u obliku poslužitelja i ugrađene biblioteke, podrška za REST API i prisutnost web sučelja za upravljanje. Tipične aplikacije u kojima su DBMS-ovi poput immudb-a traženi uključuju transakcije kreditnim karticama, pohranjivanje javnih ključeva, digitalnih certifikata, kontrolnih zbrojeva i zapisa te stvaranje rezervne pohrane za važna polja u tradicionalnim DBMS-ovima. Klijentske biblioteke za rad s immudb-om pripremljene su za Go, Java, .NET, Python i Node.js.
Ključna poboljšanja u izdanju immudb 1.0:
- SQL podrška s mogućnošću zaštite redaka od skrivenih izmjena.
- TimeTravel mod, koji omogućuje promjenu stanja baze podataka na određenu točku u prošlosti. Konkretno, vrijeme rezanja podataka može se postaviti na razini pojedinačnih podupita, što pojednostavljuje analizu promjena i usporedbu podataka.
- Podrška za PostgreSQL klijentski protokol, koji vam omogućuje korištenje postojećih aplikacija i biblioteka dizajniranih za rad s PostgreSQL s immudb. Uz izvorne klijentske biblioteke, možete koristiti standardne klijentske biblioteke Ruby, C, JDBC, PHP i Perl.
- Web konzola za interaktivnu navigaciju podacima i administraciju DBMS-a. Putem web sučelja možete slati zahtjeve, kreirati korisnike i upravljati podacima. Dodatno, dostupno je okruženje za učenje Playground.
Izvor: opennet.ru