Releases: erthink/libfpta
Release v0.3.14 (stable)
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 libmdbx' issue#269 for more information.
New:
- Added
GTEST_CLONE_URL
CMake's variable to override GoogteTest download Git repo URL. - Added logging support (built-in proxy for libmdbx).
Fixes:
- Complete workaround for an incoherence flaw of Linux unified page/buffer cache.
- Fixed transaction leak (not-an-abortion) when schema load failed.
Please refer to the Git' log and libmdbx' ChangeLog for more information.
v0.2.12 (update of legacy/obsolete 0.2.x branch)
The stable release of legacy/obsolete 0.2 branch
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 libmdbx' issue#269 for more information.
New:
- Added
GTEST_CLONE_URL
CMake's variable to override GoogteTest download Git repo URL. - Added logging support (built-in proxy for libmdbx).
Fixes:
- Complete workaround for an incoherence flaw of Linux unified page/buffer cache.
- Fixed transaction leak (not-an-abortion) when schema load failed.
Please refer to the Git' log and libmdbx' ChangeLog for more information.
Release v0.3.13 (obsolete)
The stable release with fixes for large and huge databases sized of 4..128 TiB.
libfpta important changes:
- Fixed unaligned access inside the
t1ha
hash functions on ARM.
libmdbx important changes:
v0.11.4.1 at 2022-02-02:
- Fixed handling
MDBX_opt_rp_augment_limit
for GC's records from huge transactions. - Fixed build on Android (avoid including
sys/sem.h
). - Fixed missing copy assignment operator for
mdbx::move_result
. - Fixed missing
&
forstd::ostream &operator<<()
overloads. - Fixed unexpected
EXDEV
(Cross-device link) error frommdbx_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 minor
unused parameter
warning. - 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.
v0.11.3 at 2021-12-31:
- Disabled C++20 concepts for stupid AppleClang 13.x
- Fixed internal collision of
MDBX_SHRINK_ALLOWED
withMDBX_ACCEDE
.
Minors:
- Fixed returning
MDBX_RESULT_TRUE
(unexpected -1) frommdbx_env_set_option()
. - Added
mdbx_env_get_syncbytes()
andmdbx_env_get_syncperiod()
. - Clarified description of
MDBX_INTEGERKEY
. - Reworked/simplified
mdbx_env_sync_internal()
. - Fixed extra assertion inside
mdbx_cursor_put()
forMDBX_DUPFIXED
cases. - Avoiding extra looping inside
mdbx_env_info_ex()
. - Explicitly enabled core dumps from stochastic tests scripts on Linux.
- Fixed
mdbx_override_meta()
to avoid false-positive assertions. - For compatibility reverted returning
MDBX_ENODATA
for some cases.
Please refer to the ChangeLog for more historical information and actual TODOs.
Release v0.3.12
libfpta's important changes:
- Rewritting filters to actually hollow
fpta_filter_none
without open underlying cursor. - Rewritting filters instead of returning
FPTA_ETYPE
. - Resolved all warnings and build errors for all actual version of GCC and CLANG compilers.
- Fixed test for 32-bit builds.
- Refactoring
fpta_name_refresh_filter()
and related functions to avoid refresh-overhead. - Resolved all UB shown by UBSAN, including unaligned access.
libmdbx's important changes:
Backward compatibility break:
The database format signature has been changed to prevent
forward-interoperability with an previous releases, which may lead to a
false positive diagnosis of database corruption
due to flaws of an old library versions. This change is mostly invisible:
- previously versions are unable to read/write a new DBs;
- but the new release is able to handle an old DBs and will silently upgrade ones.
v0.11.2.22 at 2021-12-13:
- Fixed internal collision of
MDBX_SHRINK_ALLOWED
withMDBX_ACCEDE
. - Fixed returning
MDBX_RESULT_TRUE
(unexpected -1) frommdbx_env_set_option()
. - Fixed extra assertion inside
mdbx_cursor_put()
forMDBX_DUPFIXED
cases. - Fixed
mdbx_override_meta()
to avoid false-positive assertions.
v0.11.2 at 2021-12-02:
- Fixed unexpected
MDBX_PROBLEM
error because of update an obsolete meta-page. - Fixed returning
MDBX_NOTFOUND
error in case an inexact value found forMDBX_GET_BOTH
operation.
v0.11.1 at 2021-10-23:
- Fixed unaligned access regression after the
#pragma pack
fix for modern compilers. - Fixed possibility of meta-pages clashing after manually turn to a particular meta-page using
mdbx_chk
utility.
v0.10.4 at 2021-10-10:
- Fixed possibility of looping update GC during transaction commit (no public issue since the problem was discovered inside Positive Technologies).
- In debugging builds fixed a too small (single page) by default DB shrink threshold.
v0.10.3 at 2021-08-27:
- Always setup
madvise
while opening DB (fixes erthink/libmdbx#231). - Fixed checking legacy
P_DIRTY
flag (0x10
) for nested/sub-pages.
v0.10.2 at 2021-07-26:
-
Allow to predefine/override
MDBX_BUILD_TIMESTAMP
for builds reproducibility. -
Avoided
MDBX_TXN_FULL
error for large transactions when possible. -
The
MDBX_READERS_LIMIT
increased to32767
. -
mdbx_chk
now skips iteration & checking of DB' records if corresponding page-tree is corrupted (to avoidSIGSEGV
, ASAN failures, etc). -
Added more checks for rare/fuzzing corruption cases.
-
Fixed excess meta-pages checks in case
mdbx_chk
is called to check the DB for a specific meta page and thus could prevent switching to the selected meta page, even if the check passed without errors. -
Fixed recursive use of SRW-lock on Windows cause by
MDBX_NOTLS
option. -
Fixed installation by
CMake
in special cases by complete useGNUInstallDirs
's variables. -
Fixed
safe64_reset()
for platforms without atomic 64-bit compare-and-swap. -
Fixed hang/shutdown on big-endian platforms without
__cxa_thread_atexit()
. -
Fixed using bad meta-pages if DB was partially/recoverable corrupted.
-
Fixed
bootid
generation on Windows for case of change system' time.
v0.10.1 at 2021-06-01:
-
Added
-p
option tomdbx_stat
utility for printing page operations statistic. -
Added fallback from OFD locking to legacy non-OFD POSIX file locks on an
EINVAL
error. -
Added Plan 9 network file system to the whitelist for an ability to open a DB in exclusive mode.
-
Support for opening from WSL2 environment a DB hosted on Windows drive and mounted via DrvFs (i.e by Plan 9 noted above).
-
Fixed confusing/messy errors when build library from unfit github's archives (erthink/libmdbx#197).
-
Fixed
#elsif
typo. -
Fixed rare unexpected
MDBX_PROBLEM
error during altering data in huge transactions due to wrong spilling/oust of dirty pages (erthink/libmdbx#195). -
Re-Fixed WSL1/WSL2 detection with distinguishing (erthink/libmdbx#97).
libfpta release v0.3.11 (obsolete)
Backward compatibility break:
The database format signature has been changed to prevent forward-interoperability with an previous releases, which may lead to a false positive diagnosis of database corruption due to flaws of an old library versions.
This change is mostly invisible:
- previously versions are unable to read/write a new DBs;
- but the new release is able to handle an old DBs and will silently upgrade ones.