Väljaande sisseehitatud andmebaasi libmdbx 0.13.3

Avaldatud teekide libmdbx 0.13.3 (MDBX) väljaanne, mis sisaldab kõrgtehnoloogilise kompaktselt sisseehitatud võtme-väärtuse andmebaasi. Libmdbx'i kood on levitatud Apache 2.0 litsentsi alusel. Toetatud on kõik kaasaegsed operatsioonisüsteemid ja arhitektuurid, sealhulgas Venemaa Elbrus 2000. Libmdbx pakub arenenud API-d C++ jaoks ning toetatud on entusiastide loodud sidemed Rusti, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno ja Scala keeltega.

Ajalooliselt on libmdbx sügavalt ümber töödelud andmebaas LMDB-st ning ületab oma eelkäijat usaldusväärsuse, võimaluste ja jõudluse poolest. LMDB-ga võrreldes on libmdbx-is suurt tähelepanu pööratud koodi kvaliteedile, API stabiilsele toimimisele, testimisele ja automaatsetele kontrollidele. Saadaval on andmebaasi struktuuri terviklikkuse kontrollimise utiliit mõningate taastamisvõimalustega. Tehnoloogiliselt pakub libmdbx ACID-i, ranget muudatuste seeriat ja mittetakistavat lugemist, millel on lineaarne skaleerimine CPU tuumade vahel. Toetatud on automaatne kompaktimine, andmebaasi suuruse automaatne haldamine ning vahemike põhjal tehtud valimite hindamine.

Peamised muudatused:

  • Versioon 0.13.x saavutab stabiilse staatuse. Alanud on 0.14.x haru arendamine.
  • C API-sse on lisatud funktsioon mdbx_cursor_count_ex(), mis lubab saada nii vastava praeguse võtme mitme väärtuse arvu kui ka teavet sisemiste puude kohta, mis neid väärtusi salvestavad.
  • C++ API-s on lisatud meetod mdbx::txn::make_broken(), mis on sarnane mdbx_txn_break()-le.
  • Utiliitides mdbx_copy, mdbx_drop, mdbx_dump, mdbx_load, mdbx_stat on realiseeritud vigade, hoiatusete ja olulisete sõnumite logimine libmdbx-ist.
  • Käitumise muutus:
    • Kui prügikogumise profiliseerimine on sisse lülitatud (kompresseerimine valikuga MDBX_ENABLE_PROFGC=ON), loetakse nüüd CPU aja kulud lehtede loendite ühendamiseks, s.t. funktsiooni pnl_merge() töötamiseks.
    • Testimise utiliidis on andmemudeli režiimi nimetus muudetud data.dups-ilt data.multi-ks.
    • Kursori otsingu sees on täiustatud võtme pikkuse kontrolli.
    • Kui kasutaja ei määra mdbx_env_set_option(MDBX_opt_txn_dp_limit) kaudu oma väärtust, siis kohandatakse dirty-pages-limit-i iga mitte-embedditud kirjutava tehingu käivitamisel, lähtuvalt saadaval olevast RAM-ist ja andmebaasi suurusest.
    • MDBX_NOSTICKYTHREADS režiimis lubatakse sisemiste tehingute commit/abort mistahes lõimes/töötlevas seadmes.
    • Katses, et proovite alustada sisemisi tehinguid MDBX_WRITEMAP režiimis, logitakse ja tagastatakse MDBX_INCOMPATIBLE viga.
    • C++ API-s kasutatakse konstruktorites / initsialiseerijates ja meetodites, mis on seotud andmebaasi geomeetria loomisega, vaikimisi ainult default-väärtusi.
    • mdbx_env_set_geometry() sees on täiustatud heuristikad, et leida kasutaja poolt nõutud andmebaasi geomeetria vaikeparameetreid.
  • Parandused:
    • Parandatud regressor, mis takistab muteksist vabastamise katset, kui proovitakse uuesti sulgeda dbi-deskriptorit, sealhulgas siis, kui üritatakse deskriptorit selgelt sulgeda pärast seotud tabeli kustutamist.
    • Parandatud olukord, kus sisemised / duplikaatkursorite seisund pärast andmete sisestamist MDBX_APPEND-režiimis ei taastunud õigesti.
    • Toetatakse boot_id saamist LXC-konteineris töötamisel.
    • Parandatud viga sisemiste lugemis-tehingute käivitamise vale töötlemise osas. Nüüd tagastatakse sellistes olukordades MDBX_EINVAL viga, kuna pesakonna tohi toetada ainult lugemise-salvestamise tehinguid.
    • Parandatud SIGSEGV regress, mis tekitab nullaadressile juurdepääsu kasutades ainult lugemisrežiime, näiteks andmebaasi paigutamisel ainult kirjutuskaitstud meediasse.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster