Леонид Юрьев (Leonid Yuriev)
149e708830
mdbx: rename MDBX_CACHE_METAPTR
build-time option.
2022-07-10 10:05:39 +03:00
Леонид Юрьев (Leonid Yuriev)
b5346ee765
mdbx: use unsigned constants for page flags (to avoid MSVC warnings).
2022-07-08 21:48:08 +03:00
Леонид Юрьев (Leonid Yuriev)
2cfcfcf91c
mdbx: merge branch erigon
into devel
.
2022-07-07 23:24:45 +03:00
Леонид Юрьев (Leonid Yuriev)
bc744a843a
mdbx: refine/speedup PAGETYPE()
.
2022-07-07 21:48:34 +03:00
Леонид Юрьев (Leonid Yuriev)
a812198c49
mdbx: rework/clone page_get()
to three for the cases: any, large, branch-leaf.
2022-07-07 21:48:30 +03:00
Леонид Юрьев (Leonid Yuriev)
ca3f188370
mdbx: extend CHECK_LEAF_TYPE()
by adding CC_OVERFLOW
.
2022-07-07 14:10:19 +03:00
Леонид Юрьев (Leonid Yuriev)
498514dae1
mdbx: remove unneeded CC_COPYING
.
2022-07-07 14:10:19 +03:00
Леонид Юрьев (Leonid Yuriev)
d4ef9bf233
mdbx: rework page validation/checking, add MDBX_VALIDATION
option (squashed).
...
Здесь основная часть изменений преобразующих отладочную проверку страниц
в регулярный и доступный пользователю осторожный/безопасный режим работы
с потенциально поврежденной БД.
Here the major part of the changes that transform a debugging check of
pages into a regular and user-accessible careful/safe mode for working
with a potentially corrupted database.
2022-07-07 14:10:09 +03:00
Леонид Юрьев (Leonid Yuriev)
6c5ff863ff
mdbx: remove pp_txnid4chk()
, preparing to rework of page checking/validation.
2022-07-05 15:32:09 +03:00
Леонид Юрьев (Leonid Yuriev)
b9835389f4
mdbx: add cache for pointers to last/steady meta-pages (off by default).
2022-07-02 22:52:31 +03:00
Леонид Юрьев (Leonid Yuriev)
4f6b92248d
mdbx: add pgop_stat.gcrtime
for collect the time spent loading and searching inside GC.
2022-07-01 09:27:38 +03:00
Леонид Юрьев (Leonid Yuriev)
e3a09db3da
mdbx: always coalescing GC records, regardless to MDBX_COALESCE
flag.
2022-06-27 12:37:29 +03:00
Леонид Юрьев (Leonid Yuriev)
f1ccc717b4
mdbx: add update-gc context (extracted from bigfoot
).
2022-06-27 11:27:05 +03:00
Леонид Юрьев (Leonid Yuriev)
3817236b68
mdbx: avoid memory-model from variables for C11 atomics (workaround for lcc 1.26).
2022-06-12 20:04:35 +03:00
Леонид Юрьев (Leonid Yuriev)
b6138c39f0
mdbx: reorganize internal includes.
2022-06-02 20:35:40 +03:00
Леонид Юрьев (Leonid Yuriev)
106f39327e
mdbx: add mdbx_assert_fail()
to public API.
2022-06-02 20:35:40 +03:00
Леонид Юрьев (Leonid Yuriev)
21e1dc3248
mdbx: fix minor warnings from modern Apple's CLANG.
2022-05-15 23:42:57 +03:00
Леонид Юрьев (Leonid Yuriev)
9230201ca9
mdbx: fix minor warning for MDBX_TXN_INVALID
.
2022-05-03 14:16:19 +03:00
Леонид Юрьев (Leonid Yuriev)
838f8d8fab
mdbx: move most of transactions flags to public API.
2022-05-03 11:49:28 +03:00
Леонид Юрьев (Leonid Yuriev)
eb8bc865d1
mdbx: fix and check width of off_t
for Android.
2022-04-19 20:00:29 +03:00
Леонид Юрьев (Leonid Yuriev)
6f37c8e57f
mdbx: resolve all warnings from MinGW.
2022-03-30 18:13:08 +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)
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
Леонид Юрьев (Leonid Yuriev)
77f236db2a
mdbx: clarify loglevel descriptions.
2022-02-17 02:30:16 +03:00
Леонид Юрьев (Leonid Yuriev)
2b6fd968d2
mdbx: rework functions for meta-pages, split-off non-volatile, more const
.
2022-02-09 22:56:29 +03:00
Leonid Yuriev
79e1cc3bbc
mdbx: add workaround for old MSVC and/or old Windows SDK.
...
Resolves https://github.com/erthink/libmdbx/issues/265 .
Change-Id: I295b5d9d5ecd670ccf258791bf87379a3ca17f21
2022-02-01 13:28:59 +03:00
Леонид Юрьев (Leonid Yuriev)
d93a13294a
mdbx: explicit disable -Wattributes
by #pragma
for GCC < 9.
2022-01-27 17:20:12 +03:00
Leonid Yuriev
cd2c5f594c
mdbx: rework checking MAX_PAGENO
and DB upper-size limit.
...
Related to https://github.com/erthink/libmdbx/issues/260 .
2022-01-21 02:25:27 +03:00
Leonid Yuriev
c588af6aca
mdbx: update Copyright year.
...
Change-Id: Ib3e4c0ac94882c4b2a1e167dd98e6e26dbdf48a4
2022-01-17 11:06:14 +03:00
Leonid Yuriev
79a5802ad4
mdbx: add the note about "Visual Studio 2015 Update 3".
2021-11-11 20:38:39 +03:00
Leonid Yuriev
0e2ca3eb51
mdbx: more parallelable CMP2INT
for E2K.
2021-11-10 03:17:59 +03:00
Leonid Yuriev
e488604448
mdbx: minor fix mdbx_jitter4testing()
for case MDBX_DEBUG >= 2
.
2021-11-10 03:05:51 +03:00
Leonid Yuriev
eaa77c91cd
mdbx: drop obsolete internal mm_flags
macro.
2021-11-10 02:43:43 +03:00
Leonid Yuriev
0c3a5da3cb
mdbx: refine visibility of internal mdbx_osal_jitter()
.
2021-11-07 19:48:14 +03:00
Leonid Yuriev
5babf0872e
mdbx++: add ifndef-guard for _CRT_SECURE_NO_WARNINGS
.
2021-10-22 20:14:12 +03:00
Leonid Yuriev
fcb8cd2145
mdbx: alter DB-format' signature and change version to v0.11.x (not a release).
...
Related to https://github.com/erthink/libmdbx/issues/238
Signed-off-by: Leonid Yuriev <leo@yuriev.ru>
2021-10-21 15:17:18 +03:00
Leonid Yuriev
30745e0621
mdbx: refix #pragma pack
for modern compilers and aligned-required arches (hotfix).
...
Fix a regression after the https://github.com/erthink/libmdbx/issues/235
2021-10-13 16:13:22 +03:00
Leonid Yuriev
64e6fa93fd
mdbx: fix #pragma pack
to avoid misalignment for some compilers.
...
Fixes https://github.com/erthink/libmdbx/issues/235 .
2021-10-09 12:36:40 +03:00
Leonid Yuriev
6034985686
mdbx: add MDBX_ASAN_(UN)POISON_MEMORY_REGION()
macros.
2021-07-16 16:03:49 +03:00
Leonid Yuriev
4de2dcebb5
mdbx: increase the MDBX_READERS_LIMIT
to 32767
.
...
Fixes https://github.com/erthink/libmdbx/issues/219 .
2021-07-11 02:44:19 +03:00
Leonid Yuriev
5d4281fbbe
mdbx: minor fix spelling.
2021-06-26 18:54:00 +03:00
Leonid Yuriev
ebab75642e
mdbx: add public MDBX_MAYBE_UNUSED
.
...
This also should fix C++ mdbx API build by MSVC 2015.
2021-05-11 21:07:40 +03:00
Leonid Yuriev
74ea79ac1b
mdbx: minor reorder/shrink transaction fields.
2021-05-10 16:05:19 +03:00
Leonid Yuriev
43f1823cdc
mdbx: minor alignment fix for lck-less stub to avoid false-positive alarm from UndefinedBehaviorSanitize.
...
Change-Id: I8d9bc00ccfc7228cb42f9419cf77e8eadb92f918
2021-05-08 22:43:16 +03:00
Leonid Yuriev
5ae120af80
mdbx-windows: more crutches for MinGW.
...
More for https://github.com/erthink/libmdbx/issues/155
Change-Id: I7de6122ff160372b2dcfd2a0a26e332cb52d0560
2021-05-08 18:38:44 +03:00
Leonid Yuriev
1275bdb623
mdbx: add MDBX_opt_merge_threshold_16dot16_percent
option.
...
Change-Id: I416f85096e4b6fd21f2db622f07f31103cb9074a
2021-05-06 02:05:33 +03:00
Leonid Yuriev
161b00a4b6
mdbx: refine/rearrange build options.
...
Change-Id: Ic27bf2b1f22e7ed9e6a1db9a1ed2496b1bb1239b
2021-04-30 02:01:22 +03:00
Leonid Yuriev
6b6165cdeb
mdbx: rename internal defines/macros to distinguish it from build options.
...
Change-Id: I42fe240e6ddd5d34c8fec38633849ebdcce0e116
2021-04-30 01:59:48 +03:00
Leonid Yuriev
aa5a39160a
mdbx: internal build option for debuging dirtyroom reservation and spilling.
...
Related to https://github.com/erthink/libmdbx/issues/186
Change-Id: Ia315ae2cae5f5b5b82891843de22487db0139df3
2021-04-28 23:38:38 +03:00
Leonid Yuriev
e57e42d0f8
mdbx: use single pointer to lck-less stub.
...
Change-Id: I80542423386bd54cac574d1678af2620f147c769
2021-04-28 23:38:26 +03:00