Gefa út afkastamiklu innbyggðu DBMS libmdbx 0.11.3

libmdbx 0.11.3 (MDBX) bókasafnið var gefið út með útfærslu á afkastamiklum, innbyggðum innbyggðum lykilgildagagnagrunni. Libmdbx kóðann er með leyfi samkvæmt OpenLDAP Public License. Öll núverandi stýrikerfi og arkitektúr eru studd, sem og rússneska Elbrus 2000. Í lok árs 2021 er libmdbx notað sem geymslubakendi í tveimur hröðustu Ethereum viðskiptavinunum - Erigon og nýja "Shark", sem, samkvæmt tiltækum upplýsingar, er afkastamesti Ethereum viðskiptavinurinn.

Sögulega séð er libmdbx djúp endurvinnsla á LMDB DBMS og er æðri forföður sínum hvað varðar áreiðanleika, eiginleika og frammistöðu. Í samanburði við LMDB leggur libmdbx mikla áherslu á gæði kóða, API stöðugleika, prófun og sjálfvirkar athuganir. Tól til að athuga heilleika gagnagrunnsbyggingarinnar með nokkrum endurheimtargetu fylgir.

Tæknilega séð býður libmdbx upp á ACID, sterka raðgreiningu á breytingum og lestur sem ekki hindrar með línulegri stærðargráðu yfir CPU kjarna. Stuðningur er við sjálfvirka þjöppun, sjálfvirka gagnagrunnsstærðarstjórnun og svið fyrirspurnamats. Frá árinu 2016 hefur verkefnið verið styrkt af Positive Technologies og hefur verið notað í vörur þess síðan 2017.

libmdbx býður upp á C++ API, auk áhugamannastuddra tungumálabindinga fyrir Rust, Haskell, Python, NodeJS, Ruby, Go og Nim.

Helstu nýjungar, endurbætur og leiðréttingar bætt við frá fyrri fréttum 11. október:

  • C++ API er talið tilbúið til notkunar.
  • Uppfærslu GC gagna þegar gríðarstór viðskipti eru framin hefur verið hraðað verulega, sem er sérstaklega mikilvægt þegar libmdbx er notað í Ethereum vistkerfinu.
  • Innri undirskrift gagnagrunnssniðsins hefur verið breytt til að styðja sjálfvirka uppfærslu, sem er algjörlega gagnsæ notendum. Þetta gerir þér kleift að útrýma fölskum jákvæðum skilaboðum um gagnagrunnsspillingu þegar úreltar útgáfur af bókasafninu eru notaðar til að lesa færslur skráðar af núverandi útgáfum.
  • Bætt við aðgerðum mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() og mdbx_env_get_syncbytes(). Bætti við stuðningi við MDBX_SET_UPPERBOUND aðgerðina.
  • Allar viðvaranir þegar verið er að byggja með öllum studdum þýðendum í C++ 11/14/17/20 stillingum hefur verið eytt. Samhæfni við eldri þýðendur er tryggð: clang frá 3.9, gcc frá 4.8, þar á meðal samsetning með cdevtoolset-9 fyrir CentOS/RHEL 7.
  • Lagaði möguleikann á árekstrum á metasíðu eftir að hafa skipt handvirkt yfir á tiltekna metasíðu með því að nota mdbx_chk tólið.
  • Lagaði óvænta MDBX_PROBLEM villu sem var skilað þegar skrifað var yfir eldri metasíður.
  • Lagað að skila MDBX_NOTFOUND ef um ónákvæma samsvörun er að ræða við vinnslu MDBX_GET_BOTH beiðni.
  • Lagaði söfnunarvillu á Linux þar sem hausskrár voru ekki til með lýsingum á viðmótum við kjarnann.
  • Lagaði árekstur milli MDBX_SHRINK_ALLOWED innra fána og MDBX_ACCEDE valmöguleikans.
  • Nokkrar óþarfa fullyrðingarávísanir hafa verið eytt.
  • Lagaði óvænta endurkomu MDBX_RESULT_TRUE frá mdbx_env_set_option() fallinu.
  • Alls voru gerðar meira en 90 breytingar á 25 skrám, ~1300 línum bætt við, ~600 var eytt.

Heimild: opennet.ru

Bæta við athugasemd