Sisseehitatud andmebaasi libmdbx 0.13.3 väljaanne.

Välja on antud libmdbx 0.13.3 (MDBX) raamatukogu väljaanne, mis sisaldab kõrgjõudlusega kompaktset sisseehitatud võtme-väärtuse andmebaasi. Kod libmdbx levitatakse Apache 2.0 litsentsi alusel. Toetatakse kõiki kaasaegseid operatsioonisüsteeme ja arhitektuure, sealhulgas Venemaa Elbrus 2000. libmdbx jaoks on saadaval arenenud API C++-s ning toetatud on entusiastide sidemed keeltele Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.

Ajalooliselt on libmdbx LMDB andmebaasi sügav töötlemine, ületades oma eelkäijat usaldusväärsuse, võimaluste ja jõudluse poolest. LMDB-ga võrreldes pööratakse libmdbx-is suurt tähelepanu koodi kvaliteedile, API stabiilsele toimimisele, testimisele ja automaatsetele kontrollidele. Pakutakse andmebaasi struktuuri terviklikkuse kontrollimise utiliiti, millel on mõned taastamisvõimalused. Tehnoloogiliselt pakub libmdbx ACID-i, ranget muudatuste serialiseerimist ja blokeerimata lugemist, millega saab lineaarset koormuse hajutamist CPU tuumade vahel. Toetatakse automaatset kompaktsifitseerimist, automaatset andmebaasi suuruse haldamist ja valikute mahtude hindamist vahemike järgi (range query estimation).

Peamised muudatused:

  • Versioon 0.13.x on saanud stabiilse staatuse. Arendustööd versioonile 0.14.x on alanud.
  • C API-sse on lisatud funktsioon mdbx_cursor_count_ex(), mis võimaldab saada nii mitme väärtuse arvu vastava praeguse võtme jaoks kui ka teavet sisemiste puude kohta, mis neid väärtusi salvestavad.
  • C++ API-sse on lisatud meetod mdbx::txn::make_broken(), mis on sarnane mdbx_txn_break()-le.
  • Tööriistades mdbx_copy, mdbx_drop, mdbx_dump, mdbx_load, mdbx_stat on rakendatud vigade, hoiatuste ja oluliste teadete logimine libmdbx-ilt.
  • Behavior change:
    • Kui prügikogumise jälgimine on sisse lülitatud (koostamine valikuga MDBX_ENABLE_PROFGC=ON), loetakse nüüd CPU aja kulu lehekülgede loendite ühendamisele, s.t. funktsiooni pnl_merge() tööle.
    • Testimise utiliidil on andmemooduli nimi muudetud data.dups-lt data.multi-ks.
    • Parandatud võtme pikkuse kontroll cursor_seek() sees.
    • Kui mdbx_env_set_option(MDBX_opt_txn_dp_limit) kaudu pole kasutaja määranud konkreetset väärtust, seadistatakse dirty-pages-limit iga mittesisestatud kirjutamistehingu alguses, lähtudes vabast RAM-ist ja andmebaasi suurusest.
    • MDBX_NOSTICKYTHREADS režiimis on lubatud sisemiste tehingute commit/abort igas lõimes/voos.
    • MDBX_WRITEMAP režiimis, kui püütakse alustada sisemisi tehinguid, registreeritakse logis ja tagastatakse viga MDBX_INCOMPATIBLE.
    • C++ API-s kasutatakse konstruktorites/initsialiseerijates ja meetodites, mis on seotud andmebaasi geomeetria määramisega, vaikimisi ainult default-väärtusi.
    • mdbx_env_set_geometry() sees on parandatud heuristikad, et määrata kasutaja poolt nõutud andmebaasi geomeetria parameetreid ‘vaikimisi’.
  • Parandused:
    • Parandatud mutexi lukustamatuse regressioon dbi-deskriptorite uuesti sulgemise katsete korral, sealhulgas siis, kui üritatakse selgesõnaliselt sulgeda deskriptorit pärast sellega seotud tabeli kustutamist.
    • Parandatud sisemiste/dupsort kursori regressioon pärast andmete sisestamist MDBX_APPEND-režiimis.
    • Toetamine boot_id saamiseks LXC konteineri sees.
    • Parandatud vale töötlemise viga sisemise lugemise tehingu käivitamisel. Nüüd tagastatakse sellistes olukordades viga MDBX_EINVAL, kuna pesakonna toetamist toetatakse ainult lugemis-kirjutustehingute jaoks.
    • Tõrge SIGSEGV, mis viitas nullaadressile, on kõrvaldatud üksnes lugemise režiimis töötamisel, ilma LCK-faili kasutamiseta, näiteks andmebaasi paigutamisel ainult lugemiseks mõeldud seadmele.

Allikas: opennet.ru

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