This repository has been archived by the owner on Sep 22, 2022. It is now read-only.
Release v0.9.3 (obsolete)
Acknowledgements:
- Mahlon E. Smith for FreeBSD port of libmdbx.
- 장세연 for bug fixing and PR.
- Clément Renault for Heed fully typed Rust wrapper.
- Alex Sharov for bug reporting.
- Noel Kuntze for bug reporting.
Removed options and features:
- Drop
MDBX_HUGE_TRANSACTIONS
build-option (now no longer required).
New features:
- Package for FreeBSD is available now by Mahlon E. Smith.
- New API functions to get/set various options (#128):
- the maximum number of named databases for the environment;
- the maximum number of threads/reader slots;
- threshold (since the last unsteady commit) to force flush the data buffers to disk;
- relative period (since the last unsteady commit) to force flush the data buffers to disk;
- limit to grow a list of reclaimed/recycled page's numbers for finding a sequence of contiguous pages for large data items;
- limit to grow a cache of dirty pages for reuse in the current transaction;
- limit of a pre-allocated memory items for dirty pages;
- limit of dirty pages for a write transaction;
- initial allocation size for dirty pages list of a write transaction;
- maximal part of the dirty pages may be spilled when necessary;
- minimal part of the dirty pages should be spilled when necessary;
- how much of the parent transaction dirty pages will be spilled while start each child transaction;
- Unlimited/Dynamic size of retired and dirty page lists (#123).
- Added
-p
option (purge subDB before loading) tomdbx_load
tool. - Reworked spilling of large transaction and committing of nested transactions:
- page spilling code reworked to avoid the flaws and bugs inherited from LMDB;
- limit for number of dirty pages now is controllable at runtime;
- a spilled pages, including overflow/large pages, now can be reused and refunded/compactified in nested transactions;
- more effective refunding/compactification especially for the loosed page cache.
- Added
MDBX_ENABLE_REFUND
andMDBX_PNL_ASCENDING
internal/advanced build options. - Added
mdbx_default_pagesize()
function. - Better support architectures with a weak/relaxed memory consistency model (ARM, AARCH64, PPC, MIPS, RISC-V, etc) by means C11 atomics.
- Speed up page number lists and dirty page lists (#132).
- Added
LIBMDBX_NO_EXPORTS_LEGACY_API
build option.
Fixes:
- Fixed missing cleanup (null assigned) in the C++ commit/abort (#143).
- Fixed
mdbx_realloc()
for case of nullptr andMDBX_AVOID_CRT=ON
for Windows. - Fixed the possibility to use invalid and renewed (closed & re-opened, dropped & re-created) DBI-handles (#146).
- Fixed 4-byte aligned access to 64-bit integers, including access to the
bootid
meta-page's field (#153). - Fixed minor/potential memory leak during page flushing and unspilling.
- Fixed handling states of cursors's and subDBs's for nested transactions.
- Fixed page leak in extra rare case the list of retired pages changed during update GC on transaction commit.
- Fixed assertions to avoid false-positive UB detection by CLANG/LLVM (#153).
- Fixed
MDBX_TXN_FULL
and regressiveMDBX_KEYEXIST
during large transaction commit withMDBX_LIFORECLAIM
(#123). - Fixed auto-recovery (
weak->steady
with the same boot-id) when Database size at last weak checkpoint is large than at last steady checkpoint. - Fixed operation on systems with unusual small/large page size, including PowerPC (#157).
TODO:
- Engage new terminology (#137).
- Resolve few TODOs (#124, #127, #115).
- Finalize C++ API.
- Packages for ROSA Linux, ALT Linux, Fedora/RHEL, Debian/Ubuntu.
SHA256 checksums
d12bc7189b746beaa85514fcd1fcf26b957bb8feadb11662a0e20c4e79410d3f libmdbx-amalgamated-0.9.3.tar.gz
f8249209d31f61750c470f042ecb24e5465424a801221473a0eca49b6af69f66 libmdbx-amalgamated-0_9_3.zip
2bae1558c37bd787df40d16c021bd074111aabde5a333b23ea46ba0c2f7fd2ce v0.9.3.tar.gz
876b820bd7519b7f8942e9fe5ddc88edd5c2bb002e383667aac953de408dfa2b v0.9.3.zip