Suure jõudlusega manustatud DBMS-i libmdbx 0.11.3 väljalase

Libmdbx 0.11.3 (MDBX) teek vabastati suure jõudlusega kompaktse manustatud võtmeväärtuste andmebaasi rakendamisega. Libmdbx kood on litsentsitud OpenLDAP avaliku litsentsi alusel. Toetatud on kõik praegused operatsioonisüsteemid ja arhitektuurid, samuti Vene Elbrus 2000. 2021. aasta lõpus kasutatakse libmdbx-i salvestusruumi taustaprogrammina kahes kiireimas Ethereumi kliendis - Erigonis ja uues "Sharkis", mis vastavalt saadaolevatele andmetele teavet, on kõrgeima jõudlusega Ethereumi klient.

Ajalooliselt on libmdbx LMDB DBMS-i põhjalik ümberkujundus ja ületab töökindluse, funktsioonide komplekti ja jõudluse poolest oma eelkäijat. Võrreldes LMDB-ga paneb libmdbx suurt rõhku koodi kvaliteedile, API stabiilsusele, testimisele ja automatiseeritud kontrollidele. Andmebaasi struktuuri terviklikkuse kontrollimise utiliit on varustatud mõne taastevalikuga.

Tehnoloogiliselt pakub libmdbx ACID-i, tugevat muudatuste serialiseerimist ja mitteblokeerivat lugemist koos lineaarse skaleerimisega protsessori tuumade lõikes. Toetatakse automaatset tihendamist, automaatset andmebaasi suuruse haldamist ja vahemiku päringu hindamist. Alates 2016. aastast on projekti rahastanud Positive Technologies ja seda on oma toodetes kasutatud alates 2017. aastast.

libmdbx pakub C++ API-d, aga ka entusiastide toetatud keelesidemeid Rusti, Haskelli, Pythoni, NodeJS-i, Ruby, Go ja Nimi jaoks.

Suuremad uuendused, täiustused ja parandused, mis on lisatud pärast eelmist uudist 11. oktoobril:

  • C++ API loetakse kasutusvalmis.
  • GC andmete värskendamine suurte tehingute sooritamisel on oluliselt kiirendatud, mis on eriti oluline libmdbx kasutamisel Ethereumi ökosüsteemis.
  • Andmebaasi vormingu sisemine allkiri on muudetud automaatse uuendamise toetamiseks, mis on kasutajatele täiesti läbipaistev. See võimaldab teil kõrvaldada valepositiivsed sõnumid andmebaasi riknemise kohta, kui praeguste versioonide salvestatud tehingute lugemiseks kasutatakse teegi aegunud versioone.
  • Lisatud funktsioonid mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() ja mdbx_env_get_syncbytes(). Lisatud tugi toimingule MDBX_SET_UPPERBOUND.
  • Kõik hoiatused kõigi toetatud kompilaatoritega C++ režiimides 11/14/17/20 ehitamisel on kõrvaldatud. Ühilduvus pärandkompilaatoritega on tagatud: klann alates 3.9-st, gcc alates 4.8-st, sealhulgas kokkupanek kasutades CentOS/RHEL 9 jaoks cdevtoolset-7.
  • Parandatud metalehe konflikti võimalus pärast utiliidi mdbx_chk abil käsitsi konkreetsele metalehele üleminekut.
  • Parandatud ootamatu MDBX_PROBLEM-tõrge, mis tagastatakse pärandmetalehtede ülekirjutamisel.
  • Parandatud MDBX_NOTFOUND tagastamine ebatäpse vaste korral MDBX_GET_BOTH päringu töötlemisel.
  • Parandatud Linuxis kompileerimisviga, mis tekkis päisefailide puudumisel koos kerneli liideste kirjeldustega.
  • Parandatud konflikt sisemise lipu MDBX_SHRINK_ALLOWED ja suvandi MDBX_ACCEDE vahel.
  • Mitmed tarbetud kinnituste kontrollid on kõrvaldatud.
  • Parandatud MDBX_RESULT_TRUE ootamatu tagastamine funktsioonist mdbx_env_set_option().
  • Kokku tehti 90 failis üle 25 muudatuse, lisati ~1300 rida, kustutati ~600.

Allikas: opennet.ru

Lisa kommentaar