libmdbx v0.9.4 Release Notes
Release Date: 2021-03-18 // about 3 years ago-
TODO:
- Engage new terminology (https://github.com/erthink/libmdbx/issues/137).
- Resolve few TODOs (https://github.com/erthink/libmdbx/issues/124, https://github.com/erthink/libmdbx/issues/127, https://github.com/erthink/libmdbx/issues/115).
- Finalize C++ API (few typos and trivia bugs are still likely for now).
- Packages for ROSA Linux, ALT Linux, Fedora/RHEL, Debian/Ubuntu.
Acknowledgements:
- Mahlon E. Smith for Ruby bindings.
- Alex Sharov for mdbx-go and for bug reporting.
- Artem Vorotnikov for bug reporting and PR.
๐ New features:
- Added
MDBX_DISABLE_PAGECHECKS
build option to disable some checks to reduce an overhead and detection probability of database corruption to a values closer to the LMDB. TheMDBX_DISABLE_PAGECHECKS=1
provides a performance boost of about 10% in CRUD scenarios, and conjointly with theMDBX_ENV_CHECKPID=0
andMDBX_TXN_CHECKOWNER=0
options can yield up to 30% more performance compared to LMDB. - Using float point (exponential quantized) representation for internal 16-bit values of grow step and shrink threshold when huge ones (https://github.com/erthink/libmdbx/issues/166). To minimize the impact on compatibility, only the odd values inside the upper half of the range (i.e. 32769..65533) are used for the new representation.
- Added the
mdbx_drop
similar to LMDB command-line tool to purge or delete (sub)database(s). - Ruby bindings is available now by Mahlon E. Smith.
- Added
MDBX_ENABLE_MADVISE
build option which controls the use of POSIXmadvise()
hints and friends. - The internal node sizes were refined, resulting in a reduction in large/overflow pages in some use cases and a slight increase in limits for a keys size.
๐ Fixes:
- Fixed performance regression due non-optimal C11 atomics usage (https://github.com/erthink/libmdbx/issues/160).
- Fixed "reincarnation" of subDB after it deletion (https://github.com/erthink/libmdbx/issues/168).
- Fixed (disallowing) implicit subDB deletion via operations on
@MAIN
's DBI-handle. - Fixed a crash of
mdbx_env_info_ex()
in case of a call for a non-open environment (https://github.com/erthink/libmdbx/issues/171). - Fixed the selecting/adjustment values inside
mdbx_env_set_geometry()
for implicit out-of-range cases (https://github.com/erthink/libmdbx/issues/170).