Leonid Yuriev
cd1b9ea1cf
mdbx: fix and simplify lifo-cleanup-loop inside update_gc().
2018-09-21 02:36:35 +03:00
Leonid Yuriev
d6c954cd43
mdbx: remove txnid/me_oldest asserts.
...
The `mc->mc_txn->mt_txnid >= *mc->mc_txn->mt_env->me_oldest` assertion may fail
false-positive, becase me_oldest may be not updated in read-only or exclusive modes.
Change-Id: Iad57a38efa30bc9fe2392ac24657727a7ce1f584
2018-09-20 12:29:53 +03:00
Leonid Yuriev
0b4c957bd5
mdbx: fix mdbx_find_oldest() for exclusive mode.
...
Change-Id: I41283bcf0bd22797530c74df125bf94cd3e73d00
2018-09-20 00:05:36 +03:00
Leonid Yuriev
e73df34619
mdbx: fix Coverity warnings (minor).
...
Change-Id: I4fa312f3a943f20e771f5149b2d8ad7c2520bb0e
2018-09-19 22:04:34 +03:00
Leonid Yuriev
f7bd98a4ce
mdbx-chk: allow gap for GC's PNL upto one page.
...
Change-Id: Ie051442947e7588b868cec35ef9374368bf8a1c4
2018-09-19 17:06:56 +03:00
Leonid Yuriev
82c975e174
mdbx: rework/fix cursor tracking inside mdbx_update_gc().
...
Change-Id: I2c320f63901a011992bc912938bc65084f63636b
2018-09-19 17:06:27 +03:00
Leonid Yuriev
4117c9f111
mdbx: move macros/inlines to fix Windows builds.
...
Change-Id: I48aaf6b77466bb8b13294b84de73fb6063c88190
2018-09-19 00:24:49 +03:00
Leonid Yuriev
b52e878c4f
mdbx-chk: allow gap for GC's PNL upto half of page.
...
Change-Id: I6d6d68d1124c336f8356435eba02cb66a08c4e9c
2018-09-19 00:07:39 +03:00
Leonid Yuriev
c4e1c2b488
mdbx: refine assections (minor).
...
Change-Id: Ic924988b8ce043d6106df381c996dd2c8ff9ca1f
2018-09-19 00:07:39 +03:00
Leonid Yuriev
60bba72aa1
mdbx: re-define assert macro via mdbx_assert.
...
Change-Id: I317801ba4200bdf1aa5cacf75d21a8e633fbc48a
2018-09-19 00:07:39 +03:00
Leonid Yuriev
8e8b40e7a2
mdbx: fix update_gc() assertion.
...
Change-Id: I433382de0ddab41ad1530ee674ed22f9003c2779
2018-09-19 00:07:39 +03:00
Leonid Yuriev
ab5668cf29
mdbx: add MDBX_FORCE_ASSERT.
...
Change-Id: I68a9f7b42663ea157c7c0a5a58797c94127b45ed
2018-09-19 00:07:39 +03:00
Leonid Yuriev
d6d03639a2
mdbx: one more fix/refine mdbx_update_gc().
...
Change-Id: I408db79aafb317ad20e8473edc1bc30c3afb6ea9
2018-09-19 00:07:39 +03:00
Leonid Yuriev
c287f88dbd
mdbx: fix update_gc() for rare case when no reclaiming was made before.
...
Change-Id: Ib84da8ad26f9ef538dce2472c9ee89918bf6e25a
2018-09-17 15:25:45 +03:00
Leonid Yuriev
68fd9c9908
mdbx: add mdbx_get2() for testing.
...
Change-Id: Icd0961e464936fa2d24fd3ed87b61de038e955c2
2018-09-17 15:25:45 +03:00
Leonid Yuriev
940138fbda
mdbx: rework prefer_max_scatter inside mdbx_update_gc().
...
Change-Id: I6deceb73f8578d9306528e0204ba0895781057fe
2018-09-17 15:25:45 +03:00
Leonid Yuriev
35cf4bb60f
mdbx: add validation for DUPSORT flags.
...
Change-Id: Id1f3325764fb496413d060ea0468394f7e18ae37
2018-09-17 15:25:45 +03:00
Leonid Yuriev
ff336fa65e
mdbx: fix mdbx_replace().
...
Change-Id: I2af00f101017795ca2b967479f86e5ea7e8ad37b
2018-09-17 00:18:39 +03:00
Leonid Yuriev
49a3e04d92
mdbx: restore MDBX_SET behaviour.
...
Change-Id: I1ddab75fdeeff594bf4ccdb14c7ce0415feb28f8
2018-09-17 00:17:13 +03:00
Leonid Yuriev
bcbf040f5d
mdbx: drop obsolete commented-out mdbx_node_add().
...
Change-Id: I092469e251991921b19abb72afab19dcfb70f862
2018-09-16 19:13:02 +03:00
Leonid Yuriev
40edf7e323
mdbx: refine mdbx_update_gc(), add extra audit.
...
Change-Id: I70b5bba977ab6fadfdffed722226ebe02abe252c
2018-09-15 15:19:16 +03:00
Leonid Yuriev
c945359858
mdbx: remove "" from debug-strings.
...
Change-Id: I27f9052e2d2e318f4386f40f17c321e8cbf005c0
2018-09-15 15:18:15 +03:00
Leo Yuriev
d299a2601d
mdbx: add SLAPD_LMDB_LEGACY option.
2018-09-14 16:09:29 +03:00
Leo Yuriev
1fca3d4c93
mdbx: fix add-node-args asserts.
2018-09-14 16:09:20 +03:00
Leonid Yuriev
30949031c1
mdbx: check for pgno inside mdbx_page_get().
...
Change-Id: I2fed589d592228c7a98a8aa76f5b6489569b13d2
2018-09-14 02:04:25 +03:00
Leonid Yuriev
bf22699fb3
mdbx: avoid empty and unneeded large/overflow pages.
...
Change-Id: I388a60180b999889fc15a1f3f3243c007a15edc6
2018-09-13 21:49:27 +03:00
Leonid Yuriev
e08409d209
mdbx: add mdbx_cursor_check() for audit.
...
Change-Id: Ica2133dea40864fb746f2dea39d8c09364b1243e
2018-09-13 21:45:12 +03:00
Leonid Yuriev
70c796463b
mdbx: fix tracking inside mdbx_cursor_del().
...
Change-Id: Ib1b3f00270d6aec18428da4caf0f173378b9b5b5
2018-09-13 21:20:48 +03:00
Leo Yuriev
561d30518a
mdbx: remove needless assert.
2018-09-13 21:18:02 +03:00
Leo Yuriev
01e016e6aa
mdbx: fix tracking inside mdbx_cursor_del0().
...
Change-Id: If65804a610730cf80d73fc31c1e62fb9bf3b6c82
2018-09-13 21:12:39 +03:00
Leonid Yuriev
94aa20febc
mdbx: rework mdbx_dpage_free(), drop mdbx_page_free().
...
Change-Id: Ida58003b355fe0271a835a50c78b930c73806e87
2018-09-13 21:05:26 +03:00
Leo Yuriev
f22c0856bf
mdbx: fix tracking inside mdbx_rebalance().
2018-09-13 21:05:01 +03:00
Leo Yuriev
76f7c118c6
mdbx: alter mdbx_rebalance().
2018-09-13 21:02:14 +03:00
Leo Yuriev
ff738f1512
mdbx: alter mdbx_page_merge().
...
Change-Id: I33a3523e0efc914f6d85dfbbf69b97dd70d6c721
2018-09-13 20:59:10 +03:00
Leonid Yuriev
36fe81edad
mdbx: refine mdbx_update_key() and mdbx_cursor_put().
...
Change-Id: I26b97f1eecff1f03e578193aebb5592ab48dd38e
2018-09-13 20:51:16 +03:00
Leonid Yuriev
8cd0107e6a
mdbx: alter mdbx_page_loose() and rework mdbx_kill_page().
...
Change-Id: I646b6fb6cdcd05f5058356ee38f888519403a78f
2018-09-13 20:47:24 +03:00
Leo Yuriev
cbd0b42e20
mdbx: alter mdbx_page_split().
2018-09-13 20:37:15 +03:00
Leonid Yuriev
6d33c137f6
mdbx: fix mdbx_cursor_put().
...
Change-Id: I280c6f275372952ce3411e564928ad6c3387b00c
2018-09-13 20:32:07 +03:00
Leonid Yuriev
78143d9a48
mdbx: fix mdbx_node_add_leaf2().
...
Change-Id: I07c5f7c1e3e21cbc4699a4fee69d651ac0779aca
2018-09-13 20:31:16 +03:00
Leo Yuriev
6206b67d32
mdbx: rework move-node and split add-node.
2018-09-13 20:28:40 +03:00
Leonid Yuriev
771ac1928b
mdbx: add more const
(minor).
...
Change-Id: I8aa44db6ed5da6a70bc8a011b83ab49a8f9f47c6
2018-09-13 20:17:12 +03:00
Leonid Yuriev
b6aace0825
mdbx: refine page-type macros.
...
Change-Id: I9f331bf17c1de1a1402d66e8b4081f31133e2b59
2018-09-13 20:06:13 +03:00
Leo Yuriev
a30828b457
mdbx: alter mdbx_node_shrink().
2018-09-13 19:56:53 +03:00
Leo Yuriev
ecb0e268b0
mdbx: more asserts for page-type.
2018-09-13 19:54:02 +03:00
Leonid Yuriev
b2ddd49b77
mdbx: assertions for LEAF/BRANCH-pages mixing.
...
Change-Id: I52ddc64b99fa5c07e2d50a52cc17989db5ab35d5
2018-09-13 19:45:06 +03:00
Leonid Yuriev
69c14f3694
mdbx: minore refine mdbx_page_alloc().
...
Change-Id: Ie5e5db2a0d24547544c55467cafa6237aead8c84
2018-09-13 19:44:32 +03:00
Leo Yuriev
22e7630d53
mdbx: fix MDBX_CORRUPTED due open/shrink collision.
2018-09-13 19:32:03 +03:00
Leo Yuriev
a150b791a4
mdbx: audit freeing large/overflow pages.
2018-09-13 18:15:40 +03:00
Leonid Yuriev
94b1553637
mdbx: fix mdbx_ovpage_free().
...
Change-Id: I453921b356f412fad59efd6ce31ddb75f0d84358
2018-09-13 18:15:40 +03:00
Leonid Yuriev
f1bb2f1ec2
mdbx: fix mdbx_gc_update() for empty list of reclaimed-pages.
...
Change-Id: I7386eab7e663ec8ee330705c4b202429bf9f6793
2018-09-13 18:15:30 +03:00