libmdbx v0.11.4 Release Notes

Release Date: 2022-01-28 // 5 months ago
  • 🚀 The stable release with fixes for large and huge databases sized of 4..128 TiB.

    Acknowledgements:

    🆕 New features, extensions and improvements:

    • Added treating the UINT64_MAX value as maximum for given option inside mdbx_env_set_option().
    • Added to_hex/to_base58/to_base64::output(std::ostream&) overloads without using temporary string objects as buffers.
    • Added --geometry-jitter=YES|no option to the test framework.
    • Added support for Deno support by Kris Zyp.

    🛠 Fixes:

    • Fixed handling MDBX_opt_rp_augment_limit for GC's records from huge transactions (Erigon/Akula/Ethereum).
    • Fixed build on Android (avoid including sys/sem.h).
    • Fixed missing copy assignment operator for mdbx::move_result.
    • Fixed missing & for std::ostream &operator<<() overloads.
    • Fixed unexpected EXDEV (Cross-device link) error from mdbx_env_copy().
    • Fixed base64 encoding/decoding bugs in auxillary C++ API.
    • Fixed overflow of pgno_t during checking PNL on 64-bit platforms.
    • Fixed excessive PNL checking after sort for spilling.
    • Reworked checking MAX_PAGENO and DB upper-size geometry limit.
    • Fixed build for some combinations of versions of MSVC and Windows SDK.

    Minors:

    • Added workaround for CLANG bug D79919/PR42445.
    • Fixed build test on Android (using pthread_barrier_t stub).
    • Disabled C++20 concepts for CLANG < 14 on Android.
    • Fixed minor unused parameter warning.
    • Added CI for Android.
    • Refine/cleanup internal logging.
    • Refined line splitting inside hex/base58/base64 encoding to avoid \n at the end.
    • Added workaround for modern libstdc++ with CLANG < 4.x
    • Relaxed txn-check rules for auxiliary functions.
    • Clarified a comments and descriptions, etc.
    • Using the -fno-semantic interposition option to reduce the overhead to calling self own public functions.