Леонид Юрьев (Leonid Yuriev)
6f37c8e57f
mdbx: resolve all warnings from MinGW.
2022-03-30 18:13:08 +03:00
Leonid Yuriev
21da42d23d
mdbx: fix built-in status of MDBX_WITHOUT_MSVC_CRT
option.
2022-03-30 18:10:03 +03:00
Леонид Юрьев (Leonid Yuriev)
2497437060
mdbx: mark the parent transaction dirty in case the undo of the geometry update failed during abortion of a nested transaction.
2022-03-29 18:57:35 +03:00
Леонид Юрьев (Leonid Yuriev)
33a9395afe
mdbx: use MDBX_EPERM
to indicate that the geometry cannot be updated instead of `MDBX_RESULT_TRUE'.
2022-03-29 18:57:26 +03:00
Leonid Yuriev
7654c9d9a1
mdbx-test: handle MDBX_RESULT_TRUE
from mdbx_env_set_geometry()
under Windows.
2022-03-28 23:57:24 +03:00
Leonid Yuriev
27a513682a
mdbx: disable C5105
warning for Visual Studio > 15.7 (MSVC > 19.14).
2022-03-28 23:57:24 +03:00
Leonid Yuriev
92cb0cc0db
mdbx-cmake: forcing /INCREMENTAL:NO
while using LTO/Interprocedutal optimization.
2022-03-28 23:57:24 +03:00
Leonid Yuriev
cf32f4cdb3
mdbx-cmake: removing /W3
when adding /W4
to avoid stupid MSVC warnings.
2022-03-28 23:57:24 +03:00
Leonid Yuriev
57978b0f7f
mdbx-cmake: add remove_flag
and remove_compile_flag
macros.
2022-03-28 23:57:24 +03:00
Леонид Юрьев (Leonid Yuriev)
eb532b8907
mdbx-tools: add check for log-level.
2022-03-28 23:57:24 +03:00
Леонид Юрьев (Leonid Yuriev)
6f06641bf2
mdbx-tools: handle NULL from memory allocation functions.
2022-03-28 23:44:31 +03:00
Леонид Юрьев (Leonid Yuriev)
1ccc9b3e3b
mdbx-make: add missed "--match=v[0-9]*"
to git describe
.
2022-03-28 09:19:39 +03:00
Леонид Юрьев (Leonid Yuriev)
ec0379ad93
mdbx-cmake: add missed "--match=v[0-9]*"
to git describe
.
2022-03-28 09:16:15 +03:00
Леонид Юрьев (Leonid Yuriev)
18789654fc
mdbx: update ChangeLog.
2022-03-27 16:01:04 +03:00
Леонид Юрьев (Leonid Yuriev)
bac546bdfa
mdbx-make: add tools-static
target.
2022-03-27 14:01:18 +03:00
Леонид Юрьев (Leonid Yuriev)
a6b506be45
mdbx-test: minor refine Valgrind-suppressions for gcc-isra.
2022-03-25 13:54:34 +03:00
Леонид Юрьев (Leonid Yuriev)
6380f2e844
mdbx: minor reformat (cosmetics).
2022-03-25 13:47:37 +03:00
Леонид Юрьев (Leonid Yuriev)
fef90d2a3c
mdbx: add explicit memset()
for debugging.
2022-03-25 13:47:37 +03:00
Леонид Юрьев (Leonid Yuriev)
d522069080
mdbx: fix rare SIGSEGV in cursor tracking code.
...
The error was that the array of pointers in the transaction zeroed by the
value of env->me_numdbs and before txn->mt_numdbs was set to env->me_numdbs.
Thus, a cursor pointer(s) in the starting transaction could uninitialized if
another thread opened a dbi-handle(s) between the two aforementioned events.
2022-03-25 13:05:46 +03:00
Леонид Юрьев (Leonid Yuriev)
d5e4c198d8
mdbx: release v0.11.6
...
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](https://github.com/erthink/libmdbx/issues/269 ) for more information.
Acknowledgements:
-----------------
- [David Bouyssié](https://github.com/david-bouyssie ) for [Scala bindings](https://github.com/david-bouyssie/mdbx4s ).
- [Michelangelo Riccobene](https://github.com/mriccobene ) for reporting and testing.
Fixes:
------
- [Added complete workaround](https://github.com/erthink/libmdbx/issues/269 ) for an incoherence flaw of Linux unified page/buffer cache.
- [Fixed](https://github.com/erthink/libmdbx/issues/272 ) 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.
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
2022-03-24 20:44:21 +03:00
Леонид Юрьев (Leonid Yuriev)
415d0d1dfb
mdbx: update ChangeLog.
2022-03-24 19:19:53 +03:00
Леонид Юрьев (Leonid Yuriev)
50d5b2345e
mdbx-test: add Valgrind-suppressions for bcmp/memcmp of page-check inside mdbx_iov_write()
.
...
Related to https://github.com/erthink/libmdbx/issues/269 .
2022-03-24 12:11:50 +03:00
Леонид Юрьев (Leonid Yuriev)
d13534967a
mdbx++: fix copy&paste typo inside mdbx::cursor::find_multivalue()
.
2022-03-24 12:11:50 +03:00
Леонид Юрьев (Leonid Yuriev)
43070c7b26
mdbx: minor fix meta_checktxnid()
for Valgrind/ASAN usage.
...
Related to https://github.com/erthink/libmdbx/issues/269 .
2022-03-24 12:11:50 +03:00
Леонид Юрьев (Leonid Yuriev)
45f8197635
mdbx: clarify/refine error messages of a signature/version mismatch.
2022-03-24 00:19:34 +03:00
Леонид Юрьев (Leonid Yuriev)
3db02d2236
mdbx++: explicitly define noexcept
copy-assignment ops as workaround for AppleClang > 13.3 bug.
...
Try workaround for https://github.com/erthink/libmdbx/issues/278
2022-03-23 18:06:28 +03:00
Леонид Юрьев (Leonid Yuriev)
b79f6712e3
mdbx: refine override_meta()
to preserve format-signature for legacy/zero mod_txnid.
2022-03-23 00:48:41 +03:00
Леонид Юрьев (Leonid Yuriev)
de63041b7d
mdbx: add MDBX_DBG_DONT_UPGRADE
flag.
2022-03-23 00:48:41 +03:00
Леонид Юрьев (Leonid Yuriev)
a5c064c33e
mdbx: preserve (don't upgrade) format-signature during turn to a specified meta-page while recovery.
2022-03-23 00:48:41 +03:00
Your Name
9c832c24a6
mdbx: minor fix error-message space.
2022-03-23 00:48:41 +03:00
Леонид Юрьев (Leonid Yuriev)
c4a5325aaf
mdbx: check-and-retry against page arrival as a workaround for unified page/buffer cache incoherency.
...
Part 2 of 2 of the workaround for https://github.com/erthink/libmdbx/issues/269 .
2022-03-08 17:09:29 +03:00
Леонид Юрьев (Leonid Yuriev)
93cf99a07c
mdbx: drop the previous temporary workaround for unified page/buffer cache incoherency.
...
Related to https://github.com/erthink/libmdbx/issues/269 .
2022-03-06 13:22:57 +03:00
Леонид Юрьев (Leonid Yuriev)
00ed61c685
mdbx: check-and-retry a mvcc-snapshot for unified page/buffer cache coherency.
...
Part 1 of 2 of the workaround for https://github.com/erthink/libmdbx/issues/269 .
2022-03-06 13:22:38 +03:00
Леонид Юрьев (Leonid Yuriev)
f84d9f6208
mdbx++: minor refine mdbx::cursor::erase()
.
2022-03-06 00:13:11 +03:00
Леонид Юрьев (Leonid Yuriev)
9569b864ff
mdbx-test: fix quoting for tr
args inside long_stochastic.sh
2022-03-05 15:37:32 +03:00
Леонид Юрьев (Leonid Yuriev)
8b69be8def
mdbx: update ChangeLog.
2022-03-05 15:14:20 +03:00
Леонид Юрьев (Leonid Yuriev)
4c619e32f7
mdbx: move origin to
https://gitflic.ru/project/erthink/libmdbx .
2022-03-05 14:39:02 +03:00
Леонид Юрьев (Leonid Yuriev)
ed86d9c066
mdbx: add link to Scala bindings.
...
Resolves https://github.com/erthink/libmdbx/issues/274 .
2022-03-05 14:39:02 +03:00
Леонид Юрьев (Leonid Yuriev)
6fbaa54d3e
mdbx: remove PayPal from links for sponsorship.
2022-03-05 14:39:02 +03:00
Леонид Юрьев (Leonid Yuriev)
9d8fc7b984
mdbx: minor mix result caching inside the get_reasonable_db_maxsize()
.
...
Change-Id: I9763ebb323d4f66e702e07f708e269e2479880ac
2022-03-05 14:31:02 +03:00
Леонид Юрьев (Leonid Yuriev)
8c2efe3aaa
mdbx++: add full mdbx::env_managed::geometry()
for convenience.
...
Change-Id: Ib132c776bfc503336582b672de1c44fcac286936
2022-03-05 14:31:02 +03:00
Леонид Юрьев (Leonid Yuriev)
4b130bd82c
mdbx-make: add lib-static
and lib-shared
targets.
...
Resolve https://github.com/erthink/libmdbx/issues/275 .
2022-03-05 14:28:15 +03:00
Леонид Юрьев (Leonid Yuriev)
44fb240955
mdbx: merge branch issue-269
into the devel
branch.
2022-03-04 17:46:43 +03:00
Леонид Юрьев (Leonid Yuriev)
bfea3ca9fb
mdbx: minor refine mdbx_page_search()
internals.
2022-03-04 17:38:25 +03:00
Леонид Юрьев (Leonid Yuriev)
7ade182d64
mdbx: minor simplify/refine mdbx_env_set_geometry()
internals.
2022-03-04 17:38:25 +03:00
Леонид Юрьев (Leonid Yuriev)
4adc7aa58d
mdbx: add few checks to mdbx_validate_meta()
.
2022-03-04 11:53:14 +03:00
Леонид Юрьев (Leonid Yuriev)
110cf09cf8
mdbx: simplify core-dbs update inside mdbx_txn_commit_ex()
.
2022-03-04 11:49:54 +03:00
Леонид Юрьев (Leonid Yuriev)
fb25648b9c
mdbx: force mdbx_page_get()
to inline.
2022-03-04 11:49:01 +03:00
Леонид Юрьев (Leonid Yuriev)
78170a5750
mdbx: minor reduce/lowering debug "update oldest" logging.
2022-03-04 11:41:17 +03:00
Леонид Юрьев (Leonid Yuriev)
71d07b3a8e
mdbx: adding cursors tracking/lists for read-only transactions.
...
Briefly, this commit fixes a missed flaw:
- Cursor tracking is required to replacing shaded pages and adjusting the positions in writing transactions;
- Thus, historically, an internal linked list was maintained for a read-write transactions, but not for a read-only.
For this reason, the API for using cursors should be different for writing and reading transactions;
- However, the libmdbx's API has been significantly improved, including the ability to reuse cursors and a uniform cursors behavior for any kind of transactions.
My mistake is that due to working with MithrilDB, I forgot to make a same changes to libmdbx.
Fixes https://github.com/erthink/libmdbx/issues/272 .
2022-03-03 15:00:28 +03:00