Rilascio della potente DBMS integrata libmdbx 0.11.3

È stata rilasciata la libreria libmdbx 0.11.3 (MDBX) con implementazione di un database compatto e ad alte prestazioni di tipo chiave-valore. Il codice di libmdbx è distribuito sotto la licenza OpenLDAP Public License. Sono supportati tutti i sistemi operativi e architetture attuali, incluso il russo Elbrus 2000. Alla fine del 2021, libmdbx è utilizzato come backend di archiviazione in due dei client Ethereum più veloci: Erigon e il nuovo "Squalo", che secondo le informazioni disponibili è il client Ethereum con le migliori prestazioni.

Storicamente, libmdbx è una profonda rielaborazione del database LMDB e supera il suo predecessore in affidabilità, funzionalità e prestazioni. Rispetto a LMDB, libmdbx pone un forte accento sulla qualità del codice, sul funzionamento stabile dell'API, sui test e sui controlli automatici. Viene fornuto uno strumento per la verifica dell'integrità della struttura del database con alcune funzionalità di recupero.

La tecnologia di libmdbx offre ACID, serializzazione rigorosa delle modifiche e lettura non bloccante con scalabilità lineare sui core della CPU. Supporta l'auto-compattazione, la gestione automatica delle dimensioni del DB e la stima del volume delle query per intervallo.

Per libmdbx è disponibile un'API C++, oltre a vincoli supportati da appassionati per i linguaggi Rust, Haskell, Python, NodeJS, Ruby, Go e Nim.

Le principali novità, aggiornamenti e correzioni aggiunte dopo l'ultimo aggiornamento dell'11 ottobre:

  • L'API C++ è considerata pronta per l'uso.
  • Significativamente accelerato l'aggiornamento dei dati GC durante la registrazione di enormi transazioni, particolarmente rilevante quando si utilizza libmdbx nell'ecosistema Ethereum.
  • Modificata la firma interna del formato DB con supporto per l'aggiornamento automatico, che è completamente trasparente per gli utenti. Questo consente di escludere falsi positivi riguardo ai danni del DB quando versioni obsolete della libreria vengono utilizzate per leggere transazioni registrate con versioni attuali.
  • Aggiunte le funzioni mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() e mdbx_env_get_syncbytes(). Aggiunto il supporto per l'operazione MDBX_SET_UPPERBOUND.
  • Risolte tutte le avvertenze durante la compilazione con tutti i compilatori supportati nelle modalità C++ 11/14/17/20. Garantita la compatibilità con compilatori obsoleti: clang dalla versione 3.9, gcc dalla versione 4.8, inclusa la compilazione tramite sdevtoolset-9 per CentOS/RHEL 7.
  • Risolto il possibile conflitto delle meta-pagine dopo la commutazione manuale a una specifica meta-pagina utilizzando lo strumento mdbx_chk.
  • Corretto il ritorno di un errore inaspettato MDBX_PROBLEM durante la riscrittura di meta-pagine obsolete.
  • Corretto il ritorno di MDBX_NOTFOUND in caso di corrispondenza imprecisa durante l'elaborazione della richiesta MDBX_GET_BOTH.
  • Risolto un errore di compilazione su Linux in assenza di file di intestazione con descrizioni delle interfacce con il nucleo.
  • Corretto un conflitto tra il flag interno MDBX_SHRINK_ALLOWED e l'opzione MDBX_ACCEDE.
  • Eliminati diversi controlli assert non necessari.
  • Corretto un ritorno inaspettato di MDBX_RESULT_TRUE dalla funzione mdbx_env_set_option().
  • In totale sono state apportate oltre 90 modifiche in 25 file, aggiunte circa 1300 righe e rimosse circa 600.

Fonte: opennet.ru

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