Eftir fimm ára þróun hefur annar libmdbx 1.0 útgáfuframbjóðandinn verið birtur

Laus fyrir prófun á öðrum umsækjanda fyrir útgáfur bókasafna libmdbx með innleiðingu á afkastamiklum, þéttum innbyggðum lykilgildagagnagrunni. Núverandi útgáfa (0.5) er tæknileg útgáfa, markar lok allra endurbóta og umskipti yfir í áfanga opinberrar lokaprófunar og stöðugleika, með síðari myndun fyrstu fullu útgáfu bókasafnsins. libmdbx kóða dreift af leyfi samkvæmt OpenLDAP Public License.

MDBX bókasafnið er verulega endurskoðaður gaffli frá LMDB — innbyggð DBMS í viðskiptum af „lykilgildi“ flokki byggt á tré B+ без fyrirbyggjandi skógarhögg, sem gerir fjölþráðum ferlum kleift að vinna samkeppnishæft og skilvirkt með staðbundnum (ekki net) gagnagrunni. MDBX er aftur á móti hraðvirkara og áreiðanlegra en LMDB og heldur um leið öllum lykileinkennum forföður síns, s.s. ACID og óblokkandi lestur með línulegri mælikvarða yfir CPU kjarna.

Mikilvægasti munurinn á MDBX og LMDB:

  • Í grundvallaratriðum er meiri athygli beint að gæðum kóðans, prófunum og sjálfvirkum athugunum.
  • Verulega meira eftirlit meðan á rekstri stendur, allt frá því að athuga færibreytur til innri endurskoðunar á gagnagrunnsbyggingum.
  • Sjálfvirk þétting og sjálfvirk stjórnun gagnagrunnsstærðar.
  • Eitt gagnagrunnssnið fyrir 32-bita og 64-bita samsetningar.
  • Mat á magni sýna eftir sviðum (mat á sviðsfyrirspurn).
  • Stuðningur við tvöfalt stærri lykla en pönnukökur og gagnagrunnssíðustærð sem notandi getur valið.

Útgáfuframbjóðandinn libmdbx er afleiðing ákvörðunar sem tekin var í ágúst 2019 um að aðskilja MDBX og MithrilDB verkefnin. Á sama tíma ákvað libmdbx að útrýma (skynsamlegri) hámarks tækniskuldum og koma á stöðugleika í safninu. Reyndar hefur 2-3 sinnum meira verið gert í tilgreinda átt en upphaflega var áætlað og áætlað:

  • Stuðningur við macOS og annars stigs vettvang hefur verið innleiddur: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. AIX og HP-UX stuðningi er hægt að bæta við eftir þörfum.
  • Kóðinn var sótthreinsaður með því að nota Undefined Behaviour Sanitizer og Address Sanitizer, allar viðvaranir þegar byggt var með „-Wpedantic“, allar viðvaranir Coverity Static Analyzer o.s.frv.
  • Uppfærsla API lýsingar.
  • Sameining (sameining) frumkóða til að auðvelda innsetningu.
  • CMake stuðning.
  • Stuðningur við hreiður viðskipti.
  • Notkun bootid til að ákvarða hvort stýrikerfið hafi endurræst (óhreinn gagnagrunnsstöðvun).
  • Talning frá enda til enda á uppfærðum/gamlum síðum og auknar færsluupplýsingar.
  • Valkostur MDBX_ACCEDE fyrir tengingu við þegar opinn gagnagrunn í samhæfri stillingu.
  • Nota OFD blokkun þegar í boði er.
  • Heitt varabúnaður í pípu.
  • Sérhæft fínstillt innra flokkunaralgrím (allt að 2-3 sinnum hraðar en „qsort()“ og allt að 30% hraðar en „std::sort()“).
  • Hámarkslengd lykla hefur verið aukin.
  • Sjálfvirk stjórn á lestri á undan (skyndiminni gagnagrunnsskráa í minni).
  • Árásargjarnari og hraðari sjálfvirk þétting.
  • Ákjósanlegri aðferð til að sameina B+ trésíður.
  • Stjórn á skráarkerfum sem ekki eru staðbundin (NFS, Samba o.s.frv.) til að koma í veg fyrir skemmdir á gagnagrunni ef þær eru notaðar á rangan hátt.
  • Prófasettið hefur verið stækkað.

Þróun á „næstu“ útgáfu af libmdbx mun halda áfram sem sérstakt verkefni MithrilDB, en þróunarvektor „núverandi“ útgáfu af MDBX miðar að því að frysta eiginleikasettið og koma á stöðugleika í því. Þessi ákvörðun var tekin af þremur ástæðum:

  • Algerlega ósamrýmanlegt: MithrilDB krefst annars (ósamrýmanlegs) gagnagrunnsskráarsniðs og annars (ósamrýmanlegs) API til að innleiða alla fyrirhugaða eiginleika.
  • Nýr frumkóði: MithrilDB frumkóði hefur verið gerður óháður LMDB og verkefnið sjálft er fyrirhugað að birta undir öðru leyfi (samþykkt af EÐA EF Apache 2.0 leyfi, ekki OpenLDAP almenningsleyfi).
  • Aðskilnaðurinn kemur í veg fyrir hugsanlegan rugling, kynnir meiri vissu og tryggir sjálfstæða leið fyrir verkefni.

MithrilDB, eins og MDBX, er einnig byggt á tré B+ og mun einnig hafa afar mikil afköst, en útrýma ýmsum grundvallargöllum MDBX og LMDB. Sérstaklega verður eytt vandamálinu við „langa lestur“, sem lýsir sér sem „bólga“ í gagnagrunninum vegna þess að sorpvinnsla er læst með löngum lestri. Nýir MithrilDB eiginleikar innihalda:

  • Stuðningur við að setja gagnagrunninn á nokkra ólíka miðla: HDD, SSD og óstöðugt minni.
  • Ákjósanlegar aðferðir fyrir „verðmæt“ og „lítil“ gögn fyrir „heitt“, „heitt“ og „kaldt“ gögn.
  • Notkun Merkle tré til að fylgjast með heilleika gagnagrunns.
  • Valfrjáls notkun á WAL og verulega bætt afköst í skriffrekum atburðarásum með tryggingu gagnaheilleika.
  • Latur grípa til að leggja gögn á diska.

Heimild: opennet.ru

Bæta við athugasemd