libmdbx v0.11.6 Release Notes

Release Date: 2022-03-24 // about 2 years ago
  • ๐Ÿš€ The stable release with the complete workaround for an incoherence flaw of Linux unified page/buffer cache. Nonetheless the cause for this trouble may be an issue of Intel CPU cache/MESI. ๐Ÿ‘€ See issue#269 for more information.

    Acknowledgements:

    ๐Ÿ›  Fixes:

    • Added complete workaround for an incoherence flaw of Linux unified page/buffer cache.
    • Fixed cursor reusing for read-only transactions.
    • Fixed copy&paste typo inside mdbx::cursor::find_multivalue().

    Minors:

    • Minor refine C++ API for convenience.
    • Minor internals refines.
    • Added lib-static and lib-shared targets for make.
    • Added minor workaround for AppleClang 13.3 bug.
    • Clarified error messages of a signature/version mismatch.

Previous changes from v0.11.5

  • ๐Ÿš‘ The stable release with the hotfix/workaround for a flaw of Linux 4.19 (at least) unified page/buffer cache. ๐Ÿ‘€ See issue#269 for more information.

    Acknowledgements:

    ๐Ÿ›  Fixes:

    • Added workaround for a flaw of Linux 4.19 (at least) unified page/buffer cache.
    • Fixed/Reworked move-assignment operators for "managed" classes of C++ API.
    • Fixed potential SIGSEGV while open DB with overrided non-default page size.
    • Made mdbx_env_open() idempotence in failure cases.
    • Refined/Fixed pages reservation inside mdbx_update_gc() to avoid non-reclamation in a rare cases.
    • Fixed typo in a retained space calculation for the hsr-callback.

    Minors:

    • Reworked functions for meta-pages, split-off non-volatile.
    • Disentangled C11-atomic fences/barriers and pure-functions (with __attribute__((__pure__))) to avoid compiler misoptimization.
    • Fixed hypotetic unaligned access to 64-bit dwords on ARM with __ARM_FEATURE_UNALIGNED defined.
    • Reasonable paranoia that makes clarity for code readers.
    • Minor fixes Doxygen references, comments, descriptions, etc.