Kutolewa kwa kompakt iliyopachikwa DBMS libmdbx 0.9.1

Imetolewa toleo la maktaba 0.9.1 libmdbx (MDBX) utekelezaji wa hifadhidata ya utendakazi wa hali ya juu, iliyoambatanishwa ya thamani kuu. Nambari ya libmdbx inasambazwa chini ya leseni Leseni ya Umma ya OpenLDAP.

Toleo la sasa ni maelewano kati ya nia ya kutoa toleo thabiti la muda mrefu la 1.0 lenye usaidizi kamili wa C++ na kusitasita kuchelewesha matoleo kwa sababu ya kutokuwa tayari kufungia API mpya ya C++. Toleo lililowasilishwa ni matokeo ya miezi 9 ya kazi inayolenga kuleta utulivu wa maktaba na kuboresha utumiaji wake, na pia inajumuisha toleo la awali. C++ API.

Maktaba ya libmdbx sio tu "uma", lakini kizazi kilichoundwa upya kwa kiasi kikubwa. LMDB - DBMS iliyopachikwa ya shughuli ya darasa la "thamani-msingi" kulingana na mti B+ bila ukataji miti makini, ambayo huruhusu michakato yenye nyuzi nyingi kufanya kazi kwa ushindani na kwa ufanisi na hifadhidata iliyoshirikiwa ndani (isiyo ya mtandao) bila mchakato maalum wa seva. libmdbx kimsingi hupanuka uwezo wa babu yake, wakati huo huo kuondoa au kupunguza hasara. Wakati huo huo, kulingana na watengenezaji, libmdbx ni haraka kidogo na inaaminika zaidi kuliko LMDB.

libmdbx inapendekeza ACID, urekebishaji madhubuti wa mabadiliko na usomaji usiozuia kwa kuongeza mstari kwenye viini vya CPU. Matokeo ya majaribio ya utendakazi (kutuma maombi sambamba ya kusoma/kutafuta katika nyuzi 1-2-4-8 kwenye CPU i7-4600U yenye viini 2 katika modi ya HyperThread yenye nyuzi 4):

Kutolewa kwa kompakt iliyopachikwa DBMS libmdbx 0.9.1

Tofauti muhimu zaidi kati ya MDBX na LMDB:

  • Kimsingi, umakini zaidi hulipwa kwa ubora wa nambari, uthabiti wa API, majaribio na ukaguzi wa kiotomatiki.
  • Udhibiti mkubwa zaidi wakati wa operesheni, kutoka kwa kuangalia vigezo hadi ukaguzi wa ndani wa miundo ya hifadhidata.
  • Urekebishaji kiotomatiki na usimamizi wa saizi ya hifadhidata otomatiki.
  • Umbizo la hifadhidata moja kwa makusanyiko ya 32-bit na 64-bit.
  • Ukadiriaji wa ujazo wa sampuli kwa safu (makadirio ya hoja za masafa).
  • Usaidizi wa funguo ndefu mara mbili na saizi ya ukurasa wa hifadhidata inayoweza kuchaguliwa na mtumiaji.
  • Huduma ya kuangalia uadilifu wa muundo wa hifadhidata na uwezo fulani wa uokoaji.

Ubunifu kuu na maboresho baada ya habari zilizopita na utangulizi wa toleo la 0.5 mnamo Januari 2020:

  • Mfumo wazi umeundwa kwa usaidizi wa haraka na majibu ya maswali. Kikundi cha Telegraph.
  • Zaidi ya makosa na mapungufu kadhaa yameondolewa (tazama. logi ya mabadiliko).
  • Makosa mengi ya tahajia na tahajia yamerekebishwa, na uboreshaji mwingi wa urembo umefanywa.
  • Mazingira ya majaribio yamepanuliwa.
  • Msaada kwa iOS, Android, mzizi wa ujenzi, musl, uClibc, WSL1 ΠΈ Mvinyo.
  • Onyesho la kuchungulia la API la C++ limetolewa faili moja ya kichwa.
  • Nyaraka zilizojumuishwa katika umbizo la Doksijeni na utayarishaji wa kiotomatiki Nyaraka za mtandaoni.
  • Uzalishaji wa kiotomatiki wa kumbukumbu na maandishi ya chanzo kilichounganishwa hutolewa.
  • Usaidizi ulioongezwa wa kuandaa miamala na vielekezi, miktadha ya watumiaji wa miamala na vielekezi.
  • Mbinu za ziada zimetekelezwa ili kudhibiti uadilifu wa marejeleo katika vijipicha vya B+tree MVCC.
  • Usaidizi ulioongezwa wa kuangalia picha ya MVCC ya hifadhidata, inayopatikana kupitia ukurasa wowote wa meta wenye uwezo wa kubadili kwa ajili ya urejeshaji.
  • Usaidizi uliotekelezwa wa kufungua tena hifadhidata kutoka kwa mchakato mmoja kwa madhumuni ya majaribio, nk.
  • Imetekelezwa usindikaji otomatiki wa chaguo la MDBX_NOSUBDIR wakati wa kufungua hifadhidata.
  • Vitendaji vilivyoongezwa vya kutengeneza funguo kamili kutoka kwa nambari za sehemu zinazoelea na nambari za "zima" za JavaScript.
  • Kwa jumla, mabadiliko 430 yalifanywa yanayoathiri faili 93, mistari zaidi ya elfu 25 iliongezwa, mistari zaidi ya elfu 8.5 ilifutwa.

Ukuzaji unaofuata wa libmdbx utazingatia API ya mwisho ya C++, uimarishaji zaidi wa msimbo wa msingi, kuboresha utumiaji wa maktaba, na upakiaji kwa usambazaji maarufu wa Linux. Miongoni mwa maboresho yaliyopendekezwa, ni muhimu kuzingatia usaidizi wa funguo katika muundo MessagePack.

Chanzo: opennet.ru

Kuongeza maoni