libmdbx 0.11.7 stiže s migracijom projekta na GitFlic, ispravcima pogrešaka i još mnogo toga

The izdanje nove verzije biblioteke libmdbx 0.11.7, lansiranje ističe se migracijom projekta na uslugu GitFlic nakon što je GitHubova administracija uklonila libmdbx zajedno s nizom drugih projekata 15. travnja 2022. bez ikakvog upozorenja ili objašnjenja, dok je također blokirala pristup mnogim programerima povezanim s tvrtkama koje su potpale pod američkim sankcijama.

S korisničke točke gledišta, sve stranice, repozitorij i vilice projekta odjednom su se pretvorile u stranicu “404”, bez mogućnosti komunikacije i bez otkrivanja razloga.

Nažalost, gotovo sve verzije su izgubljene, u kojem je bilo mnogo pitanja s detaljnim odgovorima, kao i mnogo rasprava. Gubitak ovih informacija jedina je objektivna šteta koju je GitHub administracija uspjela nanijeti projektu, iako djelomične kopije rasprava ostaju dostupne u arhivi archive.org.

Gubitak ugrađene CI infrastrukture i skripti (dostupnih besplatno za OpenSource projekte) natjerao nas je da pregledamo, objedinimo i eliminiramo mali tehnički dug. Sada je CI vraćen na gotovo isti volumen (oko 100 konfiguracija građenja), s izuzetkom testova izgradnje i rada za sve varijante BSD-a i Solarisa. Znakovito je da nakon GitHubovih radnji nisu zaprimljena nikakva pojašnjenja niti obavijesti, osim podsjetnika o potrebi plaćanja.

Glavne nove značajke libmdbx 0.11.7

Od najnovijih vijesti o izdanju libmdbxa v0.11.3, osim oporavka od GitHub akcija, vrijedna su pozornosti sljedeća poboljšanja i popravci:

Ukupno je napravljeno 185 izmjena u 89 datoteka, dodano je otprilike 3300 redaka, uklonjeno je približno 4100. Uklonjeno prvenstveno zbog čišćenja već beskorisnih tehnoloških datoteka povezanih s GitHubom i ovisnim uslugama.

Dodan je a popravak za otkriveni efekt nedosljednosti/defekt u spojenoj stranici i predmemoriji međuspremnika u jezgri Linuxa. Na sustavima u kojima su predmemorije stranica i međuspremnika uistinu objedinjene, nema smisla da kernel troši memoriju na dvije kopije podataka pisanjem u datoteku koja je već dodijeljena memoriji. Stoga podaci koji su zapisani postaju vidljivi kroz dodjelu memorije prije dovršetka poziva sustava write(), čak i ako podaci još nisu zapisani na disk.

Sveukupno drugo ponašanje nije racionalno, jer s odgođenim spajanjem i dalje morate uhvatiti zaključavanja za popise stranica, kopirati podatke ili prilagoditi PTE-ove. Dakle, neizgovoreno pravilo dosljednosti je na snazi ​​od 1989. godine, kada se u SVR4 pojavila objedinjena predmemorija međuspremnika. Kao rezultat toga, pronalaženje čudnih grešaka u zauzetim scenarijima proizvodnje libmdbx-a bilo je puno posla. Prvo, reproduciranje problema, zatim provjera hipoteza i provjera poboljšanja.

Sada sa sigurnošću možemo reći da je problem pouzdano identificiran, lociran i uklonjen, unatoč složenosti i specifičnosti scenarija reprodukcije. Također, rad zaobilaznog mehanizma potvrdio je i jedan od Erigon (Ethereum) programera, u njegovom slučaju, u debug build-u, zaštita je pokrenuta kao regresija zbog dodatne provjere tvrdnji.

Treba napomenuti da je u kontekstu raširene upotrebe libmdbx-a u radnim projektima bitno važnije osigurati pouzdan rad, a ne otkriti radi li se o grešci ili osobini i može li se na takvu dosljednost osloniti osobito bez traženja uzroka nedosljednosti unutar Linux kernela. Dakle, ovdje govorimo o rješavanju problema koji bi mogao utjecati na korisnike.

Ispravljena regresija EXDEV buga (veza između uređaja) kod vrućeg kopiranja baze podataka bez sažimanja u drugi datotečni sustav, kako putem API-ja tako i pomoću uslužnog programa mdbx_copy.
Kris Zyp implementirao je podršku za libmdbx na Deno.

Fiksno rukovanje vrijednosti postavljenom opcijom MDBX_opt_rp_augment_limit pri obradi velikih transakcija na velikim bazama podataka. Prije su se zbog buga mogle izvoditi nepotrebne radnje, koje su ponekad utjecale na performanse na Ethereum implementacijama (Erigon/Akula/Silkworm) i projektima Binance Chain.

Mnoge greške su ispravljene, uključujući one za C++ API i popravio mnoge probleme s građenjem na rijetkim i egzotičnim konfiguracijama. Potpuni popis svih značajnih poboljšanja dostupan je na ChangeLog-u.

Konačno, ako ste zainteresirani za više informacija o tome, možete pogledati detalje U sljedećem linku.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.