Skip to content
This repository has been archived by the owner on Sep 22, 2022. It is now read-only.

Release v0.9.3 (obsolete)

Compare
Choose a tag to compare
@github-actions github-actions released this 02 Feb 23:15
v0.9.3

Acknowledgements:

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) to mdbx_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 and MDBX_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 and MDBX_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 regressive MDBX_KEYEXIST during large transaction commit with MDBX_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:

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