It-tieni kandidat għar-rilaxx libmdbx v1.0 wara ħames snin ta 'żvilupp.

Librerija libmdbx huwa dixxendent imfassal mill-ġdid b'mod sinifikanti ta 'LMDB - database ta' valur ewlieni inkorporat kompatt ta 'prestazzjoni għolja ħafna.
Il-verżjoni attwali v0.5 hija rilaxx tekniku, timmarka t-tlestija ta 'kwalunkwe titjib u t-tranżizzjoni għall-fażi ta' ttestjar u stabbilizzazzjoni finali pubbliku, bil-formazzjoni sussegwenti tal-ewwel rilaxx sħiħ tal-librerija.

LMDB huwa DBMS ta' valur ewlieni inkorporat transazzjonali pjuttost magħruf ibbażat fuq siġra B+ mingħajr logging proattiv, li jippermetti li swarm ta 'proċessi b'ħafna kamini jaħdmu b'mod kompetittiv u estremament effiċjenti ma' database kondiviża lokalment (mhux netwerk). Min-naħa tiegħu, MDBX huwa aktar mgħaġġel u aktar affidabbli minn LMDB, filwaqt li libmdbx iżomm il-karatteristiċi ewlenin kollha tal-antenat tiegħu, bħal ACID u jaqra mhux imblukkar bi skalar lineari madwar il-qlub tas-CPU, u jżid ukoll diversi oħrajn ġodda.

Deskrizzjoni tad-differenzi u t-titjib tal-libmdbx relattiv għal LMDB jistħoqqilha artiklu separat (ppjanat li jiġi ppubblikat fuq Habré u Medium). Hawnhekk huwa xieraq li nsemmu l-aktar importanti u notevoli:

  • Fundamentalment, tingħata aktar attenzjoni lill-kwalità tal-kodiċi, l-ittestjar u l-kontrolli awtomatiċi.
  • Kontroll b'mod sinifikanti aktar waqt it-tħaddim, mill-iċċekkjar tal-parametri għall-verifika interna tal-istrutturi tad-database.
  • Kompatifikazzjoni awtomatika u ġestjoni awtomatika tad-daqs tad-database.
  • Format ta 'database wieħed għal assemblaġġi ta' 32-bit u 64-bit.
  • Stima tad-daqs tal-kampjun skont il-meded (stima tal-mistoqsija tal-firxa).
  • Appoġġ għal ċwievet kbar darbtejn daqs pancakes u daqs tal-paġna tad-database li jista 'jagħżel mill-utent.

Il-kandidat għar-rilaxx libmdbx huwa r-riżultat tad-deċiżjoni (ara hawn taħt) li jissepara l-proġetti MDBX u MithrilDB f'Awwissu 2019. Fl-istess ħin, libmdbx iddeċieda li jelimina d-dejn tekniku massimu (razzjonali) u jistabbilizza l-librerija. Fil-fatt, sar 2-3 darbiet aktar fid-direzzjoni magħżula milli kien inizjalment stmat u ppjanat:

  • Ġie implimentat appoġġ għal Mac OS u pjattaformi tat-tieni saff: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Jistgħu jiżdiedu appoġġ AIX u HP-UX kif meħtieġ.
  • Sanitated il-kodiċi bl-użu ta 'Undefined Behavior Sanitizer u Address Sanitizer, eliminat it-twissijiet kollha meta tibni b'-Wpedantic, it-twissijiet kollha ta' Coverity Static Analyzer, eċċ.
  • Aġġornament Deskrizzjonijiet tal-API.
  • Amalgamazzjoni tal-kodiċi tas-sors għal faċilità ta 'inkorporazzjoni.
  • CMake appoġġ.
  • Appoġġ għal transazzjonijiet nested.
  • L-użu ta' bootid biex jiddetermina jekk l-OS reġa' rebooteja (waqfien tad-database maħmuġin).
  • Għadd minn tarf sa tarf ta' paġni aġġornati/qodma u informazzjoni estiża dwar it-tranżazzjonijiet.
  • Għażla MDBX_ACCEDE għall-konnessjoni ma' database diġà miftuħa f'mod kompatibbli.
  • Użu Imblukkar tal-OFD meta disponibbli.
  • Backup sħun fil-pajp.
  • Algoritmu ta' għażla intern ottimizzat speċjalizzat (sa 2-3 darbiet aktar mgħaġġel minn qsort() u sa 30% aktar mgħaġġel minn std::sort()).
  • It-tul massimu taċ-ċavetta żdied.
  • Kontroll awtomatiku tal-qari bil-quddiem (strateġija tal-caching tal-fajls tad-database fil-memorja).
  • Auto-kompattifikazzjoni aktar aggressiva u aktar mgħaġġla.
  • Strateġija aktar ottimali għall-għaqda tal-paġni tas-siġar B+.
  • Kontroll ta' sistemi ta' fajls mhux lokali (NFS, Samba, eċċ.) Biex tipprevjeni ħsara fid-database jekk tintuża ħażin.
  • Is-sett ta' testijiet ġie estiż.

L-iżvilupp tal-verżjoni "li jmiss" ta' libmdbx se jkompli bħala proġett separat MithrilDB, filwaqt li l-vettur ta 'żvilupp tal-verżjoni "kurrenti" ta' MDBX huwa mmirat biex jiffriża s-sett ta 'karatteristiċi u jistabbilizzah. Din id-deċiżjoni ttieħdet għal tliet raġunijiet:

  • Totalment inkompatibbli: MithrilDB jeħtieġ format ta' fajl tad-database differenti (inkompatibbli) u API differenti (inkompatibbli) biex timplimenta l-karatteristiċi kollha ppjanati.
  • Kodiċi sors ġdid: Il-kodiċi sors MithrilDB sar liċenzjat indipendenti minn LMDB, u l-proġett innifsu huwa ppjanat li jiġi ppubblikat taħt liċenzja differenti (approvata minn JEW JEKK liċenzja Apache 2.0imma le Fondazzjoni OpenLDAP).
  • Is-separazzjoni tevita konfużjoni potenzjali, tipprovdi aktar ċertezza, u tiżgura li l-proġetti jkollhom triq indipendenti 'l quddiem.

MithrilDB, bħal MDBX, huwa wkoll ibbażat fuq siġra B+ u se jkollu wkoll prestazzjoni estremament għolja, filwaqt li jelimina numru ta 'żvantaġġi fundamentali ta' MDBX u LMDB. B'mod partikolari, il-problema ta '"qari fit-tul" se tiġi eliminata, li timmanifesta ruħha bħala "nefħa" tad-database minħabba l-fatt li l-ipproċessar taż-żibel huwa mblukkat minn transazzjonijiet ta' qari fit-tul. Fost il-karatteristiċi ġodda ta 'MithrilDB ta' min jinnota:

  • appoġġ għat-tqegħid tad-database fuq diversi midja eteroġenja: HDD, SSD u memorja mhux volatili.
  • strateġiji ottimali għal "valur" u "valur baxx", għal data "sħun", "sħun" u "kiesaħ".
  • tuża Merkle tree biex tissorvelja l-integrità tad-database.
  • użu fakultattiv tal-WAL u prestazzjoni ogħla b'mod sinifikanti f'xenarji ta' kitba intensiva u garanziji tal-integrità tad-dejta.
  • Fissazzjoni għażżien ta 'qabda ta' data fuq diski.

Sors: linux.org.ru

Żid kumment