Integreeritud DBMS libmdbx versioon 0.13.6 vabastamine

Avaldasime libmdbx 0.13.6 (MDBX) versiooni, mis pakub kõrge jõudlusega kompaktset sisseehitatud võtme-väärtuse andmebaasi. libmdbx kood on saadaval Apache 2.0 litsentsi alusel. Toetatud on kõik praegused operatsioonisüsteemid ja arhitektuurid, sealhulgas Venemaa Elbrus 2000. libmdbx pakub laia C++ API-d ning entusiastide toetatud sidumisvõimalusi keeltele Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno ja Scala. Projekte, mis kasutavad libmdbx-i, on näiteks Isar, Erigon ja Reth, samuti ettevõtete StarkWare ja Positive Technologies arendused.

Ajalooliselt on libmdbx sügav ümbertehtud LMDB andmebaasi haldustarkvara ja ületab oma eelkäijat usaldusväärsuse, funktsioonide komplekti ja jõudluse poolest. Erinevalt LMDB-st pööratakse libmdbxis suurt tähelepanu koodi kvaliteedile, API stabiilsele toimimisele, testimisele ja automaatsetele kontrollidele. Koos on kaasas andmebaasi struktuuri terviklikkuse kontrollimise utiliit, mis võimaldab osalist taastamist. Tehniliselt pakub libmdbx ACID-koordineeritud, ranget muudatuste serialiseerimist ja mittesundivat lugemist koos lineaarse skaleerimisega CPU tuumade järgi. Toetatakse automaatset tihendamist, andmebaasi suuruse automaatset juhtimist, ning vahemike põhjalise päringu hindamist.

Peamised muudatused:

  • Käitumise muutus: Kui ei õnnestu siduda kursorit tema praeguse tehinguga, tagastab funktsioon mdbx_cursor_bind() nüüd MDBX_EINVAL asemel MDBX_BAD_TXN.
  • Võimalike probleemide vältimiseks on Linuxi 5.3 – 5.18 kernelite copy_file_range() kasutamine keelatud.
  • std::invalid_argument'i viskamine toimub nüüd selge sõnumiga MDBX_EINVAL.
  • Regressioon, mis tekkis kursorite kasutamisel DBI=0 (tuntud ka kui GC/FreeDB) lugemistehingutes, on kõrvaldatud.
  • Regressioon, mis esines viga EAGAIN andmebaasi kopeerimisel NFS-i ja CIFS/SMB kaudu, on kõrvaldatud.
  • API arendamiseks/edendamiseks funktsioonis kopeerimisel on lisatud faili lukustuse haaramine nii fcntl() kui ka flock() kaudu. Kuid sõltuvalt kohalikust kernelist, kaugversioonist ja serverile NFS-i ja mountimise valikutest võis see viia POSIX-iga seotud vea EAGAIN (11 enamikus platvormides, sealhulgas Linux) tagastamiseni.
  • Parandatud viga merge/rebase funktsioonis mdbx_txn_release_all_cursors_ex(), mis võis viia hilisemate ootamatute MDBX_EBADSIGN vigade ja mälu leketeni.
  • Parandatud assert-kontroll sisemise tehingute lõpetamise teel.
  • Eemaldatud võimalus, et mdbx_txn_lock(dont_wait=false) tagastaks ootamatu MDBX_BUSY vea.
  • GCC 15.x ühilduvuse tagamiseks C23 režiimis on muudetud funktsioonide atribuutide järjekorda.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster