ĂshtĂ« prezantuar njĂ« version i rĂ«ndĂ«sishĂ«m i DBMS immudb 1.0, qĂ« garanton paprekshmĂ«rinĂ« dhe ruajtjen e tĂ« gjitha tĂ« dhĂ«nave tĂ« shtuara ndonjĂ«herĂ«, si dhe ofron mbrojtje nga modifikimet retroaktive dhe mundĂ«sinĂ« e provĂ«s kriptografike tĂ« pronĂ«sisĂ« sĂ« tĂ« dhĂ«nave. Fillimisht, projekti u zhvillua si njĂ« depozita e specializuar NoSQL, qĂ« manipulojĂ« tĂ« dhĂ«nat nĂ« formatin çelĂ«s/vlerĂ«, por duke nisur nga versioni 1.0, immudb pozicionohet si njĂ« DBMS i plotĂ« me mbĂ«shtetje pĂ«r SQL. Kodi i projektit Ă«shtĂ« shkruar nĂ« gjuhĂ«n Go dhe shpĂ«rndahet nĂ«n licencĂ«n Apache 2.0.
Informacioni në immudb ruhet duke përdorur një strukturë të ngjashme me blockchain, që garanton integritetin e të gjithë zinxhirit të regjistrimeve ekzistuese dhe nuk lejon të ndryshohen të dhënat e ruajtura ose të falsifikohen/shtohen regjistrime në historinë e transaksioneve. Depozita mbështet vetëm shtimin e të dhënave të reja, pa mundësi për të fshirë ose ndryshuar informacionin e shtuar tashmë. Përpjekja për të ndryshuar regjistrime në DBMS çon vetëm në ruajtjen e një versioni të ri të regjistrimit, të dhënat e vjetra nuk humbasin dhe qëndrojnë të aksesueshme në historinë e ndryshimeve.
Ndryshe nga zgjidhjet tipike që bazohen në blockchain, immudb ofron performancë në nivelin e milionëve transaksionesh në sekondë dhe mund të përdoret për të nisur shërbime të lehta ose për të integruar funksionalitetin e saj në aplikacione si një bibliotekë.

Performanca e lartë arrihet falë përdorimit të pemës LSM (Log-structured merge-tree) me një log të vlerave, që siguron qasje të shpejtë në regjistrimet në intensitet të lartë të shtimit të të dhënave. Për të mbajtur integritetin e depozitës, përdoret gjithashtu një strukturë pemore 'merkëla' (Merkle Tree), në të cilën çdo degë verifikon të gjitha degët dhe nyjat poshtë saj falë heshimimit në strukturë (tree hashing). Duke pasur një hash përfundimtar, përdoruesi mund të sigurohet për korrektësinë e tërë historisë së operacioneve, si dhe për korrektësinë e gjendjeve të kaluara të DB-së (hashi kontrollues rrënjësor i gjendjes së re të bazës llogaritet duke marrë parasysh gjendjen e kaluar).
KonsumatorĂ«ve dhe auditorĂ«ve u ofrohet njĂ« provĂ« kriptografike e pronĂ«sisĂ« dhe integritetit tĂ« tĂ« dhĂ«nave. PĂ«rdorimi i kriptografisĂ« me çelĂ«s tĂ« hapur nuk kĂ«rkon nga klienti besim nĂ« server, dhe lidhja e çdo klienti tĂ« ri me DBMS rrit nivelin e pĂ«rgjithshĂ«m tĂ« besimit nĂ« tĂ« gjithĂ« depozitimin. ĂelĂ«sat e hapur dhe listat e tĂ«rheqjes sĂ« çelĂ«save ruhen nĂ« DB, dhe gjatĂ« kryerjes sĂ« operacioneve me kriptimin mund tĂ« pĂ«rdoren enklavat Intel SGX.
Nga funksionalitetet e DBMS, përmenden mbështetje për SQL, moda e ruajtjes së çelësit/vlerës, indekset, segmentimi i DB (sharding), krijimi i snapshot-eve të gjendjes së të dhënave, transaksione ACID me mbështetje për izolimin e snapshot-eve (SSI), performancë e lartë e leximit dhe shkruajtjes, optimizime për punë efikase në disqet SSD, mbështetje e punës në formë server dhe bibliotekave të integruara, mbështetje për REST API dhe disponueshmërinë e ndërfaqes web për menaxhim. Në fushat tipike të përdorimit, ku bazat e të dhënave si immudb janë të kërkuara, përfshihen menaxhimi i transaksioneve me karta krediti, ruajtja e çelave publikë, certifikatave digjitale, kontrolleve të sumave dhe logëve, krijimi i një ruajtjeje të dyfishtë për fusha të rëndësishme në bazat e të dhënave tradicionale. Bibliotekat klientësh për punë me immudb janë përgatitur për Go, Java, .NET, Python dhe Node.js.
Përmirësimet kryesore në versionin immudb 1.0:
- Mbështetje për SQL me mundësinë e mbrojtjes së rreshtave nga modifikimi i fshehtë.
- Rejimi TimeTravel, i cili ofron mundësinë për të kaluar gjendjen e DB në një moment të caktuar të kaluar. Po ashtu, koha e prerjes së të dhënave mund të vendoset në nivelin e nënkërkesave të veçanta, çka e bën më të lehtë analizën e ndryshimeve dhe krahasimin e të dhënave.
- Mbështetje për protokollin e klientëve PostgreSQL, i cili lejon përdorimin e aplikacioneve dhe librarive ekzistuese me immudb, të dizenjuara për t'u punuar me PostgreSQL. Po ashtu, përveç bibliotekave klientë native, mund të përdoren bibliotekat klientë standarde Ruby, C, JDBC, PHP dhe Perl.
- Web Console për navigim interaktiv në të dhëna dhe administrimin e DBMS. Përmes ndërfaqes web mund të dërgoni kërkesa, krijoni përdorues dhe menaxhoni të dhënat. Shtesë, është e disponueshme një mjedis mësimor Playground.


Burimi: opennet.ru


