Rilascio del database embedded libmdbx 0.13.10

È stato pubblicato il rilascio della libreria libmdbx 0.13.10 (MDBX), che implementa un database embedded compatto di alta prestazione di tipo chiave-valore. Il codice di libmdbx è distribuito sotto licenza Apache 2.0. Supporta tutti i sistemi operativi e le architetture attuali, inclusi gli Elbrus 2000 russi. Per libmdbx è disponibile un API avanzata per C++, oltre a binding supportati da appassionati per i linguaggi Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala. Tra i progetti che utilizzano libmdbx si possono citare Isar, Erigon e Reth, oltre ai prodotti delle aziende StarkWare e Positive Technologies.

Historicamente, libmdbx è una revisione approfondita del DBMS LMDB e supera il suo predecessore in termini di affidabilità, funzionalità e prestazioni. Rispetto a LMDB, in libmdbx viene posta grande attenzione alla qualità del codice, al funzionamento stabile dell'API, al testing e ai controlli automatici. È fornuto uno strumento per verificare l'integrità della struttura del database con alcune funzionalità di ripristino. Dal punto di vista tecnologico, libmdbx offre ACID, stretta serializzazione delle modifiche e lettura non bloccante con scalabilità lineare su core CPU. Supporta la compattazione automatica, la gestione automatica delle dimensioni del database e la stima del volume delle query per intervallo (range query estimation).

Nel dicembre 2025, il repository principale del progetto è stato trasferito da GitFlic a SourceCraft. Le ragioni indicate includono le lamentele degli utenti non russofoni e i bug nell'editor Markdown, che non sono stati risolti in oltre tre anni. È stato anche segnalato che il mirror del progetto su Github era stato chiuso, ma successivamente il repository è stato ripristinato con la spiegazione che ciò è stato fatto su richiesta degli sviluppatori cinesi e brasiliani, così come della piattaforma Tempo che utilizza libmdbx.

Le principali modifiche dopo l'ultima notizia del 1 agosto:

  • Ritornata la compatibilità con i vecchi kernel Linux, a partire dalla versione 3.16.
  • Supporto per il sistema operativo mobile Harmony fornito.
  • L'errore «MDBX_WANNA_RECOVERY» durante l'apertura del database in modalità di sola lettura ora viene restituito se la dimensione del database non è un multiplo della dimensione della pagina di sistema, ma viene ignorato se non è un multiplo della dimensione del blocco di memoria virtuale.
  • Risolto un possibile errore «SIGBUS» causato dall'allocazione ritardata/defaticata da parte del kernel OS di spazio in un filesystem pieno dopo l'aumento della dimensione del database.
  • Corretto il controllo assert nel modo di scansione dei bitmap dei descrittori DBI che portava a rari crash nelle build di debug a 32 bit.
  • Per Android, implementato un manovra per ridurre la probabilità dell'errore di sistema «EAGAIN», che si verifica a causa della carenza di risorse di sistema e dei processi transitori durante la chiusura e la riapertura rapida del database.
  • Per Linux, aggiunta la prevenzione dell'insorgere di un errore nell'implementazione del fast_commit del filesystem Ext4.
  • Corretto un problema di auto-regolazione delle impostazioni durante l'installazione della geometria con una dimensione minima di pagina specificata, che causava l'aumento della dimensione della pagina su macchine con una grande quantità di RAM.
  • Ristrutturata l'implementazione dei buffer e apportati altri miglioramenti all'API C++.

Vale la pena notare l'annuncio della relazione "libmdbx: Roadmap, successi, obiettivi e ostacoli" all'evento Ethereum Day, che si terrà il 23 dicembre a Mosca.

Fonte: opennet.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster