LIBMDBX 0.13.3 DBMS Released

A new version of the LIBMDBX 0.13.3 (MDBX) library has been released, featuring a high-performance compact built-in data database of key-value pairs. The LIBMDBX code is distributed under the Apache 2.0 license and is supported on various operating systems and architectures, including Russian Elbrus 2000. The library offers a developed API for C++, as well as bindings for Rust, Haskell, Python, Nodejs, Ruby, GO, NIM, Deno, and Scala.

LIBMDBX is a descendant of the deep processing DBMDB DBMS and surpasses its predecessor in reliability, capabilities, and performance. It prioritizes code quality, stable API operation, testing, and automatic checks. The library includes a utility for checking database structure integrity and offers features such as ACID compliance, strict serialization of changes, non-blocking reading with linear scaling across CPU cores, auto compaction, automatic database control, and Range Query Estimation.

Key changes in the latest release include:

  • Stable status for branch 0.13.x with development on branch 0.14.x started.
  • Addition of the function mdbx_cursor_count_ex() in the C API for obtaining the number of values corresponding to the current key and information about the tree storing these values.
  • In the C++ API, the method MDBX::txn::make_broken() is added, similar to mdbx_txn_break().
  • Enhancements to utilities such as mdbx_copy, mdbx_drop, mdbx_dump, mdbx_load, mdbx_stat, logging, and warnings.
  • Behavior changes include:
    • Calculating CPU time costs for merging page lists when profiling the garbage collector.
    • Renaming the data mode value in the test utility from Data.dups to Data.multi.
    • Improved key length control in cursor_seek().
    • Automatic adjustment of DIRTY-PAGES-LIMIT when value not provided by user in mdbx_env_set_option(mdbx_opt_txn_dp_limit).
    • Allowing MDBX_NOSTICYTHREADS mode for COMMIT/ABORT of nested transactions from any thread or stream.
    • Displaying error MDBX_INCOMPATILLE when attempting to launch nested transactions in MDBX_WRITEMAP mode.
    • Using Default-Relations by default in C++ API for database geometry formation.
    • Refinements in selecting default database parameters in mdbx_env_set_geometry().
/Reports, release notes, official announcements.