Rilascio del database embedded compatto libmdbx 0.9.1

Rilasciata versione 0.9.1 della libreria libmdbx (MDBX) con un'implementazione di un database incorporato ad alte prestazioni e compatto di tipo chiave-valore. Il codice libmdbx è distribuito con la licenza Licenza Pubblica OpenLDAP.

La versione corrente è un compromesso tra l'intenzione di rilasciare una versione stabile a lungo termine 1.0 con supporto completo per C++ e il desiderio di non ritardare i rilasci a causa della mancata prontezza per il congelamento del nuovo API C++. Il rilascio presentato è il risultato di 9 mesi di lavoro volto alla stabilizzazione della libreria e al miglioramento della sua facilità d'uso, e include una versione preliminare API C++.

La libreria libmdbx non è semplicemente un «fork», ma un discendente radicalmente riprogettato LMDB — di un DBMS incorporato transazionale di tipo «chiave-valore» basato su albero B+ di journaling predittivo, che consente a processi concorrenti e multi-thread di lavorare in modo efficiente con un DB locale condiviso (non in rete) senza un processo server dedicato. Libmdbx è fondamentalmente si espande le funzionalità del suo predecessore, eliminando o attenuando i difetti. Gli sviluppatori ritengono che libmdbx sia leggermente più veloce e decisamente più affidabile di LMDB.

libmdbx offre ACID, una rigorosa serializzazione delle modifiche e lettura non bloccante con scalabilità lineare sui core della CPU. I risultati dei test di performance (invio di richieste parallele per lettura/ricerca in 1-2-4-8 thread su CPU i7-4600U con 2 core fisici in modalità 4-thread HyperThread):

Rilascio del database embedded compatto libmdbx 0.9.1

Le principali differenze di MDBX rispetto a LMDB:

  • Maggiore attenzione alla qualità del codice, all'"indipendenza" dell'API, ai test e ai controlli automatici.
  • Controllo significativamente maggiore durante l'esecuzione, dalla verifica dei parametri, fino all'audit interno delle strutture del database.
  • Auto-compattamento e gestione automatica della dimensione del DB.
  • Formato unificato del DB per le versioni a 32 e 64 bit.
  • Valutazione del volume delle selezioni per intervallo (range query estimation).
  • Supporto per chiavi di lunghezza doppia e dimensione della pagina del DB selezionabile dall'utente.
  • Utilità di verifica dell'integrità della struttura del DB con alcune funzionalità di recupero.

Novità principali e aggiornamenti dopo l'ultima notizia con il rilascio della versione 0.5 a gennaio 2020:

  • Per supporto tempestivo e risposte a domande è stato creato un gruppo aperto su Telegram.
  • Eliminate oltre una decina di bug e imprecisioni (vedi registro delle modifiche).
  • Corrette molteplici errori di battitura e ortografici, numerosi miglioramenti estetici.
  • Espansi gli scenari di test.
  • Implementato il supporto per iOS, Android, buildroot, Musl, uClibc, WSL1 e Wine.
  • Introdotta una versione preliminare dell'API C++ in un file di intestazione.
  • Preparata la documentazione incorporata in formato Doxygen e generazione automatica Documentazione online.
  • Garantita la creazione automatica di archivi con i testi sorgente amalgamati.
  • Aggiunto supporto per la preparazione di transazioni e cursori, contesti personalizzati per transazioni e cursori.
  • Implementati metodi aggiuntivi per il controllo dell'integrità referenziale nelle istantanee MVCC B+tree.
  • Aggiunto supporto per la verifica dell'istantanea MVCC del DB, accessibile tramite qualsiasi pagina meta con possibilità di commutazione per il ripristino.
  • Implementato supporto per la riapertura del DB da un processo per scopi di test e simili.
  • È stata implementata la gestione automatica dell'opzione MDBX_NOSUBDIR durante l'apertura del database.
  • Sono state aggiunte funzioni per generare chiavi intere a partire da valori in virgola mobile e numeri 'universali' di JavaScript.
  • Sono state apportate in totale 430 modifiche che hanno interessato 93 file, aggiungendo oltre 25.000 righe e rimuovendo più di 8.500 righe.

Lo sviluppo successivo di libmdbx si concentrerà sulla definizione dell'API finale in C++, sulla stabilizzazione del codice base, sul miglioramento dell'usabilità della libreria e sulla creazione di pacchetti per le distribuzioni Linux più popolari. Tra le modifiche previste, vale la pena notare il supporto per le chiavi in formato MessagePack.

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