libmdbx 0.11.7 arriba amb migració del projecte a GitFlic, solucions d'errors i més

Es va donar a conèixer el llançament de la nova versió de la biblioteca libmdbx 0.11.7, el llançament es destaca per la migració del projecte al servei GitFlic després que l'administració de GitHub va eliminar libmdbx juntament amb una sèrie d'altres projectes el 15 d'abril del 2022 sense cap advertiment ni explicació, alhora que va bloquejar l'accés a molts desenvolupadors associats amb empreses que van caure sota les sancions dels EUA.

Des del punt de vista de l'usuari, totes les pàgines, el repositori i les bifurcacions del projecte esdevingueren sobtadament una pàgina «404», sense possibilitat de comunicació i sense esbrinar-ne els motius.

Malauradament, gairebé totes les versions s'han perdut, en què hi havia moltes preguntes amb respostes detallades, així com moltes discussions. La pèrdua d'aquesta informació és l'únic dany objectiu que l'administració de GitHub va aconseguir infligir al projecte, encara que hi ha còpies parcials de les discussions que estan disponibles a l'arxiu archive.org.

La pèrdua de la infraestructura i els scripts de CI incorporats (disponibles de forma gratuïta per a projectes OpenSource) ens va obligar a fer una revisió, unificació i eliminació d'un petit deute tècnic. Ara CI s'ha restaurat gairebé al mateix volum (al voltant de 100 configuracions de compilació), amb l'excepció de compilar i executar proves per a totes les variants de BSD i Solaris. De manera reveladora, després de les accions de GitHub, no es van rebre aclariments ni notificacions, a banda d'un recordatori de la necessitat de pagament.

Principals novetats de libmdbx 0.11.7

Des de les últimes notícies sobre el llançament de libmdbx v0.11.3, a més de recuperar-se de les accions de GitHub, cal destacar les millores i correccions següents:

Es van realitzar un total de 185 canvis en 89 fitxers, es van afegir aproximadament 3300 línies, se'n van eliminar aproximadament 4100. Es va eliminar principalment a causa de la purga d'arxius tecnològics i inútils associats amb GitHub i serveis dependents.

Es va agregar una solució per a un efecte/defecte d'incoherència detectat a la pàgina combinada i la memòria cau del memòria intermèdia al nucli de Linux. En els sistemes en què les memòria cau de pàgina i de memòria intermèdia estan realment unificades, no té sentit que el nucli desaprofiti memòria en dues còpies de dades en escriure en un fitxer ja assignat a la memòria. Per tant, les dades que s'escriuen es tornen visibles a través de l'assignació de memòria abans que es completi la trucada al sistema write(), encara que les dades encara no s'han escrit al disc.

En total, un altre comportament no és racional, perquè amb una fusió retardada encara ha de capturar bloquejos per a llistes de pàgines, copiar dades o ajustar PTE. Per tant, la regla tàcita de coherència ha estat vigent des de 1989, quan va aparèixer el caixet de memòria intermèdia unificat a SVR4 . Com a resultat, trobar falles estranyes en escenaris de producció ocupats de libmdbx ha estat molta feina. Primer, reproduint el problema, després verificant hipòtesis i comprovant millores.

Ara podem dir amb confiança que el problema es va identificar, localitzar i eliminar de manera fiable, malgrat la complexitat i l'especificitat de l'escenari de reproducció. A més, el treball del mecanisme de derivació va ser confirmat per un dels desenvolupadors d'Erigon (Ethereum), si escau, en la compilació de depuració, la protecció es va activar com una regressió degut a una verificació d'afirmació addicional.

Cal assenyalar que en el context de l'ús generalitzat de libmdbx en projectes de treball, és fonamentalment més important garantir un funcionament fiable, en lloc d'esbrinar si es tracta d'un error o una característica i si es pot confiar en aquesta coherència especialment sense cercar-les causes de la incoherència dins del nucli de Linux. Per tant, aquí estem parlant de solucionar un problema que podria afectar els usuaris.

S'ha corregit una regressió de l'error EXDEV (enllaç entre dispositius) en copiar en calent una base de dades sense compactació a un altre sistema de fitxers, tant a través de l'API com amb la utilitat mdbx_copy.
Kris Zyp ha implementat suport per a libmdbx a Deno.

S'ha corregit el maneig del valor establert per l'opció MDBX_opt_rp_augment_limit en processar transaccions grans en bases de dades grans. Anteriorment, a causa d'un error, es podien realitzar accions innecessàries, fet que de vegades afectava el rendiment en les implementacions d'Ethereum (Erigon/Akula/Silkworm) i els projectes de Binance Chain.

S'han solucionat molts errors, inclosos els de l'API de C++ i es van corregir molts problemes de construcció en configuracions rares i exòtiques. Una llista completa de totes les millores significatives està disponible a ChangeLog.

Finalment, si estàs interessat a poder conèixer-ne més, pots consultar els detalls en el següent enllaç.


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa aquí.

Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.