mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-02 00:04:12 +08:00
mdbx: release v0.12.1 (Positive Proxima)
The planned frontward release with new superior features on the day of 20 anniversary of [Positive Technologies](https://ptsecurty.com). New: ---- - The `Big Foot` feature which significantly reduces GC overhead for processing large lists of retired pages from huge transactions. Now _libmdbx_ avoid creating large chunks of PNLs (page number lists) which required a long sequences of free pages, aka large/overflow pages. Thus avoiding searching, allocating and storing such sequences inside GC. - Improved hot/online validation and checking of database pages both for more robustness and performance. - New solid and fast method to latch meta-pages called `Troika`. The minimum of memory barriers, reads, comparisons and conditional transitions are used. - New `MDBX_VALIDATION` environment options to extra validation of DB structure and pages content for carefully/safe handling damaged or untrusted DB. - Accelerated ×16/×8/×4 by AVX512/AVX2/SSE2/Neon implementations of search page sequences. - Added the `gcrtime_seconds16dot16` counter to the "Page Operation Statistics" that accumulates time spent for GC searching and reclaiming. - Copy-with-compactification now clears/zeroes unused gaps inside database pages. - The `C` and `C++` APIs has been extended and/or refined to simplify using `wchar_t` pathnames. On Windows the `mdbx_env_openW()`, `mdbx_env_get_pathW()`, `mdbx_env_copyW()`, `mdbx_env_open_for_recoveryW()` are available for now, but the `mdbx_env_get_path()` has been replaced in favor of `mdbx_env_get_pathW()`. - Added explicit error message for Buildroot's Microblaze toolchain maintainers. - Added `MDBX_MANAGE_BUILD_FLAGS` build options for CMake. - Speed-up internal `bsearch`/`lower_bound` implementation using branchless tactic, including workaround for CLANG x86 optimiser bug. - A lot internal refinement and micro-optimisations. - Internally counted volume of dirty pages (unused for now but for coming features). Fixes: ------ - Never use modern `__cxa_thread_atexit()` on Apple's OSes. - Don't check owner for finished transactions. - Fixed typo in `MDBX_EINVAL` which breaks MingGW builds with CLANG. 37 files changed, 7604 insertions(+), 7417 deletions(-) Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
This commit is contained in:
parent
b60d8e78c3
commit
b36a07a512
27
ChangeLog.md
27
ChangeLog.md
@ -1,37 +1,42 @@
|
|||||||
ChangeLog
|
ChangeLog
|
||||||
---------
|
---------
|
||||||
|
|
||||||
## v0.12.1 (Positive Proxima) scheduled to 2022-08-24
|
## v0.12.1 (Positive Proxima) at 2022-08-24
|
||||||
|
|
||||||
The planned frontward release with new superior features on the day of 20 anniversary of [Positive Technologies](https://ptsecurty.com).
|
The planned frontward release with new superior features on the day of 20 anniversary of [Positive Technologies](https://ptsecurty.com).
|
||||||
|
|
||||||
|
```
|
||||||
|
37 files changed, 7604 insertions(+), 7417 deletions(-)
|
||||||
|
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
|
||||||
|
```
|
||||||
|
|
||||||
New:
|
New:
|
||||||
|
|
||||||
- The `Big Foot` feature which significantly reduces GC overhead for processing large lists of retired pages from huge transactions.
|
- The `Big Foot` feature which significantly reduces GC overhead for processing large lists of retired pages from huge transactions.
|
||||||
Now _libmdbx_ avoid creating large chunks of PNLs (page number lists) which required a long sequences of free pages, aka large/overflow pages.
|
Now _libmdbx_ avoid creating large chunks of PNLs (page number lists) which required a long sequences of free pages, aka large/overflow pages.
|
||||||
Thus avoiding searching, allocating and storing such sequences inside GC.
|
Thus avoiding searching, allocating and storing such sequences inside GC.
|
||||||
- Improved hot/online validation and checking of database pages both for more robustness and performance.
|
- Improved hot/online validation and checking of database pages both for more robustness and performance.
|
||||||
|
- New solid and fast method to latch meta-pages called `Troika`.
|
||||||
|
The minimum of memory barriers, reads, comparisons and conditional transitions are used.
|
||||||
- New `MDBX_VALIDATION` environment options to extra validation of DB structure and pages content for carefully/safe handling damaged or untrusted DB.
|
- New `MDBX_VALIDATION` environment options to extra validation of DB structure and pages content for carefully/safe handling damaged or untrusted DB.
|
||||||
- Optionally cache for pointers to last/steady meta-pages (currently is off by default).
|
- Accelerated ×16/×8/×4 by AVX512/AVX2/SSE2/Neon implementations of search page sequences.
|
||||||
- Added the `gcrtime_seconds16dot16` counter to the "Page Operation Statistics" that accumulates time spent for GC searching and reclaiming.
|
- Added the `gcrtime_seconds16dot16` counter to the "Page Operation Statistics" that accumulates time spent for GC searching and reclaiming.
|
||||||
- Copy-with-compactification now clears/zeroes unused gaps inside database pages.
|
- Copy-with-compactification now clears/zeroes unused gaps inside database pages.
|
||||||
- The C++ API has been refined to simplify support for `wchar_t` in path names.
|
- The `C` and `C++` APIs has been extended and/or refined to simplify using `wchar_t` pathnames.
|
||||||
|
On Windows the `mdbx_env_openW()`, ``mdbx_env_get_pathW()`()`, `mdbx_env_copyW()`, `mdbx_env_open_for_recoveryW()` are available for now,
|
||||||
|
but the `mdbx_env_get_path()` has been replaced in favor of `mdbx_env_get_pathW()`.
|
||||||
- Added explicit error message for Buildroot's Microblaze toolchain maintainers.
|
- Added explicit error message for Buildroot's Microblaze toolchain maintainers.
|
||||||
|
- Added `MDBX_MANAGE_BUILD_FLAGS` build options for CMake.
|
||||||
|
- Speed-up internal `bsearch`/`lower_bound` implementation using branchless tactic, including workaround for CLANG x86 optimiser bug.
|
||||||
|
- A lot internal refinement and micro-optimisations.
|
||||||
|
- Internally counted volume of dirty pages (unused for now but for coming features).
|
||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
|
|
||||||
- Never use modern `__cxa_thread_atexit()` on Apple's OSes.
|
- Never use modern `__cxa_thread_atexit()` on Apple's OSes.
|
||||||
- Use `MultiByteToWideChar(CP_THREAD_ACP)` instead of `mbstowcs()`.
|
|
||||||
- Don't check owner for finished transactions.
|
- Don't check owner for finished transactions.
|
||||||
- Fixed typo in `MDBX_EINVAL` which breaks MingGW builds with CLANG.
|
- Fixed typo in `MDBX_EINVAL` which breaks MingGW builds with CLANG.
|
||||||
|
|
||||||
Minors:
|
|
||||||
|
|
||||||
- Fixed variable name typo.
|
|
||||||
- Using `ldd` to check used dso.
|
|
||||||
- Added `MDBX_WEAK_IMPORT_ATTRIBUTE` macro.
|
|
||||||
- Use current transaction geometry for untouched parameters when `env_set_geometry()` called within a write transaction.
|
|
||||||
- Minor clarified `iov_page()` failure case.
|
|
||||||
|
|
||||||
## v0.12.0 at 2022-06-19
|
## v0.12.0 at 2022-06-19
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.\" Copyright 2015-2022 Leonid Yuriev <leo@yuriev.ru>.
|
.\" Copyright 2015-2022 Leonid Yuriev <leo@yuriev.ru>.
|
||||||
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
||||||
.TH MDBX_CHK 1 "2022-06-19" "MDBX 0.12.0"
|
.TH MDBX_CHK 1 "2022-08-24" "MDBX 0.12.1"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mdbx_chk \- MDBX checking tool
|
mdbx_chk \- MDBX checking tool
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
|
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
|
||||||
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
|
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
|
||||||
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
||||||
.TH MDBX_COPY 1 "2022-06-19" "MDBX 0.12.0"
|
.TH MDBX_COPY 1 "2022-08-24" "MDBX 0.12.1"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mdbx_copy \- MDBX environment copy tool
|
mdbx_copy \- MDBX environment copy tool
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
.\" Copyright 2021-2022 Leonid Yuriev <leo@yuriev.ru>.
|
.\" Copyright 2021-2022 Leonid Yuriev <leo@yuriev.ru>.
|
||||||
.\" Copyright 2014-2021 Howard Chu, Symas Corp. All Rights Reserved.
|
.\" Copyright 2014-2021 Howard Chu, Symas Corp. All Rights Reserved.
|
||||||
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
||||||
.TH MDBX_DROP 1 "2022-06-19" "MDBX 0.12.0"
|
.TH MDBX_DROP 1 "2022-08-24" "MDBX 0.12.1"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mdbx_drop \- MDBX database delete tool
|
mdbx_drop \- MDBX database delete tool
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
|
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
|
||||||
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
|
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
|
||||||
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
||||||
.TH MDBX_DUMP 1 "2022-06-19" "MDBX 0.12.0"
|
.TH MDBX_DUMP 1 "2022-08-24" "MDBX 0.12.1"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mdbx_dump \- MDBX environment export tool
|
mdbx_dump \- MDBX environment export tool
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
|
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
|
||||||
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
|
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
|
||||||
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
||||||
.TH MDBX_LOAD 1 "2022-06-19" "MDBX 0.12.0"
|
.TH MDBX_LOAD 1 "2022-08-24" "MDBX 0.12.1"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mdbx_load \- MDBX environment import tool
|
mdbx_load \- MDBX environment import tool
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
|
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
|
||||||
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
|
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
|
||||||
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
||||||
.TH MDBX_STAT 1 "2022-06-19" "MDBX 0.12.0"
|
.TH MDBX_STAT 1 "2022-08-24" "MDBX 0.12.1"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mdbx_stat \- MDBX environment status tool
|
mdbx_stat \- MDBX environment status tool
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user