libmdbx 0.11.7 přichází s migrací projektu na GitFlic, opravami chyb a dalšími

The vydání nové knihovny libmdbx verze 0.11.7, Oběd vyniká migrací projektu na službu GitFlic poté, co administrace GitHubu odstranila libmdbx spolu s řadou dalších projektů 15. dubna 2022 bez jakéhokoli varování nebo vysvětlení, a zároveň zablokovala přístup mnoha vývojářům spojeným se společnostmi, na které se vztahovaly sankce USA.

Z pohledu uživatele se najednou všechny stránky, úložiště a forky projektu změnily na stránku „404“, bez možnosti komunikace a bez zjišťování důvodů.

Bohužel téměř všechny verze byly ztraceny, ve kterém bylo mnoho otázek s podrobnými odpověďmi a také mnoho diskuzí. Ztráta těchto informací je jedinou objektivní škodou, kterou se správě GitHubu podařilo projektu způsobit, i když částečné kopie diskusí zůstávají dostupné v archivu archive.org.

Ztráta vestavěné infrastruktury CI a skriptů (k dispozici zdarma pro projekty OpenSource) nás donutila zkontrolovat, sjednotit a odstranit malý technický dluh. Nyní bylo CI obnoveno na téměř stejný objem (asi 100 konfigurací sestavení), s výjimkou sestavení a spuštění testů pro všechny varianty BSD a Solaris. Je výmluvné, že po akcích GitHubu nepřišla žádná vysvětlení ani upozornění, kromě připomenutí nutnosti platby.

Hlavní nové funkce libmdbx 0.11.7

Od nejnovějších zpráv o vydání libmdbx v0.11.3, kromě zotavení z akcí GitHubu, stojí za zmínku následující vylepšení a opravy:

Celkem bylo provedeno 185 změn v 89 souborech, přidáno cca 3300 řádků, bylo odstraněno přibližně 4100 XNUMX. Odstraněno především kvůli vyčištění již nepotřebných technických souborů spojených s GitHubem a závislými službami.

Přidáno a oprava zjištěného efektu/defektu nekonzistence ve sloučené stránce a mezipaměti vyrovnávací paměti v jádře Linuxu. Na systémech, kde jsou mezipaměti stránek a vyrovnávací paměti skutečně sjednoceny, nedává smysl, aby jádro plýtvalo pamětí na dvě kopie dat zápisem do již alokovaného souboru. Proto se data, která jsou zapsána, stanou viditelnými prostřednictvím alokace paměti před dokončením systémového volání write(), i když data ještě nebyla zapsána na disk.

Celkově jiné chování není racionální, protože se zpožděným sloučením stále musíte chytat zámky pro seznamy stránek, kopírovat data nebo upravovat PTE. Nevyslovené pravidlo konzistence tedy platí od roku 1989, kdy se v SVR4 objevila sjednocená mezipaměť. V důsledku toho bylo hledání podivných chyb v rušných produkčních scénářích libmdbx hodně práce. Nejprve reprodukce problému, poté ověření hypotéz a kontrola zlepšení.

Nyní můžeme s jistotou říci, že problém byl spolehlivě identifikován, lokalizován a odstraněn, a to navzdory složitosti a specifičnosti scénáře přehrávání. Fungování obtokového mechanismu také potvrdil jeden z vývojářů Erigon (Ethereum), v jeho případě v ladicím sestavení byla ochrana spuštěna jako regrese kvůli dodatečné kontrole tvrzení.

Je třeba poznamenat, že v kontextu rozšířeného používání libmdbx ve fungujících projektech je zásadně důležitější zajistit spolehlivý provoz, než zjišťovat, zda se jedná o chybu nebo vlastnost a zda se na takovou konzistenci lze spolehnout zejména bez hledání příčin nekonzistence v jádře Linuxu. Takže zde mluvíme o opravě problému, který by mohl mít vliv na uživatele.

Opravena regrese chyby EXDEV (propojení mezi zařízeními) při kopírování databáze bez komprimace do jiného systému souborů, a to jak prostřednictvím API, tak pomocí nástroje mdbx_copy.
Kris Zyp implementoval podporu pro libmdbx na Deno.

Opraveno zpracování hodnoty nastavené volbou MDBX_opt_rp_augment_limit při zpracování velkých transakcí na velkých databázích. Dříve bylo možné kvůli chybě provádět zbytečné akce, které někdy měly dopad na výkon implementací Etherea (Erigon/Akula/Silkworm) a projektů Binance Chain.

Mnoho chyb bylo opraveno, včetně těch pro C++ API a opraveno mnoho problémů se sestavováním na vzácných a exotických konfiguracích. Kompletní seznam všech významných vylepšení je k dispozici na ChangeLog.

Nakonec, pokud máte zájem dozvědět se o tom více, můžete si prostudovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.