ĂshtĂ« prezantuar versioni i madh i DBMS immudb 1.0, qĂ« garanton pandryshueshmĂ«rinĂ« dhe ruajtjen e tĂ« gjitha tĂ« dhĂ«nave tĂ« shtuara ndonjĂ«herĂ«, si edhe ofron mbrojtje ndaj ndryshimeve tĂ« bĂ«ra nĂ« mĂ«nyrĂ« retroaktive dhe mundĂ«si pĂ«r provĂ« kriptografike tĂ« zotĂ«rimit tĂ« tĂ« dhĂ«nave. Fillimisht projekti u zhvillua si njĂ« ruajtje e specializuar NoSQL qĂ« punon me tĂ« dhĂ«na nĂ« formatin çelĂ«s/vlerĂ«, por duke nisur nga versioni 1.0 immudb pozicionohet si njĂ« DBMS e 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, e cila garanton integritetin e tĂ« gjithĂ« zinxhirit tĂ« regjistrimeve ekzistuese dhe nuk lejon ndryshimin e tĂ« dhĂ«nave tĂ« ruajtura tashmĂ« apo zĂ«vendĂ«simin/futjen e njĂ« regjistrimi nĂ« historikun e transaksioneve. Ruajtja mbĂ«shtet vetĂ«m shtimin e tĂ« dhĂ«nave tĂ« reja, pa mundĂ«si pĂ«r fshirjen ose ndryshimin e informacionit tĂ« shtuar mĂ« parĂ«. Ădo pĂ«rpjekje pĂ«r tĂ« ndryshuar regjistrimet nĂ« DBMS çon vetĂ«m nĂ« ruajtjen e njĂ« versioni tĂ« ri tĂ« regjistrimit; tĂ« dhĂ«nat e vjetra nuk humbasin dhe mbeten tĂ« qasshme nĂ« historikun e ndryshimeve.
Ndërkohë, ndryshe nga zgjidhjet tipike të bazuara në blockchain, immudb mund të arrijë performancë në nivelin e miliona transaksioneve në sekondë dhe mund të përdoret për nisjen e shërbimeve të lehta ose për integrimin e funksionalitetit të tij në aplikacione në formën e një biblioteke.

Performanca e lartë arrihet falë përdorimit të pemës LSM (Log-structured merge-tree) me log vlerash, e cila siguron qasje të shpejtë te regjistrimet edhe me intensitet të lartë të shtimit të të dhënave. Për të ruajtur integritetin e ruajtjes, përdoret gjithashtu struktura pemëzuese «Merkle Tree», në të cilën çdo degë verifikon të gjitha degët dhe nyjet poshtë saj përmes hashimit të përbashkët (në formë peme). Duke pasur hash-in përfundimtar, përdoruesi mund të verifikojë saktësinë e të gjithë historikut të operacioneve, si edhe korrektësinë e gjendjeve të mëparshme të bazës së të dhënave (hash-i rrënjë i verifikimit për gjendjen e re të bazës llogaritet duke marrë parasysh gjendjen e mëparshme).
KlientĂ«ve dhe auditorĂ«ve u ofrohet provĂ« kriptografike e zotĂ«rimit dhe integritetit tĂ« tĂ« dhĂ«nave. PĂ«rdorimi i kriptografisĂ« me çelĂ«s publik nuk kĂ«rkon nga klienti besim te serverit, dhe lidhja e çdo klienti tĂ« ri me DBMS rrit nivelin e pĂ«rgjithshĂ«m tĂ« besimit ndaj tĂ« gjithĂ« ruajtjes sĂ« tĂ« dhĂ«nave. ĂelĂ«sat publikĂ« dhe listat e revokimit tĂ« çelĂ«save ruhen nĂ« DB, ndĂ«rsa gjatĂ« kryerjes sĂ« operacioneve tĂ« enkriptimit mund tĂ« pĂ«rdoren enklavat Intel SGX.
Ndër veçoritë funksionale të DBMS përmenden mbështetja për SQL, mënyra e ruajtjes çelës/vlerë, indekset, segmentimi i DB (sharding), krijimi i snapshot-eve të gjendjes së të dhënave, transaksionet ACID me mbështetje për izolimin e snapshot-eve (SSI), performancë e lartë në lexim dhe shkrim, optimizime për punë efikase në SSD, mbështetje për funksionim në formën e serverë dhe e një biblioteke të integruar, mbështetje për REST API dhe prania e një ndërfaqeje web për menaxhim. Ndër fushat tipike të përdorimit ku kërkohen DBMS si immudb, përmenden përpunimi i transaksioneve me karta krediti, ruajtja e çelësave publikë, certifikatave dixhitale, checksum-eve dhe log-eve, si dhe krijimi i një ruajtjeje të dyfishtë për fushat e rëndësishme në DBMS tradicionale. Janë përgatitur biblioteka kliente për punë me immudb 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ësi mbrojtjeje të rreshtave nga modifikimi i fshehtë.
- Modaliteti TimeTravel, që jep mundësinë të kalohet gjendja e DB në një moment të caktuar në të kaluarën. Përfshirë faktin që koha e prerjes së të dhënave mund të caktohet në nivelin e nënpyetjeve të veçanta, gjë që thjeshton analizën e ndryshimeve dhe kryerjen e krahasimit të të dhënave.
- Mbështetje për protokollin klient PostgreSQL, që mundëson përdorimin me immudb të aplikacioneve dhe bibliotekave ekzistuese të krijuara për punë me PostgreSQL. Përveç bibliotekave vendase të klientit, mund të përdoren edhe bibliotekat standarde të klientit për Ruby, C, JDBC, PHP dhe Perl.
- Web Console për navigim interaktiv nëpër të dhëna dhe administrim të DBMS. Përmes ndërfaqes web mund të dërgohen kërkesa, të krijohen përdorues dhe të menaxhohen të dhënat. Gjithashtu është i disponueshëm mjedisi mësimor Playground.


Burimi: opennet.ru


