Liberazione di DBMS integratu di altu rendiment libmdbx 0.11.3

A libreria libmdbx 0.11.3 (MDBX) hè stata liberata cù l'implementazione di una basa di dati di valori chjave integrata compacta di altu rendiment. U codice libmdbx hè licenziatu sottu a Licenza Publica OpenLDAP. Tutti i sistemi operativi è l'architetture attuali sò supportati, è ancu u Russian Elbrus 2000. À a fine di u 2021, libmdbx hè utilizatu cum'è backend di almacenamento in i dui clienti più veloci di Ethereum - Erigon è u novu "Shark", chì, secondu a dispunibilità. infurmazione, hè u cliente Ethereum più altu rendiment.

Stòricamente, libmdbx hè un ridisegnu prufondu di u DBMS LMDB è supera u so progenitore in termini di affidabilità, set di funzioni è prestazioni. Comparatu à LMDB, libmdbx mette assai enfasi in a qualità di u codice, a stabilità di l'API, a prova è i cuntrolli automatizati. Una utilità per verificà l'integrità di a struttura di a basa di dati hè furnita cù alcune opzioni di ricuperazione.

In quantu à a tecnulugia, libmdbx offre ACID, serializazione di cambiamentu forte è letture senza bloccu cù scala lineare in i core CPU. L'auto-compactificazione, a gestione automatica di a dimensione di a basa di dati è a stima di e dumande di intervallu sò supportati. Dapoi u 2016, u prugettu hè stata finanzata da Tecnulugia Positiva è hè stata utilizata in i so prudutti da u 2017.

libmdbx offre una API C++, è ancu associazioni di lingua supportate da entusiasti per Rust, Haskell, Python, NodeJS, Ruby, Go è Nim.

Innuvazioni maiò, migliure è currezzione aghjunte da a nutizia precedente l'11 d'ottobre:

  • L'API C++ hè cunsiderata pronta per l'usu.
  • L'aghjurnamentu di e dati GC quandu si cummettenu transazzioni enormi hè stata accelerata significativamente, chì hè particularmente impurtante quandu si usa libmdbx in l'ecosistema Ethereu.
  • A firma interna di u formatu di basa di dati hè stata cambiata per sustene l'aghjurnamentu automaticu, chì hè completamente trasparente per l'utilizatori. Questu permette di eliminà i missaghji falsi pusitivi nantu à a corruzzione di a basa di dati quandu e versioni obsolete di a biblioteca sò aduprate per leghje e transazzione registrate da e versioni attuali.
  • Funzioni aghjunte mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() è mdbx_env_get_syncbytes(). Aghjunghje supportu per l'operazione MDBX_SET_UPPERBOUND.
  • Tutti l'avvirtimenti quandu custruiscenu cù tutti i compilatori supportati in C++ 11/14/17/20 modi sò stati eliminati. A cumpatibilità cù i compilatori legacy hè assicurata: clang partendu da 3.9, gcc partendu da 4.8, cumprese l'assemblea cù cdevtoolset-9 per CentOS / RHEL 7.
  • Fixed a pussibilità di un cunflittu di meta pagina dopu avè cambiatu manualmente à una meta pagina specifica usendu l'utilità mdbx_chk.
  • Fixed l'errore MDBX_PROBLEM imprevisu chì era tornatu quandu si sovrascriveva e pagine di meta legacy.
  • Fixed returning MDBX_NOTFOUND in casu di una partita inesatta quandu si trattava una dumanda MDBX_GET_BOTH.
  • Fixed un errore di compilazione in Linux in l'absenza di fugliali d'intestazione cù descrizzioni di l'interfacce cù u kernel.
  • Fixatu un cunflittu trà a bandiera interna MDBX_SHRINK_ALLOWED è l'opzione MDBX_ACCEDE.
  • Diversi cuntrolli di affirmazioni innecessarii sò stati eliminati.
  • Fixed u ritornu inespettatu di MDBX_RESULT_TRUE da a funzione mdbx_env_set_option ().
  • In totale, più di 90 cambiamenti sò stati fatti à i schedari 25, ~ 1300 linee sò state aghjunte, ~ 600 sò stati eliminati.

Source: opennet.ru

Add a comment