Annar libmdbx v1.0 útgáfuframbjóðandi eftir fimm ára þróun.

Bókasafnið libmdbx er verulega endurhannað afkvæmi LMDB - einstaklega afkastamikils, þéttur innbyggður lykilgildagagnagrunnur.
Núverandi útgáfa v0.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.

LMDB er nokkuð vel þekkt viðskipti innbyggð lykilgildi DBMS byggt á tré B+ без fyrirbyggjandi skógarhögg, sem gerir hópi fjölþráðra ferla kleift að vinna samkeppnishæft og afar skilvirkt með staðbundnum (ekki net) gagnagrunni. Aftur á móti er MDBX hraðari og áreiðanlegri en LMDB á meðan libmdbx heldur öllum lykileiginleikum forföður síns, ss. ACID og óblokkandi lestur með línulegri mælikvarða yfir CPU kjarna, og bætir einnig við nokkrum nýjum.

Lýsing á mismun og endurbótum á libmdbx miðað við LMDB verðskuldar sérstaka grein (fyrirhugað að birta á Habré og Medium). Hér er rétt að nefna það mikilvægasta og áberandi:

  • Í 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 á stærð úrtaks 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 (sjá hér að neðan) um að aðskilja MDBX og MithrilDB verkefnin í ágúst 2019. Á sama tíma ákvað libmdbx að útrýma (skynsamlegri) hámarks tækniskuldum og koma á stöðugleika í bókasafninu. Reyndar hefur 2-3 sinnum meira verið gert í tiltekna átt en upphaflega var áætlað og áætlað:

  • Stuðningur við Mac OS 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 Behavior Sanitizer og Address Sanitizer, allar viðvaranir þegar verið er að byggja með -Wpedantic, allar Coverity Static Analyzer viðvaranir osfrv.
  • Uppfærsla API lýsingar.
  • 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 leyfi Apache 2.0Og ekki OpenLDAP Foundation).
  • Aðskilnaðurinn kemur í veg fyrir hugsanlegan rugling, veitir meiri vissu og tryggir að verkefni eigi sér sjálfstæða leið fram á við.

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.
  • bestu aðferðir fyrir „verðmæt“ og „lítil“ gögn fyrir „heit“, „heit“ og „kald“ gögn.
  • nota Merkle tré til að fylgjast með gagnagrunnsheilleika.
  • valfrjáls notkun WAL og umtalsvert meiri frammistöðu í skriffrekum atburðarásum og gagnaheilleikaábyrgð.
  • Lat catch-up fixing gagna á diskum.

Heimild: linux.org.ru

Bæta við athugasemd