libmdbx 0.11.7 prichádza s migráciou projektu na GitFlic, opravami chýb a ďalšími

The vydanie novej knižnice libmdbx verzie 0.11.7, spustenie vyniká migráciou projektu na službu GitFlic po tom, čo administratíva GitHubu odstránila libmdbx spolu s množstvom ďalších projektov 15. apríla 2022 bez akéhokoľvek varovania alebo vysvetlenia, a zároveň zablokovala prístup mnohým vývojárom spojeným so spoločnosťami, na ktoré sa vzťahovali sankcie USA.

Z pohľadu užívateľa sa zrazu všetky stránky, úložisko a forky projektu zmenili na stránku „404“, bez možnosti komunikácie a bez zisťovania dôvodov.

Bohužiaľ, takmer všetky verzie sa stratili, v ktorom bolo množstvo otázok s podrobnými odpoveďami, ako aj množstvo diskusií. Strata týchto informácií je jedinou objektívnou škodou, ktorú sa administratíve GitHubu podarilo projektu spôsobiť, hoci čiastočné kópie diskusií zostávajú dostupné v archíve archive.org.

Strata vstavanej infraštruktúry CI a skriptov (k dispozícii zadarmo pre projekty OpenSource) nás prinútila preskúmať, zjednotiť a odstrániť malý technický dlh. Teraz bolo CI obnovené na takmer rovnaký objem (asi 100 konfigurácií zostavenia), s výnimkou zostavovania a spúšťania testov pre všetky varianty BSD a Solaris. Je zrejmé, že po akciách GitHub neprišli žiadne vysvetlenia ani upozornenia, okrem pripomenutia potreby platby.

Hlavné nové funkcie libmdbx 0.11.7

Od najnovších správ o vydaní libmdbx v0.11.3, okrem obnovy z akcií GitHub, stoja za zmienku aj nasledujúce vylepšenia a opravy:

Celkovo bolo vykonaných 185 zmien v 89 súboroch, bolo pridaných približne 3300 riadkov, bolo odstránených približne 4100 XNUMX. Odstránené predovšetkým z dôvodu vymazania už nepotrebných technických súborov spojených s GitHubom a závislými službami.

Pridané a oprava zisteného nekonzistentného efektu/defektu v zlúčenej stránke a vyrovnávacej pamäti vyrovnávacej pamäte v jadre Linuxu. Na systémoch, kde sú vyrovnávacia pamäť stránok a vyrovnávacej pamäte skutočne zjednotené, nemá zmysel, aby jadro plytvalo pamäťou na dve kópie údajov zapisovaním do už alokovaného súboru. Údaje, ktoré sa zapíšu, sa preto stanú viditeľnými prostredníctvom pridelenia pamäte pred dokončením systémového volania write(), aj keď údaje ešte neboli zapísané na disk.

Celkovo iné správanie nie je racionálne, pretože pri oneskorenom zlúčení stále musíte zachytiť zámky pre zoznamy stránok, kopírovať údaje alebo upravovať PTE. Nevyslovené pravidlo konzistencie teda platí od roku 1989, keď sa v SVR4 objavila jednotná vyrovnávacia pamäť. Výsledkom bolo, že hľadanie podivných chýb v rušných scenároch produkcie libmdbx dalo veľa práce. Po prvé, reprodukovanie problému, potom overenie hypotéz a kontrola zlepšení.

Teraz môžeme s istotou povedať, že problém bol spoľahlivo identifikovaný, lokalizovaný a odstránený napriek zložitosti a špecifickosti scenára prehrávania. Fungovanie obtokového mechanizmu potvrdil aj jeden z vývojárov Erigon (Ethereum), v jeho prípade pri zostavovaní ladenia bola ochrana spustená ako regresia kvôli dodatočnej kontrole tvrdenia.

Je potrebné poznamenať, že v kontexte rozšíreného používania libmdbx vo fungujúcich projektoch je zásadne dôležitejšie zabezpečiť spoľahlivú prevádzku, než zisťovať, či ide o chybu alebo funkciu a či sa na takúto konzistenciu dá spoľahnúť. najmä bez hľadania príčin nekonzistentnosti v jadre Linuxu. Takže tu hovoríme o odstránení problému, ktorý by mohol ovplyvniť používateľov.

Opravená regresia chyby EXDEV (prepojenie medzi zariadeniami) pri horúcom kopírovaní databázy bez komprimácie do iného súborového systému, a to prostredníctvom API aj pomocou pomôcky mdbx_copy.
Kris Zyp implementoval podporu pre libmdbx na Deno.

Opravené spracovanie hodnoty nastavenej voľbou MDBX_opt_rp_augment_limit pri spracovaní veľkých transakcií na veľkých databázach. Predtým sa kvôli chybe mohli vykonávať zbytočné akcie, ktoré niekedy mali vplyv na výkon implementácií Ethereum (Erigon/Akula/Silkworm) a projektov Binance Chain.

Veľa chýb bolo opravených, vrátane tých pre C++ API a opravených veľa problémov so zostavovaním na zriedkavých a exotických konfiguráciách. Kompletný zoznam všetkých významných vylepšení je dostupný na ChangeLog.

Nakoniec, ak máte záujem dozvedieť sa o ňom viac, môžete si prekonzultovať podrobnosti Na nasledujúcom odkaze.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.