Леонид Юрьев (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)
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)
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)
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)
d28110373e
mdbx: add simple SORT_CMP_SWAP()
macro for MDBX_HAVE_CMOV=0
case.
2022-08-07 11:56:23 +03:00
Леонид Юрьев (Leonid Yuriev)
480dc2531e
mdbx: ×4 accelerated scan4seq()
(SSE2 only for now).
2022-08-07 11:56:23 +03:00
Леонид Юрьев (Leonid Yuriev)
06734bf8ff
mdbx: don't check owner for finished transactions.
2022-08-06 13:19:49 +03:00
Леонид Юрьев (Leonid Yuriev)
9eb6953778
mdbx: fix minor typo.
2022-08-04 13:54:07 +03:00
Леонид Юрьев (Leonid Yuriev)
268b33cbf7
mdbx: simplify/speedup scan4seq()
.
2022-08-04 13:54:07 +03:00
Леонид Юрьев (Leonid Yuriev)
a441c9ffb1
mdbx: logging pgno of invalid root pages inside meta_checktxnid()
.
2022-08-01 14:44:33 +03:00
Леонид Юрьев (Leonid Yuriev)
71c3d20c01
mdbx: skip extra cycle during search of page sequence.
2022-08-01 00:00:14 +03:00
Леонид Юрьев (Leonid Yuriev)
75d19b5806
mdbx: minor refine/speedup pnl_check()
.
2022-07-27 21:08:54 +03:00
Леонид Юрьев (Leonid Yuriev)
dc39ecfb9f
mdbx: auto-coalesce of GC's records with less overhead.
2022-07-27 21:08:54 +03:00
Леонид Юрьев (Leonid Yuriev)
47d5fa7fd4
mdbx: refine/speedup pnl_merge()
.
2022-07-27 21:08:54 +03:00
Леонид Юрьев (Leonid Yuriev)
262fafd00e
mdbx: fix unused
warning for case MDBX_ENABLE_PGOP_STAT=0
.
2022-07-27 00:03:27 +03:00
Леонид Юрьев (Leonid Yuriev)
289636834c
mdbx: fix unused
warning for case MDBX_DISABLE_VALIDATION
.
2022-07-27 00:03:27 +03:00
Леонид Юрьев (Leonid Yuriev)
c4dd83fbdf
mdbx: minor refine page_split()
.
2022-07-27 00:03:22 +03:00
Леонид Юрьев (Leonid Yuriev)
08e936a809
mdbx: re-verify atomic-ops and remove mo_SequentialConsistency
.
2022-07-23 12:15:19 +03:00
Леонид Юрьев (Leonid Yuriev)
5e565433f7
mdbx: merge branch master
into devel
.
2022-07-23 11:56:17 +03:00
Леонид Юрьев (Leonid Yuriev)
e963375302
mdbx: fix unexpected MDBX_PAGE_FULL
in rare cases with large page-size.
2022-07-21 17:52:08 +03:00
Леонид Юрьев (Leonid Yuriev)
0018164fef
mdbx: fix wrong }
oops-like typo.
...
This is a `devel`-only 3-days old regression since a4a35ce9cb7176b914e0606d38c6d6e47a9431f1.
2022-07-11 20:29:33 +03:00
Леонид Юрьев (Leonid Yuriev)
149e708830
mdbx: rename MDBX_CACHE_METAPTR
build-time option.
2022-07-10 10:05:39 +03:00
Леонид Юрьев (Leonid Yuriev)
194f2f45d2
mdbx: refine/fix using nested cursor's db inside copy-with-compactification.
2022-07-09 18:07:54 +03:00
Леонид Юрьев (Leonid Yuriev)
e8dd208e96
mdbx: more cursor-checking for audit-without-debug.
2022-07-09 16:12:41 +03:00
Леонид Юрьев (Leonid Yuriev)
9108a241a2
mdbx: minor fix/clarify debug logging inside page_alloc_slowpath()
.
2022-07-08 23:44:03 +03:00
Леонид Юрьев (Leonid Yuriev)
9aa2aae93e
mdbx: rework/simplify kick_longlived_readers()
.
2022-07-08 23:44:03 +03:00
Леонид Юрьев (Leonid Yuriev)
9421bb424d
mdbx: refine/simplify read-latch loop inside mdbx_txn_renew0()
.
...
1. Explicitly check and handle a race/collision case with `find_oldest_reader()`.
2. Handle "recovery mode" (me_stuck_meta >= 0) by the same code as for regular latch.
3. Add bailout error message for buggy compiler and/or hardware (paranoid).
2022-07-08 23:44:03 +03:00
Леонид Юрьев (Leonid Yuriev)
434ad8edc8
mdbx: refine bind_rslot()
.
2022-07-08 23:44:03 +03:00
Леонид Юрьев (Leonid Yuriev)
a4a35ce9cb
mdbx: rework find_oldest_reader()
.
...
1. Fix regression `assert: oldest >= lck->mti_oldest_reader.weak` after d4bf0a3332c7b05331ab0a87e3cd65b0903edc3c.
2. Add explicit check, kick and notice for stuck reader.
3. Made more e2k-frendly.
2022-07-08 23:44:03 +03:00