Lansarea versiunii de baze de date integrate de înaltă performanță libmdbx 0.11.3

A avut loc lansarea bibliotecii libmdbx 0.11.3 (MDBX) cu implementarea unei baze de date integrate compacte de înaltă performanță de tip cheie-valoare. Codul libmdbx se distribuie sub licența OpenLDAP Public License. Sunt susținute toate sistemele de operare și arhitecturile actuale, precum și Elbrus 2000 din Rusia. La sfârșitul anului 2021, libmdbx este utilizat ca backend de stocare în două dintre cele mai rapide clienți Ethereum — Erigon și noua „Rechin”, care, conform informațiilor disponibile, este cel mai performant client Ethereum.

Din punct de vedere istoric, libmdbx reprezintă o refacere profundă a SGBD-ului LMDB și îl depășește pe acesta din urmă în ceea ce privește fiabilitatea, setul de funcționalități și performanță. Comparativ cu LMDB, libmdbx acordă o mare atenție calității codului, stabilității API-ului, testării și verificărilor automate. Este inclus un utilitar de verificare a integrității structurii Bazei de date, cu unele funcționalități de recuperare.

Tehnologic, libmdbx oferă ACID, serializare strictă a modificărilor și citire non-blocantă cu scalabilitate liniară pe nuclee CPU. Suportă auto-compacția, gestionarea automată a dimensiunii bazei de date, estimarea volumului interogărilor pe intervale (range query estimation). Din 2016, proiectul este finanțat de compania Positive Technologies și din 2017 este utilizat în produsele acesteia.

Pentru libmdbx se oferă un API C++, precum și legături susținute de entuziaști pentru limbaje precum Rust, Haskell, Python, NodeJS, Ruby, Go, și Nim.

Principalele noutăți, modificări și corecții adăugate după ultima actualizare din 11 octombrie:

  • API-ul C++ este considerat gata de utilizare.
  • Actualizarea datelor GC a fost semnificativ accelerată la finalizarea tranzacțiilor enorme, ceea ce este deosebit de relevant în utilizarea libmdbx în ecosistemul Ethereum.
  • Semnătura internă a formatului bazei de date a fost modificată, susținând actualizarea automată care este complet transparentă pentru utilizatori. Acest lucru permite excluderea mesajelor false de apărare a bazei de date, atunci când versiunile învechite ale bibliotecii sunt folosite pentru a citi tranzacțiile înregistrate de versiunile actuale.
  • Au fost adăugate funcțiile mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() și mdbx_env_get_syncbytes(). A fost adăugat suport pentru operația MDBX_SET_UPPERBOUND.
  • Toate avertizările la compilare au fost eliminate pentru toate compilatoarele acceptate în modurile C++ 11/14/17/20. Compatibilitatea cu compilatoarele învechite a fost asigurată: clang începând cu 3.9, gcc începând cu 4.8, inclusiv compilarea prin devtoolset-9 pentru CentOS/RHEL 7.
  • Conflictul paginilor meta după comutarea manuală la o anumită pagină meta cu ajutorul utilitarului mdbx_chk a fost eliminat.
  • S-a corectat returnarea erorii neprevăzute MDBX_PROBLEM la rescrierea paginilor meta învechite.
  • S-a corectat returnarea MDBX_NOTFOUND în cazul unei potriviri imprecise la procesarea cererii MDBX_GET_BOTH.
  • A fost eliminată eroarea de compilare pe Linux în absența fișierelor de antet cu descrierile interfețelor cu nucleul.
  • Coliziunea dintre flag-ul intern MDBX_SHRINK_ALLOWED și opțiunea MDBX_ACCEDE a fost corectată.
  • Au fost eliminate mai multe verificări assert inutile.
  • A fost corectat returnarea neașteptată MDBX_RESULT_TRUE din funcția mdbx_env_set_option().
  • În total, au fost efectuate peste 90 de modificări în 25 de fișiere, adăugând ~1300 de linii, eliminând ~600.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster