Release of high-performance embedded DBMS LIBMDBX 0.11.3

took place Library release LIBMDBX 0.11.3 (MDBX) with the implementation of a high-performance compact embedded key-value class database. LIBMDBX code extends under the license OpenLDAP Public License . All current operating systems and architecture are supported, as well as Russian Elbrus 2000. The end of the leaving 2021 LIBMDBX is used as a storage backend in the two fastest Ethereum – Erigon clients and a new “shark”, which Affordable information is the highest performance client ETHEREUM.

Historically libmdbx is a deep processing Subd LMDB and exceeds its progenitor for reliability, a set of opportunity and performance. In comparison with the LMDB, in libmdbx, much attention is paid to the quality of the code, stable operation of the API, testing and automatic checks. The utility checks the integrity of the database structure with some recovery capabilities.

Technologically LIBMDBX offers ACID, strict serialization of changes and non-blocking reading with linear scaling through the CPU kernels. AutoComatification, automatic control of the database size, evaluation of the sample size of ranges (Range Query Estimation) is supported. Since 2016, the project is financed by the company Positive Technologies and C 2017 used in Its products .

For libmdbx Offered C ++ API , as well as supported by enthusiasts Bindings to RUST, Haskell, Python, Nodejs, Ruby, Go, Nim.

Main innovations, refinement and corrections added after the previous news from October 11:

  • C ++ API is considered ready for use.
  • is significantly accelerated updating GC data when fixing huge transactions, which is especially relevant when using LIBMDBX in Ethereum ecosystem.
  • Changed internal database format signature with automatic update support, which is completely transparent to users. This allows you to exclude false positive database damage messages when the outdated version of the library is used to read transactions recorded by current versions.
  • MDBX_ENV_GET_SYNCBYTES (), MDBX_ENV_GET_SYNCPERIOD () and MDBX_ENV_GET_SYNCBYTES () added functions. Added support for MDBX_SET_UPPERBOUND operation.

/Media reports.