libmdbx 0.10.4 include vari miglioramenti e correzioni di bug

Il rilascio di librerie versione 0.10.4 "Libmdbx" in cui in totale, oltre 160 modifiche apportate a 57 file, ~ 5000 righe aggiunte e ~ 2500 rimosse. Per chi non ha familiarità con libmdbx, dovresti sapere che questo è un insieme di librerie che sono un'implementazione di un database incorporato compatto e ad alte prestazioni della classe chiave-valore.

storicamente, libmdbx è una profonda rielaborazione del DBMS LMDB e supera il suo predecessore in termini di affidabilità, set di funzionalità e prestazioni. Rispetto a LMDB, libmdbx pone molta enfasi sulla qualità del codice, sulla stabilità delle API, sui test e sui controlli automatizzati. Con alcune opzioni di ripristino viene fornita un'utilità per verificare l'integrità della struttura del database.

Tecnologicamente, libmdbx offre ACID, rigorosa serializzazione delle modifiche e letture non bloccanti con ridimensionamento lineare tra i core della CPU. Supporta la compattazione automatica, il controllo automatico delle dimensioni del database e la stima delle query di classificazione. Dal 2016, i progetti sono stati finanziati da Positive Technologies e utilizzati nei loro prodotti dal 2017.

Per libmdbx, viene offerta un'API C ++, così come gli attacchi compatibili con gli appassionati di Rust, Haskell, Python, NodeJS, Ruby, Go, Nim. Per libfpta, è pubblicamente disponibile solo la descrizione dell'API sotto forma di file di intestazione C/C++.

Oltre a supportare Linux, Windows, MacOS, Android, iOS, FreeBSD, DragonFly, Solaris, OpenSolaris, OpenIndiana, NetBSD, OpenBSD e altri sistemi compatibili POSIX.1-2008.

Principali nuove funzionalità di libmdbx 0.10.4

In questa nuova versione di libmdbx 0.10.4 gli sviluppatori hanno lavorato per essere in grado di fornire la possibilità di build giocabili, Inoltre, i test sono stati migliorati e gli script di test sono stati estesi per controllare tutti gli stati non isomorfici ottenibili dell'albero delle pagine e del contenuto GC all'interno del database.

Nell'API C ++ risolto una volta "noex", aggiunto un sovraccarico extra per il metodo "cursor :: erase ()", l'implementazione dei buffer viene alleviata utilizzando "std :: string" per garantire l'allineamento (corrente per CLANG libstdc ++)

Inoltre, viene anche evidenziato che è stata effettuata una verifica per fasi con l'aggiunta di una serie di verifiche per garantire la stabilità in caso di danneggiamento deliberato del database.

Si evidenzia, invece, che negli script CMake è stata migliorata la ricerca dei componenti del compilatore necessari per LTO (link time optimization), inoltre è stato aumentato il numero massimo di lettori simultanei a 32.767 ed anche le prestazioni sono state migliorate migliorata quando si utilizzano Valgrind e AddressSanitizer.

Per quanto riguarda le correzioni di bug che sono stati realizzati in questa nuova versione, sono menzionati i seguenti:

  • Risolto un bug per cui, in circostanze molto rare, poteva verificarsi un loop/crash durante il commit di una transazione. Il problema è stato identificato dagli specialisti di Positive Technologies durante i test interni dei propri prodotti.
  • Risolto il problema con la regressione nell'algoritmo di dispersione delle pagine sporche (eliminazione selettiva delle pagine del database modificate) che si manifestava in un raro errore MDBX_PROBLEM imprevisto durante la modifica dei dati in transazioni di grandi dimensioni.
  • Risolti problemi minori di UndefinedBehaviorSanitizer e Coverity Scan.
    Risolto il problema con il flag interno non aggiornato e non utilizzato "P_DIRTY" sulle pagine nidificate all'interno di immagini di database create da vecchie versioni della libreria.
  • Corretto l'uso ricorsivo di SRW-lock in Windows quando si lavora in modalità MDBX_NOTLS (senza utilizzare l'archiviazione locale del thread), corretta generazione di bootid in caso di modifica dell'ora del sistema, rilevamento migliorato di WSL1 e WSL2 , aggiunta la possibilità di aprire un database Plan 9 montato utilizzando DrvFS.

Infine se sei interessato a saperne di più su questa nuova versione, puoi controllare i dettagli nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.