Леонид Юрьев (Leonid Yuriev)
0ccec20409
mdbx: don't deem meta pages with zero txnid equal.
...
Устранение крайне маловероятного регресса после перехода на мета-тройку:
- процесс А открыает БД и читает мета-траницы для формирования тройки;
- процесс Б постоянно коммитит новые транзакции;
- есть шанс что процесс А при чтении разных мета страниц попадет на момент их обновления более одного раза,
это может привести к ложной ошибке коллизии мета-страниц,
так как для обновляемых мета-страниц будет виден нулевой номер транзакции.
2022-08-20 01:54:11 +03:00
Леонид Юрьев (Leonid Yuriev)
ceba040e32
mdbx: add meta_xyz_dump()
.
2022-08-20 01:54:11 +03:00
Леонид Юрьев (Leonid Yuriev)
b617f25eaa
mdbx: refine & rename internal xyz
to troika
.
2022-08-20 01:54:06 +03:00
Леонид Юрьев (Leonid Yuriev)
b759dfafd7
mdbx: counting large/overflow dirty pages (unused for now).
...
This is a basis for [Large/Overflow pages accounting for dirty-room](https://web.archive.org/web/20220414235959/https://github.com/erthink/libmdbx/issues/192 ).
2022-08-20 00:14:48 +03:00
Леонид Юрьев (Leonid Yuriev)
4cef1c2376
mdbx: avoid extra using F_ISSET()
macro.
2022-08-18 01:39:06 +03:00
Леонид Юрьев (Leonid Yuriev)
08a8f844dc
mdbx: ×4 ARM-Neon accelerated scan4seq()
.
2022-08-18 01:10:27 +03:00
Леонид Юрьев (Leonid Yuriev)
8e2c276562
mdbx: merge branch 'master' into devel
branch.
2022-08-18 01:04:35 +03:00
Леонид Юрьев (Leonid Yuriev)
4f02199648
mdbx: update ChangeLog.
2022-08-17 23:56:53 +03:00
Леонид Юрьев (Leonid Yuriev)
7b36f946cb
mdbx: rework/speed up accessing to meta-pages, choosing and cache of ones (squashed).
2022-08-17 21:39:22 +03:00
Леонид Юрьев (Leonid Yuriev)
ef16dd2a22
mdbx: move global_ctor()
to the end .
2022-08-17 21:31:11 +03:00
Леонид Юрьев (Leonid Yuriev)
f9ad835680
mdbx: drop E2K libc obsolete workarounds.
2022-08-17 21:29:51 +03:00
Леонид Юрьев (Leonid Yuriev)
9b3faee630
mdbx: drop obsolete Nexenta attributes API.
2022-08-17 21:29:51 +03:00
Леонид Юрьев (Leonid Yuriev)
316ddf9e01
mdbx: fix typo in MDBX_EINVAL
which breaks MingGW builds with CLANG.
2022-08-16 11:09:52 +03:00
Леонид Юрьев (Leonid Yuriev)
3fbbe32adf
mdbx: fix checking owner for finished write transactions inside txn_abort()
.
...
Fixed regression after 06734bf8ff
.
2022-08-14 12:39:21 +03:00
Леонид Юрьев (Leonid Yuriev)
8467cc6d03
mdbx: use current txn geo for untouched parameters when env_set_geometry()
called within a write transaction.
2022-08-13 16:56:29 +03:00
Леонид Юрьев (Leonid Yuriev)
9f0e2ecc67
mdbx: fix variable name typo.
2022-08-13 16:56:09 +03:00
Леонид Юрьев (Leonid Yuriev)
345c3d433f
mdbx-make: add -DENABLE_UBSAN
to ubsan-targets.
2022-08-11 19:39:14 +03:00
Леонид Юрьев (Leonid Yuriev)
1c5ef060c5
mdbx: reduce number of memory fences in the hot paths.
2022-08-11 18:45:00 +03:00
Леонид Юрьев (Leonid Yuriev)
34a4e7e102
mdbx: avoid Valgrind warnings.
2022-08-11 17:10:13 +03:00
Леонид Юрьев (Leonid Yuriev)
ae730ae2f3
mdbx: fix minor warnings for ASAN-enabled builds.
2022-08-11 12:33:56 +03:00
Леонид Юрьев (Leonid Yuriev)
18e557c6e8
mdbx: rename internal functions, types and macros (to be closer to MithrilDB).
2022-08-11 12:33:56 +03:00
Леонид Юрьев (Leonid Yuriev)
096d6a9bd6
mdbx: some micro-optimizations.
2022-08-10 22:09:42 +03:00
Леонид Юрьев (Leonid Yuriev)
d8f0c9dc44
mdbx: more __hot
.
2022-08-10 15:46:45 +03:00
Леонид Юрьев (Leonid Yuriev)
78dc699709
mdbx: add ×16 accelerated scan4seq()
(AVX512BW).
2022-08-10 13:23:04 +03:00
Леонид Юрьев (Leonid Yuriev)
c2bf9ebf17
mdbx: minor refine AVX2/SSE2-accelerated scan4seq()
.
2022-08-10 11:43:24 +03:00
Леонид Юрьев (Leonid Yuriev)
3c28619562
mdbx: merge branch master
into devel
.
2022-08-09 19:04:27 +03:00
Леонид Юрьев (Leonid Yuriev)
0287a00ee3
mdbx++: refine/simplify wchar_t
support for pathnames.
2022-08-09 18:54:22 +03:00
Леонид Юрьев (Leonid Yuriev)
2ff8d3c4f2
mdbx: native wchar_t
pathname for Windows.
2022-08-09 18:27:43 +03:00
Леонид Юрьев (Leonid Yuriev)
98c53555ab
mdbx: using e2k-frendly/cmov/branch-less bsearch.
...
https://gitflic.ru/project/erthink/bsearch-try
2022-08-09 18:25:05 +03:00
Леонид Юрьев (Leonid Yuriev)
c8b1392cbe
mdbx: use MultiByteToWideChar(CP_THREAD_ACP)
instead of mbstowcs()
.
2022-08-09 16:12:24 +03:00
Леонид Юрьев (Leonid Yuriev)
6d85e35876
mdbx: never use modern __cxa_thread_atexit()
on Apple's OSes.
2022-08-08 15:23:39 +03:00
Леонид Юрьев (Leonid Yuriev)
dd01aabaeb
mdbx: add MDBX_WEAK_IMPORT_ATTRIBUTE
macro.
2022-08-08 15:18:16 +03:00
Леонид Юрьев (Leonid Yuriev)
3de759a7be
mdbx: fix page-boundary checking inside accelerated scan4seq()
.
2022-08-07 22:24:00 +03:00
Леонид Юрьев (Leonid Yuriev)
d6603a0c0a
mdbx: add ×8 accelerated scan4seq()
(AVX2).
2022-08-07 17:08:51 +03:00
Леонид Юрьев (Leonid Yuriev)
15146d3823
mdbx: fix scan4seq()
selection for non-implemented cases.
2022-08-07 15:14:50 +03:00
Леонид Юрьев (Leonid Yuriev)
d62d3e2aab
mdbx: merge branch master
into devel
.
2022-08-07 12:42:43 +03:00
Леонид Юрьев (Leonid Yuriev)
fa854e40c3
mdbx: refine checking inside page_get()
.
2022-08-07 12:29:51 +03:00
Леонид Юрьев (Leonid Yuriev)
5afc5c4e8c
mdbx: reorganize/move fences to reduce overhead.
2022-08-07 12:29:51 +03:00
Леонид Юрьев (Leonid Yuriev)
c05a3b7bb9
mdbx: minor refine node_add()
.
2022-08-07 12:29:50 +03:00
Леонид Юрьев (Leonid Yuriev)
1215bda188
mdbx: minor refine/speedup node_del()
.
2022-08-07 12:29:50 +03:00
Леонид Юрьев (Leonid Yuriev)
0dd4532473
mdbx: reduce gap/backlog of linear scan inside dpl_search()
.
2022-08-07 12:29:50 +03:00
Леонид Юрьев (Leonid Yuriev)
eac3d0499f
mdbx: minor refine/speedup dpl_sort_slowpath()
.
2022-08-07 12:29:50 +03:00
Леонид Юрьев (Leonid Yuriev)
a11c045f1e
mdbx: using expect_with_probability()
macro.
2022-08-07 12:28:35 +03:00
Леонид Юрьев (Leonid Yuriev)
c0f8ecd6f2
mdbx: add expect_with_probability()
macro.
2022-08-07 11:56:23 +03:00
Леонид Юрьев (Leonid Yuriev)
8404cc1fd7
mdbx: reduce sorting-network to 8.
2022-08-07 11:56:23 +03:00
Леонид Юрьев (Leonid Yuriev)
654b020bc7
mdbx: add __restrict
to quicksort internal pointers.
2022-08-07 11:56:23 +03:00
Леонид Юрьев (Leonid Yuriev)
77635116c6
mdbx: enable solib profiling with -pg
and gprof
with GLIBC >= 2.37.
...
However such profiling requires https://sourceware.org/bugzilla/show_bug.cgi?id=29438 to be fixed.
2022-08-07 11:56:23 +03:00
Леонид Юрьев (Leonid Yuriev)
a44eb1accb
mdbx-cmake: add MDBX_MANAGE_BUILD_FLAGS
build-time option.
2022-08-07 11:56:23 +03:00
Леонид Юрьев (Leonid Yuriev)
c06d072daf
mdbx-make: support for MDBX_BUILD_CXX=YES/NO
option.
2022-08-07 11:56:23 +03:00
Леонид Юрьев (Leonid Yuriev)
d28110373e
mdbx: add simple SORT_CMP_SWAP()
macro for MDBX_HAVE_CMOV=0
case.
2022-08-07 11:56:23 +03:00