Augstas veiktspējas iegultās DBVS libmdbx 0.11.3 izlaišana

Libmdbx 0.11.3 (MDBX) bibliotēka tika izlaista, ieviešot augstas veiktspējas kompaktu iegulto atslēgu vērtību datu bāzi. Libmdbx kods ir licencēts saskaņā ar OpenLDAP publisko licenci. Tiek atbalstītas visas pašreizējās operētājsistēmas un arhitektūras, kā arī Krievijas Elbrus 2000. 2021. gada beigās libmdbx tiek izmantots kā krātuves aizmugure divos ātrākajos Ethereum klientos - Erigon un jaunajā “Shark”, kas saskaņā ar pieejamajiem datiem informāciju, ir visaugstākās veiktspējas Ethereum klients.

Vēsturiski libmdbx ir dziļi pārveidots LMDB DBVS un pārspēj savu priekšteci uzticamības, funkciju kopas un veiktspējas ziņā. Salīdzinot ar LMDB, libmdbx lielu uzsvaru liek uz koda kvalitāti, API stabilitāti, testēšanu un automatizētām pārbaudēm. Lietderība datu bāzes struktūras integritātes pārbaudei ir aprīkota ar dažām atkopšanas opcijām.

Tehnoloģiju ziņā libmdbx piedāvā ACID, spēcīgu izmaiņu serializāciju un nebloķējošu lasīšanu ar lineāru mērogošanu starp CPU kodoliem. Tiek atbalstīta automātiskā blīvēšana, automātiska datu bāzes lieluma pārvaldība un diapazona vaicājuma novērtēšana. Kopš 2016. gada projektu finansē Positive Technologies, un tas tiek izmantots tā produktos kopš 2017. gada.

libmdbx piedāvā C++ API, kā arī entuziastu atbalstītus valodu saistījumus Rust, Haskell, Python, NodeJS, Ruby, Go un Nim.

Kopš iepriekšējām ziņām 11. oktobrī pievienoti galvenie jauninājumi, uzlabojumi un labojumi:

  • Tiek uzskatīts, ka C++ API ir gatava lietošanai.
  • GC datu atjaunināšana, veicot milzīgus darījumus, ir ievērojami paātrināta, kas ir īpaši svarīgi, izmantojot libmdbx Ethereum ekosistēmā.
  • Datu bāzes formāta iekšējais paraksts ir mainīts, lai atbalstītu automātisko atjaunināšanu, kas lietotājiem ir pilnībā pārskatāma. Tas ļauj novērst kļūdaini pozitīvus ziņojumus par datu bāzes bojājumiem, ja tiek izmantotas novecojušas bibliotēkas versijas, lai lasītu pašreizējās versijās reģistrētos darījumus.
  • Pievienotas funkcijas mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() un mdbx_env_get_syncbytes(). Pievienots atbalsts operācijai MDBX_SET_UPPERBOUND.
  • Visi brīdinājumi, veidojot ar visiem atbalstītajiem kompilatoriem C++ 11/14/17/20 režīmos, ir novērsti. Tiek nodrošināta savietojamība ar mantotajiem kompilatoriem: zvana, sākot no 3.9, gcc sākot no 4.8, ieskaitot montāžu, izmantojot CentOS/RHEL 9, izmantojot cdevtoolset-7.
  • Novērsta metalapu konflikta iespēja pēc manuālas pārslēgšanas uz konkrētu metalapu, izmantojot utilītu mdbx_chk.
  • Novērsta negaidīta MDBX_PROBLEM kļūda, kas tiek atgriezta, pārrakstot mantotās meta lapas.
  • Izlabota MDBX_NOTFOUND atgriešana neprecīzas atbilstības gadījumā, apstrādājot MDBX_GET_BOTH pieprasījumu.
  • Novērsta kompilācijas kļūda operētājsistēmā Linux, jo nav galvenes failu ar kodola saskarņu aprakstiem.
  • Novērsta konflikts starp MDBX_SHRINK_ALLOWED iekšējo karogu un opciju MDBX_ACCEDE.
  • Ir likvidētas vairākas nevajadzīgas apliecinājumu pārbaudes.
  • Novērsta negaidīta MDBX_RESULT_TRUE atgriešana no funkcijas mdbx_env_set_option().
  • Kopumā 90 failos veiktas vairāk nekā 25 izmaiņas, pievienotas ~1300 rindas, dzēstas ~600.

Avots: opennet.ru

Pievieno komentāru