This repository has been archived by the owner on Sep 22, 2022. It is now read-only.
Release v0.10.2 (obsolete)
Acknowledgements:
- Alex Sharov for reporting and testing.
- Andrea Lanfranchi for reporting bugs.
- Lionel Debroux for fuzzing tests and reporting bugs.
- Sergey Fedotov for
node-mdbx
NodeJS bindings. - Kris Zyp for
lmdbx-store
NodeJS bindings. - Noel Kuntze for draft Python bindings.
New features, extensions and improvements:
- Allow to predefine/override
MDBX_BUILD_TIMESTAMP
for builds reproducibility. - Added options support for
long-stochastic
script. - Avoided
MDBX_TXN_FULL
error for large transactions when possible. - The
MDBX_READERS_LIMIT
increased to32767
. - Raise
MDBX_TOO_LARGE
under Valgrind/ASAN if being opened DB is 100 larger than RAM (to avoid hangs and OOM). - Minimized the size of poisoned/unpoisoned regions to avoid Valgrind/ASAN stuck.
- Added more workarounds for QEMU for testing builds for 32-bit platforms, Alpha and Sparc architectures.
mdbx_chk
now skips iteration & checking of DB' records if corresponding page-tree is corrupted (to avoidSIGSEGV
, ASAN failures, etc).- Added more checks for rare/fuzzing corruption cases.
Backward compatibility break:
- Use file
VERSION.txt
for version information instead ofVERSION
to avoid collision with#include <version>
. - Rename
slice::from/to_FOO_bytes()
to `slice::envisage_from/to_FOO_length()'. - Rename
MDBX_TEST_EXTRA
make's variable toMDBX_SMOKE_EXTRA
. - Some details of the C++ API have been changed for subsequent freezing.
Fixes:
- Fixed excess meta-pages checks in case
mdbx_chk
is called to check the DB for a specific meta page and thus could prevent switching to the selected meta page, even if the check passed without errors. - Fixed recursive use of SRW-lock on Windows cause by
MDBX_NOTLS
option. - Fixed log a warning during a new DB creation.
- Fixed false-negative
mdbx_cursor_eof()
result. - Fixed
make install
with non-GNUinstall
utility (OSX, BSD). - Fixed installation by
CMake
in special cases by complete useGNUInstallDirs
's variables. - Fixed C++ Buffer issue with
std::string
and alignment. - Fixed
safe64_reset()
for platforms without atomic 64-bit compare-and-swap. - Fixed hang/shutdown on big-endian platforms without
__cxa_thread_atexit()
. - Fixed using bad meta-pages if DB was partially/recoverable corrupted.
- Fixed extra
noexcept
forbuffer::&assign_reference()
. - Fixed
bootid
generation on Windows for case of change system' time. - Fixed test framework keygen-related issue.
TODO for next releases:
- Engage an "overlapped I/O" on Windows.
- Simple careful mode for working with corrupted DB.
- Move most of
mdbx_chk
functional to the library API. - Replace SRW-lock on Windows to allow shrink DB with
MDBX_NOTLS
option. - More flexible support of asynchronous runtime/framework(s).
- Migration guide from LMDB to MDBX.
- Get rid of dirty-pages list in MDBX_WRITEMAP mode.
- Large/Overflow pages accounting for dirty-room.
- Support for RAW devices.
- Support MessagePack for Keys & Values.
- Engage new terminology.
- Finalize C++ API (few typos and trivia bugs are still likely for now).
- Packages for Astra Linux, ALT Linux, ROSA Linux, etc.
SHA256 checksums
745555704df76626a6612ad0c6bc6b1a66bfab98b9245b07dfb82640aa46d6fa libmdbx-amalgamated-0.10.2.tar.gz
95ca553437d99bb320216592a1b36cc20ef90feeb7dc413875f8e8a2a1d56c72 libmdbx-amalgamated-0_10_2.zip
*** Please don't use github's tarballs nor zips, but the amalgamated sources or clone the git repository ***
*** Moreover, please vote for "disable tarballs" feature to vanish this discommodity ***