Rilaxx tad-DBMS inkorporat kompatt libmdbx 0.9.1

Meħlus verżjoni tal-librerija 0.9.1 libmdbx (MDBX) ta’ database ta’ valur ewlieni inkorporat u kompatt ta’ prestazzjoni għolja. Il-kodiċi libmdbx huwa mqassam taħt liċenzja Liċenzja Pubblika OpenLDAP.

Il-verżjoni attwali hija kompromess bejn l-intenzjoni li tiġi rilaxxata verżjoni stabbli fit-tul 1.0 b'appoġġ sħiħ ta 'C++ u r-riluttanza biex jittardjaw ir-rilaxxi minħabba nuqqas ta' tħejjija għall-iffriżar tal-API C++ il-ġdida. Ir-rilaxx ippreżentat huwa r-riżultat ta '9 xhur ta' xogħol immirat biex jistabbilizza l-librerija u jtejjeb l-użabilità tagħha, u jinkludi wkoll verżjoni preliminari C++ API.

Il-librerija libmdbx mhix biss "furketta", iżda dixxendent imfassal mill-ġdid b'mod radikali LMDB — DBMS inkorporat transazzjonali tal-klassi “key-value” ibbażata fuq siġra B+ mingħajr logging proattiv, li jippermetti proċessi multi-threaded jaħdmu b'mod kompetittiv u effiċjenti ma 'database kondiviża lokalment (mhux netwerk) mingħajr proċess server dedikat. libmdbx fundamentalment tespandi kapaċitajiet tal-antenat tiegħu, filwaqt li fl-istess ħin jelimina jew itaffu l-iżvantaġġi. Fl-istess ħin, skond l-iżviluppaturi, libmdbx huwa ftit aktar mgħaġġel u ferm aktar affidabbli minn LMDB.

libmdbx jissuġġerixxi ACID, serialization stretta ta 'bidliet u qari mhux imblukkar bi skalar lineari madwar cores CPU. Riżultati tal-ittestjar tal-prestazzjoni (li jintbagħtu talbiet paralleli ta' qari/tfittxija f'1-2-4-8 ħjut fuq CPU i7-4600U b'2 qlub fiżiċi fil-modalità HyperThread b'4 ħjut):

Rilaxx tad-DBMS inkorporat kompatt libmdbx 0.9.1

L-aktar differenzi importanti bejn MDBX u LMDB:

  • Fundamentalment, tingħata aktar attenzjoni lill-kwalità tal-kodiċi, il-konsistenza tal-API, 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 tal-volumi tal-kampjuni b'meded (stima ta' mistoqsija tal-firxa).
  • Appoġġ għal ċwievet twil darbtejn u daqs tal-paġna tad-database li jista 'jagħżel mill-utent.
  • Utilità għall-iċċekkjar tal-integrità tal-istruttura tad-database b'xi kapaċitajiet ta 'rkupru.

Innovazzjonijiet ewlenin u titjib wara aħbarijiet preċedenti bl-introduzzjoni tal-verżjoni 0.5 f'Jannar 2020:

  • Inħolqot sistema miftuħa għal appoġġ fil-pront u tweġibiet għall-mistoqsijiet. Grupp Telegram.
  • Aktar minn tużżana żbalji u nuqqasijiet ġew eliminati (ara. reġistru tal-bidla).
  • Ġew irranġati ħafna typos u żbalji ortografiċi, u sar bosta titjib kożmetiku.
  • Ix-xenarji tat-test ġew estiżi.
  • Appoġġ għal iOS, Android, buildroot, musl, uClibc, WSL1 и Inbid.
  • Preview C++ API rilaxxat fi fajl header wieħed.
  • Dokumentazzjoni inkorporata fil-format Doxygen u ġenerazzjoni awtomatika Dokumentazzjoni onlajn.
  • Ġenerazzjoni awtomatika ta 'arkivji b'testi sors amalgamati hija pprovduta.
  • Appoġġ miżjud għall-preparazzjoni ta 'tranżazzjonijiet u cursors, kuntesti ta' utent għal tranżazzjonijiet u cursors.
  • Ġew implimentati metodi addizzjonali biex jikkontrollaw l-integrità referenzjali f'snapshots MVCC B + tree.
  • Appoġġ miżjud għall-iċċekkjar ta 'snapshot MVCC tad-database, aċċessibbli permezz ta' kwalunkwe paġna meta bil-kapaċità li taqleb għall-irkupru.
  • Appoġġ implimentat għall-ftuħ mill-ġdid tad-database minn proċess wieħed għal skopijiet ta 'ttestjar, eċċ.
  • Implimenta l-ipproċessar awtomatiku tal-għażla MDBX_NOSUBDIR meta tiftaħ database.
  • Funzjonijiet miżjuda għall-ġenerazzjoni ta’ ċwievet interi minn valuri ta’ punt li jvarja u numri “universali” ta’ JavaScript.
  • B'kollox, saru 430 bidla li affettwaw 93 fajl, ġew miżjuda aktar minn 25 elf linja, tħassru aktar minn 8.5 elf linja.

L-iżvilupp sussegwenti ta 'libmdbx se jiffoka fuq l-API C++ finali, aktar stabbilizzazzjoni tal-kodiċi bażi, it-titjib tal-użabilità tal-librerija, u l-ippakkjar għal distribuzzjonijiet Linux popolari. Fost it-titjib propost, ta 'min jinnota appoġġ għal ċwievet fil-format MessagePack.

Sors: opennet.ru

Żid kumment