Leonid Yuriev
3a109cecdc
mdbx-make: more thunk-targets for non-GNU Makefile
.
...
Change-Id: I95b8df96c9a2271b59a8e4fb099e946d47f99811
2021-04-20 22:09:48 +03:00
Leonid Yuriev
84d154d732
mdbx-cmake: set MDBX_ALLOY_BUILD=OFF for Debug build by default.
2021-04-20 22:09:48 +03:00
Leonid Yuriev
097c3ea059
mdbx-test: fix minor Solaris/SunOS warnings.
2021-04-20 22:09:48 +03:00
Leonid Yuriev
7a0d6c6196
mdbx: use POSIX_MADV_DONTNEED
.
...
Change-Id: I2020eb8ec225a49331cf4dc6c5a24d6559916284
2021-04-20 22:09:48 +03:00
Leonid Yuriev
b3b6a48797
mdbx: fix minor warning on Solaris/SunOs.
2021-04-20 22:09:48 +03:00
Leonid Yuriev
e412d1a19e
mdbx-test: don't use make check
from long-stochastic.
...
Change-Id: I3fd9f0b1b86ffec056a4fb3980f8692d80d5ebd4
2021-04-18 19:39:51 +03:00
Leonid Yuriev
17d8ed4bad
mdbx-tools: fix mdbx_drop
help/usage message.
...
Change-Id: I100daa14641eaa351930034ba8806a7e82085289
2021-04-18 19:28:22 +03:00
Leonid Yuriev
aa58498d23
mdbx-tools: minor fix error messages.
...
Change-Id: Id2efb3db70b5df49e84bc9a8bb47645afe0eb187
2021-04-18 19:26:15 +03:00
Leonid Yuriev
4cf8496422
mdbx: avoid read leaf-pages during dropping trees.
...
Change-Id: Ib8034a76a150c213fddcca0f7df971f63253b7a5
2021-04-18 19:20:16 +03:00
Leonid Yuriev
df539e60e0
mdbx-ci: fix spelling Github action.
...
Change-Id: I64f170fd4e979c8175b1f80499dd1dfa6d2ee4cf
2021-04-18 11:35:34 +03:00
Leonid Yuriev
401423ca2e
mdbx-ci: ignore extra files changes for main CI action(s).
...
Change-Id: If4fd9f5e3bb6393a7fbab12b80adac16c3d6291b
2021-04-18 11:34:47 +03:00
Leonid Yuriev
d1561dc357
mdbx: refactoring page_alloc()
result type.
...
Change-Id: I4afc73603d610e4e28b952a38dfa9f30d56809bf
2021-04-18 10:24:22 +03:00
Leonid Yuriev
3f6758e18d
mdbx: minor refactoring mdbx_cursor_set()
.
...
Change-Id: If3c984fb5ac2f77762501ac720080e2caaacac3c
2021-04-18 10:24:22 +03:00
Leonid Yuriev
b59836e6d9
mdbx: minor refactoring: use cursor_set_result.
...
Change-Id: Ice724c541bc4127aae0e9ea85b4fc1d7c1b68471
2021-04-18 10:24:22 +03:00
Leonid Yuriev
3eb48340ad
mdbx: minor refactoring: use node_result.
...
Change-Id: I489b15c174644b2f414925f5bacbe83c091a0692
2021-04-18 10:24:22 +03:00
Leonid Yuriev
b3aba4691b
mdbx: minor refactoring: use page_result.
...
Change-Id: I7749d9463832ce9b270d06f04f43e413d5ba26b7
2021-04-18 10:24:22 +03:00
Leonid Yuriev
e4db019f47
mdbx: minor refine cursor_set_ex()
.
...
Change-Id: I0951a917c1e4c9e372f29c64fda0e1b267f48cdd
2021-04-18 10:24:22 +03:00
Leonid Yuriev
dc7098b3fb
mdbx: minor refine page_new()
.
...
Change-Id: Iafdea1c592c346c7841a39cdfc96436460b27bcb
2021-04-18 10:24:22 +03:00
Leonid Yuriev
6d3ff10165
mdbx: simplify page_unspill()
.
...
Change-Id: Iaa182d1feaf2abb59015725f000a3d9e0c57de8d
2021-04-18 10:24:22 +03:00
Leonid Yuriev
3622433cf4
mdbx: fix page_copy()
for unspilling a large/overflow page.
...
Change-Id: I46c6b6bf94c877c1c0142116c404692960dc5ab7
2021-04-18 10:24:22 +03:00
Leonid Yuriev
9c9cdfdb6d
mdbx: minor fix mdbx_is_dirty()
.
...
Change-Id: Ia539165ddd62a40e13fdfec48de754961681d40f
2021-04-18 10:24:22 +03:00
Leonid Yuriev
a0a4bbaa7c
mdbx: drop goto/label in prev commit.
...
More for https://github.com/erthink/libmdbx/issues/164
Change-Id: Ic708c3ba51dd22d08e96d0bef4632a0beb19999b
2021-04-18 10:24:11 +03:00
Leonid Yuriev
3e0fad1cf6
mdbx: rework (NO)READAHEAD handling.
...
Resolves https://github.com/erthink/libmdbx/issues/164
---
NOTE: Seems there is a bug in the Mach/Darwin/OSX kernel,
because MADV_WILLNEED with offset != 0 may cause SIGBUS
on following access to the hinted region.
19.6.0 Darwin Kernel Version 19.6.0: Tue Jan 12 22:13:05 PST 2021; root:xnu-6153.141.16~1/RELEASE_X86_64 x86_64
Change-Id: I11ebbf2bd35e3dba9d078be16cb5678aecf8329c
2021-04-17 01:12:16 +03:00
Leonid Yuriev
28affe79d8
mdbx-test: output the signal name if killed/coredumped.
...
Change-Id: I51e70daf89149ecbe72924fc9f105ea072574a23
2021-04-14 19:27:13 +03:00
Leonid Yuriev
958fd5b947
mdbx: use mp_txnid
instead of P_DIRTY
(squashed).
...
Change-Id: I7e3174611b8819d8050b84d835fe976b87c77c0c
2021-04-14 19:27:13 +03:00
Leonid Yuriev
f587a74597
mdbx: drop mx_dbistate
.
...
Change-Id: I61616ee1436ed99db93a1036c9bb7d4db7157c8f
2021-04-14 00:26:14 +03:00
Leonid Yuriev
5e334fa830
mdbx: extract mdbx_touch_dbi()
.
...
Change-Id: I3b077cefe44f4c2db099b2050e1fd72a1aaa2687
2021-04-14 00:25:15 +03:00
Leonid Yuriev
f9977975ae
mdbx: remove extra TXN_DBI_CHANGED()
check.
...
Change-Id: If2014f7bfbfab98f3c0c357f2475da57efc50693
2021-04-14 00:23:36 +03:00
Leonid Yuriev
e35c92eabb
mdbx: refine mdbx_page_new()
.
...
Change-Id: Ief0cb313c39f7b11fb1cd611d9b0497c011a7a7a
2021-04-14 00:19:34 +03:00
Leonid Yuriev
49296cad14
mdbx: refactor mdbx_drop_tree()
& drop mdbx_retire pgno()
.
...
Change-Id: I37f33d7a11e958ccc1c48a6af31599deb677038d
2021-04-10 22:20:31 +03:00
Leonid Yuriev
dfed1dbc17
mdbx: refactoring: merge page_retire()
and page_loose()
.
...
Change-Id: I4b47c11eedad6ef1b83dbf3d34977cdd8fa79505
2021-04-10 22:20:24 +03:00
Leonid Yuriev
0dd27a46ee
mdbx++: minor fix constexpr/inline for slice::invalid()
.
...
Change-Id: I48864a61f4fef711117b2e04ac92656267e2d229
2021-04-10 17:48:40 +03:00
Leonid Yuriev
20299f87cb
mdbx: minor refine get_reasonable_db_maxsize()
.
...
Change-Id: I5d654940a325c0c3966a59a37615820587c52c78
2021-04-10 17:48:31 +03:00
Leonid Yuriev
7f5cbf7dd8
mdbx: avoid float-point ops in prev commit.
...
Change-Id: I7fadc5096f49502c01a60436840bb1a87dfe27bd
2021-04-07 14:29:14 +03:00
Leonid Yuriev
c14e4235ee
mdbx: guess a reasonable maximum DB size for the default upper limit of geometry.
...
Fixes https://github.com/erthink/libmdbx/issues/183
Change-Id: Ic7b616e229d3008fda49e5a04121e22997ac53ea
2021-04-07 05:23:06 +03:00
Leonid Yuriev
8ff44026c3
mdbx: fix minor MSVC warning.
...
Change-Id: Ia7ec726b8a516d2115b727960cf7fbc874882cd4
2021-04-07 04:52:38 +03:00
Leonid Yuriev
43caec46e7
mdbx-ci: more spelling exclusions.
...
Change-Id: I96c26956ba0c290792d415fe90d91e2a30bcf630
2021-04-07 04:52:38 +03:00
Leonid Yuriev
024ccf6826
mdbx: extract mdbx_get_sysraminfo()
.
...
Change-Id: I8821009572d275a3b5d2d8729f605b115a80e50a
2021-04-07 04:45:53 +03:00
Leonid Yuriev
0f76002dde
mdbx: merge branch master
into devel
.
...
Change-Id: I6b34ecb6e1d9d1bc2832012b89ebc94fc186b32c
2021-04-06 03:08:30 +03:00
Leonid Yuriev
9405d51716
mdbx-ci: more spelling exclusions.
...
Change-Id: Iee349afa591e4204f4758ef1faeca93c2d897df2
2021-04-06 01:19:14 +03:00
Leonid Yuriev
2ecfbdb1bd
mdbx: add ETH address for donations.
...
Change-Id: Ia0a302f5374de0d50af421dfbca985ddae7e407f
2021-04-06 01:19:11 +03:00
Leonid Yuriev
6ee62650af
mdbx: add comment for unsure_equal()
.
...
Change-Id: I0629b5cd4812415c3a240047ec4202f33dddd189
2021-03-30 01:41:34 +03:00
Leonid Yuriev
66df21ba78
mdbx: add a TODO/FIXME note (first r/w opening while r/o present).
...
Change-Id: I5351628aa22313fffd6c2501a2aa16f2c5f573d5
2021-03-30 01:38:24 +03:00
Leonid Yuriev
4f62b059ef
mdbx: minor clarify TODO (configurable threshold to keep reserve space for large/overflow pages).
...
Change-Id: I73a3847852466eb3e34927c5648435c8cf283c0e
2021-03-30 01:34:46 +03:00
Leonid Yuriev
af9b7b5605
mdbx: MAJOR rework page splitting (squashed).
...
Basically, this (squashed) commit introduces:
- An "auto-appending" feature upon insertion for both ascending and
descending key sequences. As a result, the optimality of page filling
increases significantly (more densely, less slackness) while
inserting ordered sequences of keys,
- A "splitting at middle" for more balanced page tree on average.
---
1. Using left/middle/right tactics for finding the split point of a page:
- If a key is inserted close to an edge of page,
then the page splits at that edge;
- Otherwise a page splits at the middle,
which leads to a more balanced tree on average;
- So I expect a better behavior on average,
but actually effects should be studied further practically.
2. New code for calculating the midpoint of a page split.
3. APPEND-flags no longer affect choosing the page split point.
4. Added left-side splitting by inserting a pure page with a new entry.
Change-Id: Id7441acfc8c90636e3be6bc00a0df15714690f3c
2021-03-29 00:49:34 +03:00
Leonid Yuriev
e0795227e4
mdbx: merge branch master
into devel
.
...
Change-Id: Ic78177f8bc5ab3dc1826e4e00599f1a7d3087dda
2021-03-29 00:00:43 +03:00
Leonid Yuriev
0c3fb1804e
mdbx-test: add SPECULUM_CURSORS
build macro/option.
...
Change-Id: I5dc9ccde725ce49db4fb0e94be02e9c7b48f1291
2021-03-28 23:34:41 +03:00
Leonid Yuriev
3ed99f8c20
mdbx: minor refine/fix cursor_check()
internals.
...
Change-Id: I89ea9a5336b88e7d0201a7f59d66a8bc53849172
2021-03-28 23:34:41 +03:00
Leonid Yuriev
636c212235
mdbx: minor refine page_check()
.
...
Change-Id: I91cae256c47064422d26663078c8c5a6f619a197
2021-03-28 23:34:41 +03:00
Leonid Yuriev
19575e799f
mdbx-test: add stochastic reverse mode to the append
scenario.
...
Change-Id: If506aff63b6c517922ae621f7805b58c9282e946
2021-03-28 23:34:41 +03:00