libmdbx 0.11.7 vine cu migrarea proiectului la GitFlic, remedieri de erori și multe altele

The lansarea noii versiuni a bibliotecii libmdbx 0.11.7, lansarea se remarcă prin migrarea proiectului către serviciul GitFlic după ce managementul GitHub a eliminat libmdbx împreună cu o serie de alte proiecte pe 15 aprilie 2022 fără niciun avertisment sau explicație, blocând în același timp accesul la mulți dezvoltatori asociați cu companii care au căzut sub sancțiunile SUA.

Din punctul de vedere al utilizatorului, toate paginile, depozitul și furcile proiectului au devenit dintr-o dată o pagină „404”, fără nicio posibilitate de comunicare și fără a se afla motivele.

Din păcate, aproape toate versiunile s-au pierdut., în care au fost multe întrebări cu răspunsuri detaliate, precum și multe discuții. Pierderea acestor informații este singurul prejudiciu obiectiv pe care administrația GitHub a reușit să îl provoace proiectului, deși există copii parțiale ale discuțiilor care rămân disponibile în arhiva archive.org.

Pierderea infrastructurii CI încorporate și a scripturilor (disponibile gratuit pentru proiectele OpenSource) ne-a forțat să facem o revizuire, unificare și eliminare a unei mici datorii tehnice. Acum CI a fost restaurat aproape la același volum (aproximativ 100 de configurații de construcție), cu excepția testelor de construire și rulare pentru toate variantele BSD și Solaris. În mod evident, după acțiunile GitHub, nu s-au primit clarificări sau notificări, în afară de un memento cu privire la necesitatea plății.

Principalele caracteristici noi ale libmdbx 0.11.7

De la cele mai recente știri despre lansarea libmdbx v0.11.3, pe lângă recuperarea din acțiunile GitHub, merită evidențiate următoarele îmbunătățiri și remedieri:

Un total de 185 de modificări au fost făcute la 89 de fișiere, au fost adăugate aproximativ 3300 de linii, au fost eliminate aproximativ 4100. Eliminate în principal din cauza curățării fișierelor tehnice deja inutile asociate cu GitHub și serviciile dependente.

A adăugat un remediați efectul/defectul de inconsecvență detectat în pagina și memoria cache îmbinate al bufferului din nucleul Linux. Pe sistemele în care cache-urile de pagină și buffer sunt cu adevărat unificate, nu are sens ca nucleul să irosească memorie pe două copii de date prin scrierea într-un fișier deja alocat memoriei. Prin urmare, datele care sunt scrise devin vizibile prin alocarea memoriei înainte ca apelul de sistem write() să se încheie, chiar dacă datele nu au fost încă scrise pe disc.

În total, alt comportament nu este rațional, deoarece, cu o îmbinare întârziată, trebuie să capturați în continuare blocări pentru listele de pagini, să copiați datele sau să ajustați PTE. Prin urmare, regula nespusă de consistență a fost în vigoare din 1989, când a apărut memoria cache-tampon unificată în SVR4. Ca rezultat, găsirea unor erori ciudate în scenariile de producție aglomerate libmdbx a fost multă muncă. Mai întâi, reproducerea problemei, apoi verificarea ipotezelor și verificarea îmbunătățirilor.

Acum putem spune cu încredere că problema a fost identificată, localizată și eliminată în mod fiabil, în ciuda complexității și specificității scenariului de redare. De asemenea, funcționarea mecanismului de ocolire a fost confirmată de unul dintre dezvoltatorii Erigon (Ethereum), în cazul său, în versiunea de depanare, protecția a fost declanșată ca regresie datorită unei verificări suplimentare de afirmare.

Trebuie remarcat faptul că, în contextul utilizării pe scară largă a libmdbx în proiectele de lucru, este fundamental mai important să se asigure o funcționare fiabilă, mai degrabă decât să se afle dacă este o eroare sau o caracteristică și dacă se poate baza pe o astfel de consecvență mai ales fără căutând cauzele inconsecvenței în nucleul Linux. Prin urmare, aici vorbim despre remedierea unei probleme care ar putea afecta utilizatorii.

S-a remediat regresia erorii EXDEV (legare între dispozitive) la copierea la cald a unei baze de date fără compactare într-un alt sistem de fișiere, atât prin API, cât și cu utilitarul mdbx_copy.
Kris Zyp a implementat suport pentru libmdbx în Deno.

S-a rezolvat gestionarea valorii setate de opțiunea MDBX_opt_rp_augment_limit la procesarea tranzacţiilor mari în baze de date mari. Anterior, din cauza unui bug, puteau fi efectuate acțiuni inutile, uneori impactând performanța implementărilor Ethereum (Erigon/Akula/Silkworm) și proiectelor Binance Chain.

Multe erori au fost remediate, inclusiv cele din API-ul C++ și am remediat multe probleme de construcție în configurații rare și exotice. O listă completă a tuturor îmbunătățirilor semnificative este disponibilă pe ChangeLog.

În fine, dacă ești interesat să afli mai multe despre el, poți consulta detaliile În următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.