libmdbx v0.8.0 Release Notes

Release Date: 2020-06-05 // almost 4 years ago
    • ๐Ÿ‘Œ Support for Android/Bionic.
    • ๐Ÿ‘Œ Support for iOS.
    • Auto-handling MDBX_NOSUBDIR while opening for any exists database.
    • ๐Ÿš€ Engage github-actions to make release-assets.
    • Clarify API description.
    • โœ… Extended keygen-cases in stochastic test.
    • ๐Ÿ›  Fix fetching of first/lower key from LEAF2-page during page merge.
    • ๐Ÿ›  Fix missing comma in array of error messages.
    • ๐Ÿ›  Fix div-by-zero while copy-with-compaction for non-resizeable environment.
    • ๐Ÿ›  Fixes & enhancements for custom-comparators.
    • Fix MDBX_AVOID_CRT option and missing ntdll.def.
    • Fix mdbx_env_close() to work correctly called concurrently from several threads.
    • ๐Ÿ›  Fix null-deref in an ASAN-enabled builds while opening environment with error and/or read-only.
    • ๐Ÿ›  Fix AddressSanitizer errors after closing environment.
    • ๐Ÿ›  Fix/workaround to avoid GCC 10.x pedantic warnings.
    • ๐Ÿ›  Fix using ENODATA for FreeBSD.
    • Avoid invalidation of DBI-handle(s) when it just closing.
    • Avoid using pwritev() for single-writes (up to 10% speedup for some kernels & scenarios).
    • Avoiding MDBX_UTTERLY_NOSYNC as result of flags merge.
    • Add mdbx_dbi_dupsort_depthmask() function.
    • Add MDBX_CP_FORCE_RESIZEABLE option.
    • Add deprecated MDBX_MAP_RESIZED for compatibility.
    • ๐Ÿ— Add MDBX_BUILD_TOOLS option.
    • Refine mdbx_dbi_open_ex() to safe concurrently opening the same handle from difference threads.
    • Truncate clk-file during environment closing. So zero-length lck file indicates that environment was closed properly.
    • ๐Ÿ‘ Refine support for huge transactions with small sizes of database page.
    • ๐Ÿ‘ Extends dump/load to support all MDBX attributes.
    • Avoid upsertion the same key-value data, fix related assertions.
    • Rework min/max length checking for keys & values.
    • Checking the order of keys on all pages during checking.
    • ๐Ÿ‘Œ Support CFLAGS_EXTRA make-option for convenience.
    • Preserve last txnid while copy with compactification.
    • Auto-reset running transaction in mdbx_txn_renew().
    • Automatically abort errored transaction in mdbx_txn_commit().
    • Auto-choose pagesize for a large databases.
    • ๐Ÿ— Rearrange source files, rework build, options-support by CMake.
    • ๐Ÿง Crutch for WSL1 (Windows subsystem for Linux).
    • Refine install/uninstall targets.
    • Refine LTO (link time optimization) for clang.
    • ๐Ÿ‘Œ Support for Valgrind 3.14 and later.
    • โž• Add check-analyzer check-ubsan check-asan check-leak targets to Makefile.
    • โ†ช Minor fix/workaround to avoid UBSAN traps for memcpy(ptr, NULL, 0).
    • โš  Avoid some GCC-analyzer false-positive warnings.