Gefa út afkastamiklu innbyggðu DBMS libmdbx 0.10.4 og libfpta 0.3.9

libmdbx 0.10.4 (MDBX) bókasafnið var gefið út með útfærslu á afkastamiklum innbyggðum lykilgilda gagnagrunni og tilheyrandi libfpta 0.3.9 (FPTA) bókasafn, sem útfærir framsetningu gagna í töfluformi með auka- og samsettum vísitölum ofan á MDBX. Bæði bókasöfnin eru dreift undir OSI samþykktum leyfum. Öll núverandi stýrikerfi og arkitektúr eru studd, sem og rússneski Elbrus 2000.

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 hafa verkefni verið styrkt af Positive Technologies og síðan 2017 hafa verið notuð í vörur þess.

libmdbx býður upp á C++ API, auk áhugamannastuddra tungumálabindinga fyrir Rust, Haskell, Python, NodeJS, Ruby, Go og Nim. Fyrir libfpta er aðeins API lýsingin aðgengileg almenningi í formi C/C++ hausskrár.

Helstu nýjungar, endurbætur og leiðréttingar bætt við frá fyrri fréttum 9. maí:

  • Gerir kleift að endurskapa byggingar.
  • Lagaði villu sem veldur því að í mjög sjaldgæfum tilfellum gæti lykkja/frysting átt sér stað við færslu. Vandamálið var greint af sérfræðingum Positive Tecnologies við innri prófun á eigin vörum.
  • Prófanir hafa verið endurbættar og prófunarsviðsmyndir hafa verið stækkaðar til að kanna allar aðgengilegar ómyndbrigði síðutrésins og GC innihalds inni í gagnagrunninum.
  • Í C++ API hefur auka „noexcept“ verið lagfært, viðbótarálagi hefur verið bætt við fyrir „cursor::erase()“ aðferðina, innleiðingu biðminni hefur verið hlíft við notkun „std::string“ til að tryggja röðun (viðeigandi fyrir CLANG libstdc++).
  • Aðhvarf í reikniritinu til að hella niður óhreinum síðu (sértækt brotthvarf á breyttum gagnagrunnssíðum) sem kom fram í sjaldgæfri óvæntri villu MDBX_PROBLEM þegar skipt var um gögn í stórum viðskiptum hefur verið eytt.
  • Framkvæmt var áfangapróf að viðbættum fjölda athugana til að tryggja stöðugleika ef af ásetningi yrði tjón á gagnagrunninum.
  • Lagaðar minniháttar viðvaranir UndefinedBehaviorSanitizer og Coverity Scan vandamál.
  • Lagað að athuga úrelta og ekki lengur notaða innri fánann „P_DIRTY“ á hreiðrum síðum inni í gagnagrunnsmyndum búnar til af eldri útgáfum af bókasafninu.
  • Í CMake skriftum hefur leitin að þýðandahlutum sem krafist er fyrir LTO (link-time optimization) verið bætt.
  • Hámarksfjöldi samtímis lesenda hefur verið aukinn í 32767.
  • Bætt afköst þegar Valgrind og AddressSanitizer eru notuð.
  • Í Windows hefur endurtekinni notkun SRW-lás þegar unnið er í MDBX_NOTLS ham (án þess að nota staðbundin geymslu þráðar) verið eytt, ræsingargerð hefur verið lagfærð ef kerfistími hefur breyst, WSL1 og WSL2 uppgötvun hefur verið bætt og geta til að opna gagnagrunn á Plan 9 sem er tengt í gegnum DrvFS hefur verið bætt við.
  • Alls voru gerðar meira en 160 breytingar á 57 skrám, ~5000 línum bætt við, ~2500 var eytt.

Sérstaklega vil ég þakka Erigon verkefnishópnum (Ethereum vistkerfi) fyrir aðstoðina við prófun í öfgakenndum notkunaratburðum. Það er merkilegt að á fimm mánuðum frá útgáfu libmdbx v0.10.0, með rúmmál gagnagrunns upp á 1-2 TB í hverri Erigon uppsetningu (notað á 7% Ethereum hnúta), bárust aðeins þrjár tilkynningar um spillingu gagnagrunnsins, allar sem áttu sér stað af utanaðkomandi ástæðum, en ekki hugbúnaðarvillum: í tveimur tilfellum var orsökin RAM bilun, í því þriðja villa við að endurstilla gögn í tiltekinni uppsetningu geymslu undirkerfisins með BTRFS.

Heimild: opennet.ru

Bæta við athugasemd