Gefa út DBMS libmdbx 0.11.7. Færir þróun til GitFlic eftir að hafa verið lokað á GitHub

libmdbx 0.11.7 (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ússneski Elbrus 2000.

Útgáfan er athyglisverð vegna flutnings verkefnisins yfir í GitFlic þjónustuna eftir að 15. apríl 2022, eyddi GitHub stjórnun, án nokkurrar viðvörunar eða skýringa, libmdbx ásamt fjölda annarra verkefna, en lokaði samtímis aðgangi margra forritara sem tengjast fyrirtæki sem sæta refsiaðgerðum Bandaríkjanna. Frá sjónarhóli notenda breyttust allar síður, geymsla og gafflar verkefnisins skyndilega í 404 síðu, án möguleika á neinum samskiptum og að finna út ástæðurnar.

Því miður hafa nánast öll mál, þar sem margar spurningar voru með ítarlegum svörum, svo og margar umræður, glatast. Tap þessara upplýsinga er eini hlutlægi skaðinn sem GitHub stjórnendum tókst að valda verkefninu. Hlutaeintök af umræðunum eru enn fáanleg á archive.org.

Tap á uppbyggðum CI atburðarás og innviðum (fáanlegt fyrir OpenSource verkefni ókeypis) neyddi okkur til að taka að okkur endurskoðun, sameiningu og útrýmingu lítilla tæknilegra skulda. Nú hefur CI verið endurreist í næstum sama mæli, að undanskildum smíða- og keyrsluprófunum fyrir öll BSD og Solaris afbrigði. Venjulega, eftir aðgerðirnar, fékk GitHub engar skýringar eða tilkynningar, fyrir utan áminningar um greiðsluþörf og tilraunir til að afskrifa peninga.

Frá síðustu fréttum um útgáfu libmdbx v0.11.3, auk bata frá GitHub aðgerðum, er vert að taka eftir eftirfarandi endurbótum og lagfæringum:

  • Bætti við lausn fyrir greind ósamræmisáhrif/galla í sameinuðu síðu- og biðminni skyndiminni í Linux kjarnanum. Í kerfum þar sem síðu- og biðminni skyndiminni eru sannarlega sameinuð, þýðir ekkert að kjarnan eyði minni fyrir tvö afrit af gögnum þegar skrifað er á skrá sem þegar er varpað inn í minni. Þess vegna verða gögnin sem verið er að skrifa sýnileg í gegnum minniskortlagningu áður en write() kerfiskallið lýkur, jafnvel þótt gögnin hafi ekki enn verið skrifuð á diskinn.

    Almennt séð er önnur hegðun ekki skynsamleg, vegna þess að með frestað sameiningu verður þú samt að eignast læsingar fyrir síðulista, afrita gögn eða stilla PTE. Þess vegna hefur ósagða samræmisreglan verið í gildi síðan 1989, þegar sameinað biðminni skyndiminni birtist í SRV4. Þess vegna þurfti mikla vinnu að greina undarleg hrun í hlaðnum libmdbx nýtingaratburðarás. Fyrst til að endurskapa vandamálið, síðan til að sannreyna tilgátur og prófa úrbætur.

    Nú getum við sagt að vandamálið hafi verið auðkennt á áreiðanlegan hátt, staðbundið og útrýmt á áreiðanlegan hátt, þrátt fyrir margbreytileika og sérstöðu æxlunarsviðsmyndarinnar. Að auki var virkni framhjáhaldsbúnaðarins staðfest af einum af þróunaraðilum Erigon (Ethereum); í hans tilviki, á kembiforritinu, var vörnin sett af stað sem afturför vegna óþarfa fullyrðingarathugunar.

    Það skal tekið fram að í samhengi við útbreidda notkun libmdbx í framleiðsluverkefnum er í grundvallaratriðum mikilvægara að tryggja áreiðanlegan rekstur en að átta sig á því hvort um villu eða eiginleika sé að ræða og hvort hægt sé að treysta á slíkt samræmi, enn síður að leita að orsakir ósamræmis innan Linux kjarnans. Þess vegna erum við að tala um að laga vandamál sem gæti hafa haft áhrif á notendur.

  • Aðhvarf EXDEV (Cross-device link) villunnar þegar gagnagrunnur er heitt afritaður án þéttingar yfir í annað skráarkerfi, bæði í gegnum API og með mdbx_copy tólinu, hefur verið eytt.
  • Kris Zyp innleiddi libmdbx stuðning í Deno. Kai Wetlesen hannaði RPM umbúðir fyrir Fedora. David Bouyssié útfærði bindingar fyrir Scala.
  • Föst vinnsla á gildinu sem tilgreint er af MDBX_opt_rp_augment_limit valkostnum þegar unnið er úr risastórum færslum í stórum gagnagrunnum. Áður, vegna villu, var hægt að framkvæma óþarfa aðgerðir, sem stundum höfðu áhrif á frammistöðu í Ethereum útfærslum (Erigon/Akula/Silkworm) og Binance Chain verkefnum.
  • Margar villur hafa verið lagfærðar, þar á meðal í C++ API. Lagaði mörg byggingarvandamál í sjaldgæfum og framandi stillingum. Heildarlisti yfir allar mikilvægar endurbætur er fáanlegur í ChangeLog.
  • Alls voru gerðar 185 breytingar á 89 skrám, ≈3300 línum var bætt við, ≈4100 var eytt. Fleiri voru fjarlægðir aðallega vegna hreinsunar á þegar gagnslausum tækniskrám sem tengjast GitHub og háð þjónustu.

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 á þróað C++ API, auk áhugamannastuddra bindinga við tungumálin Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.

Heimild: opennet.ru

Bæta við athugasemd