Built-In DBMS LIBMDBX 0.13.6 Released 2 August

published LIBMDBX 0.13.7 (MDBX) library release with the implementation of a high-performance compact built-in data database of the key-value. The LIBMDBX code distributes under the Apache 2.0 license. All relevant operating systems and architectures are supported, as well as Russian Elbrus 2000. For LibMDBX, a developed API for C ++ is offered, as well as bindings supported by enthusiasts to Rust, Haskell, Python, Nodejs, Ruby, GO, NIM, Deno, Scala. Of the projects using libmdbx, you can note isar , erigon and and retah , as well as the development of companies strkware and positive technologies . href=”https://www.symas.com/mdb”> the DBMDB DBMS and surpasses its ancestor in terms of reliability, set of capabilities and performance. Compared to LMDB, LIBMDBX is given great attention to the quality of the code, the stable operation of the API, testing and automatic checks. A utility for checking the integrity of the database structure with some restoration possibilities is supplied. Technologically, LibMDBX offers ACID, a strict serialization of changes and a non -relaxing reading with linear scaling along the cores of the CPU. Car sequence, automatic control of the size of the database, assessment of the volume of samples by ranges (Range Query Estimation).

The main changes:

  • The critical error in the functionality MDBX_ESURRECT_AFTER_FORK () is supported SYSV semaphores. An error was manifested only after generating a subsidiary by means of fork () against the background of a spelling transaction, which led to the incorrect work of semaphores and further to the most different errors, up to damage to the database. The problem existed starting with the appearance of mdbx_env_resurrect_AFTER_FORK () and touched MacOS, as well as Posix platforms when assembling with the MDBX_LOCKING = 5.
  • Options, the problem in the API of the database, manifested on Posix Linux systems (mainly on MacOS), as well as in some cases when the target file is located on a non-local file system. The problem led to the return of the EWULDBLOCK/Eagain error, which is due to the shortage/conflict of FCNTL (F_SETLK) blocking and FLOCK () in the OS core. Processing processing of error capture of file locks in the API of copying on Posix systems.
  • The error was eliminated, which led to an unexpected return mdbx_bad_dbi while starting several transactions within one process after opening the database. MDBX_DBS_FULL during the re-opening of already open tables and the already reached limit of open DBI-conquerors.
  • Fixed the assembly error for the Android platform during the explicit definition of _file_offset_Bits.
  • corrected the error Mdbx_enomem. What could break the assembly on non-Posix/Windows platforms, depending on the configuration and/or versions of SDK.
/Reports, release notes, official announcements.