Leo Yuriev
20a61f273c
mdbx: set MDBX_FATAL_ERROR when mdbx_env_open() failed.
...
Change-Id: If02d670c7ce3a5dd696a87848df28ffe817c6922
2018-07-06 15:08:33 +03:00
Leo Yuriev
8e0f5bea4a
mdbx: minor fix to avoid Valgrind false-positive issue.
...
Change-Id: Ifa4dc51b500ff42a88182d750e22572aa5b2155b
2018-07-01 17:42:35 +03:00
Leo Yuriev
c9d0c8edeb
mdbx: create new files with mode=0640 inside mdbx_env_copy().
...
Change-Id: I468f0fa29d471a2e877ea20a5e61f6358347c6eb
2018-06-30 14:56:28 +03:00
Leo Yuriev
e57d4bbb00
mdbx: remove created file if mdbx_env_copy() failed.
...
Change-Id: Ie47981b6031c6e7099a5d49f6cd7338ab2c1e040
2018-06-30 14:56:28 +03:00
Leo Yuriev
d90e6187f7
mdbx: support exclusive mode without lck-file.
...
Change-Id: I1beef09d62965d0d777f579a8aa6f15c478eebd2
2018-06-30 14:15:24 +03:00
Leo Yuriev
9e81d5b631
mdbx: allow mdbx_env_compact() to fix page leaks.
...
Don't treat fixing page leaks as an error while copy DB with compactification.
Change-Id: I2a575ff9e2b24610172aaca939b5f6957c26ec77
2018-06-30 01:35:27 +03:00
Leo Yuriev
f4a01da47f
mdbx: avoid weak meta inside mdbx_init_metas().
...
Change-Id: Ib9c5ab04ad8cff3ad43d94a288cecec45d7ef37d
2018-06-30 00:03:15 +03:00
Leo Yuriev
b9d3eac12e
mdbx: minor refine mdbx_env_copy().
...
Change-Id: I007add822bc4d30b7a8a838981ada6d2812f669a
2018-06-29 23:54:59 +03:00
Leo Yuriev
bc77ab3cca
mdbx: refine Coverity warning fix.
...
Change-Id: I6bbb791f32a6b64712e88e0b2dd87052e353c730
2018-06-21 18:28:30 +03:00
Leo Yuriev
40ec114048
mdbx: fix Coverity warning (minor, paranoia).
...
Change-Id: I232377a03244dc33beb4f332c0024b454027f659
2018-06-21 17:28:01 +03:00
Leonid Yuriev
f625b6cb42
mdbx: restore env-flags when env_open() failed.
...
Change-Id: I597b242c6f56c16dfef0a3d34c2113f71908cef4
2018-06-20 13:52:08 +03:00
Leo Yuriev
0dfa9cd09a
mdbx: add MDBX_EXCLUSIVE instead of mdbx_env_open_ex().
...
Change-Id: I3c817d58d971385bcd07643df14beaf7122c7836
2018-06-20 13:52:02 +03:00
Leo Yuriev
09ad941a05
mdbx: Windows XP compatibility.
...
Change-Id: Iafe3a83110610071e42a168ef9fc5f8d3131854f
2018-06-20 13:47:14 +03:00
Leo Yuriev
9f2bf6a377
mdbx: provide SRWL stub for Windows XP/2000.
...
Change-Id: I438373a4952298efc88ca4c1a92c88e173b82f98
2018-06-20 13:47:14 +03:00
Leo Yuriev
9db090087e
mdbx: reformat by clang-format 6.0 (cosmetic).
2018-06-18 21:29:12 +03:00
Leo Yuriev
f314cd6b92
mdbx: windows - fix truncation race while unmap.
...
Change-Id: I93983d100c78aa3e57c5a7ebd9d5bf2a96081ed7
2018-06-15 02:54:41 +03:00
Leo Yuriev
2f983b281d
mdbx: drop MDBX_DEVEL.
...
Change-Id: I5fc1a240e7909b8ecaf2ef19a83a9e59ea5609ba
2018-06-13 11:37:56 +03:00
Leo Yuriev
efdcbd8c35
mdbx: disable non-blocking DB-close under Windows.
...
Change-Id: If6579467132439b6b627e756f67f6bd35fed8b4f
2018-06-13 02:46:18 +03:00
Leo Yuriev
634efbe34b
mdbx: don't block close_env() if other write-txn running.
...
Change-Id: I1d19afcc245578681b8bc3ee3966ac38bc596ec4
2018-06-12 13:18:17 +03:00
Leo Yuriev
fdc248384e
mdbx: skip meta if usedbytes beyond oef.
...
Change-Id: I1e95136bce7169b7ed612f9746d0cdec43caca14
2018-06-01 13:27:20 +03:00
Leo Yuriev
38369bd24b
mdbx: force steady-sync when shrinking DB (fix corruption bug).
...
Change-Id: I636ee2ad04f28d4038d74bdf2c7061ab885f4b82
2018-06-01 13:15:21 +03:00
Leo Yuriev
ab4c9c9db0
mdbx: return MDBX_CORRUPTED instead of crash if MDBX_DUPSORT mismatch.
...
Change-Id: I439a3c859dbfcfbe33a3db077c3e8200a1417c31
2018-05-28 20:04:48 +03:00
Leo Yuriev
f1edd1579a
mdbx: fix wrong freeDB search.
...
Avoid search freeDB while tree is updating.
This resolves https://github.com/leo-yuriev/libmdbx/issues/31
Bug was inherited from LMDB.
Change-Id: I0b12f8d9b88bca5aa26ca27db81df9b72c6a19b7
2018-04-25 03:01:12 +03:00
Leo Yuriev
797ae9d1db
mdbx: minor fix debug-output for mdbx_thread_key_create().
...
Change-Id: I718130cf2385b6221187cbcdeedd9d48d05289bb
2018-04-03 20:04:10 +03:00
Leo Yuriev
864be54f01
mdbx: fix/rework rthc counting.
...
Change-Id: I97fd5bd6dc1a46658138d82db10e937c9595d81f
2018-04-03 19:28:12 +03:00
Leo Yuriev
571b50622e
mdbx: restore workaround for glibc's bug #21031 .
...
Workaround for https://sourceware.org/bugzilla/show_bug.cgi?id=21031
Change-Id: I6cf9e037cc2fc298096b78ec96773f19478ed5c0
2018-04-03 17:44:18 +03:00
Leo Yuriev
36a86bbc6e
mdbx: fix cursor tracking inside mdbx_rebalance().
2018-03-26 20:20:14 +03:00
Leo Yuriev
45f159ddd3
mdbx: mdbx_cursor_put(MDBX_APPEND+MDBX_NOOVERWRITE) should return MDBX_KEYEXIST instead of MDBX_EKEYMISMATCH.
...
When MDBX_APPEND is used the ordering of keys is important.
Therefore MDBX_EKEYMISMATCH should me returned when given key <= last.
On the other hand, if MDBX_NOOVERWRITE is also used
then the MDBX_KEYEXIST should be returned, but not MDBX_EKEYMISMATCH.
2018-03-23 17:21:27 +03:00
Leo Yuriev
61a2c56784
mdbx: fix/rework cache-line alignment.
2018-03-22 21:11:26 +03:00
Leo Yuriev
6a074cb85a
mdbx: fix unaligned access to mp_ptrs[] on fake-page.
...
Based on http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=commitdiff;h=e77918a903d980ff789b7e32f71725481e870510
2018-03-22 21:11:26 +03:00
Leo Yuriev
5ce40269b3
mdbx: fix gcc warning (minor).
2018-03-22 20:37:50 +03:00
Leo Yuriev
679fb56787
mdbx: lookup suitable txnid for rollback to avoid meta-pages clashes.
2018-03-20 22:16:15 +03:00
Leo Yuriev
a2ec7f2be1
mdbx: add mdbx_txn_flags().
2018-03-19 18:08:45 +03:00
Leo Yuriev
64613c9061
mdbx: fix minor memleak (Coverity).
2018-03-19 16:16:31 +03:00
Leo Yuriev
c05d179035
mdbx: temporary workaround for Elbrus's libc bug.
...
https://bugs.mcst.ru/bugzilla/show_bug.cgi?id=2820
2018-03-19 15:05:56 +03:00
Leo Yuriev
a93fafceff
mdbx: strip utf8-bom for Elbrus (minor).
...
Change-Id: I9030abe267c4abfa2c5c2deb439c0b8025b83047
2018-03-07 12:09:43 +03:00
Leo Yuriev
260c1d71dd
mdbx: add self_latter_reader_txnid into MDBX_envinfo.
...
Change-Id: I17ac6e921f99df6ed61096ff0fbfbacf5a7e4608
2018-02-04 17:13:27 +03:00
Leo Yuriev
72557af2b5
mdbx: HNY!
...
Change-Id: I2a91b986964d96bb3e5f848e3c17408bd7745866
2018-02-04 13:10:54 +03:00
Leo Yuriev
6a0ff097ee
mdbx: immediately share dbi-handles for present TBLs (major).
...
Change-Id: I75c998e06b3ccc25bd22ef389d119052d524d70b
2018-02-04 12:59:47 +03:00
Leo Yuriev
e8ae506773
mdbx: minor refine env-init.
2018-02-02 19:06:14 +03:00
Leo Yuriev
7b59452aed
mdbx: less memset overhead while txn-init.
2018-02-02 19:05:41 +03:00
Leo Yuriev
5cfec7a832
mdbx: workaround for Windows LockFileEx/WriteFile bug.
...
This resolves https://github.com/leo-yuriev/libmdbx/issues/25
2018-01-31 15:26:44 +03:00
Leo Yuriev
5c9baa06b9
mdbx: fix mdbx_txn_end() assert for mt_owner.
2018-01-30 19:52:39 +03:00
Leo Yuriev
1143390e58
mdbx: fix/allow mdbx_txn_end() to re-aborting txn.
2018-01-24 18:45:42 +03:00
Leo Yuriev
ca06c1973e
mdbx: fix/allow mdbx_txn_renew() after an renew-error.
2018-01-24 17:40:57 +03:00
Leo Yuriev
a45612e6d0
mdbx: fix lower_size overwrite.
...
Change-Id: If9addb1f549628866e3ce9597f1a542684ef8f2d
2018-01-14 22:40:11 +03:00
Leo Yuriev
5acf93c54d
mdbx: rework allowing open large DB from a 32-bit environment.
...
Change-Id: Id7d9e2041158d0715496b852a5ddb297bde1495e
2018-01-14 21:16:52 +03:00
Leo Yuriev
915830d0d3
mdbx: fix mapsize_min typo inside mdbx_read_header().
...
Change-Id: I65ffebb37f1332832a0e17796ba184be5d3fc929
2018-01-14 21:16:52 +03:00
Leonid Yuriev
373d4ad81d
mdbx: allowing open large DB from a 32-bit environment.
2018-01-14 15:39:11 +03:00
Leo Yuriev
8a08df9188
mdbx: check txn inside mdbx_cursor_renew().
...
Change-Id: I444ff36739d875dda835e8ded7a7aae37c8bd2be
2018-01-11 21:49:29 +03:00
Leo Yuriev
c4007cbc70
mdbx: check txn inside mdbx_cursor_txn().
...
Change-Id: Ia3d24800890369e3b6cab23d8f69c27246a4f017
2018-01-11 21:48:47 +03:00
Leo Yuriev
6b5533338f
mdbx: prohibit recursive txn-begin by MDBX_BUSY.
...
Change-Id: I46f5159cec72df9c8aece07fbfb462682499a272
2018-01-11 21:15:33 +03:00
Leo Yuriev
abcacea543
mdbx: more pid and MDBX_FATAL_ERROR checks.
...
Change-Id: Ifa223f270312cb7bbba01bdb76173f8230efb91b
2018-01-09 21:14:42 +03:00
Leo Yuriev
c0be0d6fb7
mdbx: fix mdbx_env_set_geometry() for case remap failed.
...
Change-Id: I0850692737eaee3c7f33194dfa19b88ce74497c8
2018-01-09 21:13:04 +03:00
Leo Yuriev
8e8c00aadf
mdbx-windows: raise MDBX_PANIC if remap failed.
2018-01-09 15:46:42 +03:00
Leo Yuriev
963da34412
mdbx: fix mdbx_env_set_geometry().
2018-01-09 15:38:03 +03:00
Leo Yuriev
30bd7d3078
mdbx: shrinking memory-mapping for Windows (initial).
...
Change-Id: I3c3c2df0747c788ea36d7764c1e8139098ca62be
2018-01-08 17:47:41 +03:00
Leo Yuriev
f10f5b376f
mdbx: account freelist-backlog while shrinking DB.
...
Change-Id: I8b211f281483e7cb6344ef99c571f3516d16f61d
2018-01-07 22:31:34 +03:00
Leo Yuriev
24a8bdec49
mdbx: fix SIGSEGV in case mdbx_env_close_ex() called without mdbx_env_open().
2017-12-20 14:22:55 +03:00
Leo Yuriev
3e9308eb0e
mdbx: check for running write-txn inside mdbx_env_close().
2017-12-19 16:38:21 +03:00
Leo Yuriev
b1c7fa30c0
mdbx: fix MDBX_BUSY comment/description (typo).
2017-12-19 16:37:20 +03:00
Leo Yuriev
a5b077b2f0
mdbx: minor clarify mdbx_env_set_geometry().
2017-12-19 15:33:25 +03:00
Leo Yuriev
46a3d4e0a3
mdbx: fix assertion (minor, not a malfunction).
...
The `env->me_sync_pending` could be zero
when `mdbx_sync_locked()` called from `mdbx_env_set_geometry()`.
Therefore `mdbx_assert(env, !META_IS_STEADY(head) || env->me_sync_pending != 0)` at the top of `mdbx_sync_locked()`
could be trigger assertion failure.
2017-12-18 14:39:41 +03:00
Leo Yuriev
866ca18970
mdbx: add few __fallthrough and __unreachable.
...
Change-Id: Ife18986a3a6391c76f63d12f8102bd6670ae63eb
2017-10-29 02:12:05 +03:00
Leo Yuriev
6f6b360aba
mdbx: add/fix 'fallthrough' for GCC 7.x
...
Change-Id: I45c57ea910978aaa857086d7794ad92ba0ae7157
2017-10-28 11:45:04 +03:00
Leo Yuriev
d1f04656ab
mdbx: more robustness for thread checking while reset/renew/abort of txn.
2017-10-27 18:01:32 +03:00
Leo Yuriev
d4bf0a3332
mdbx: refine/simplify mdbx_find_oldest().
...
Simplify b6f14780e381300beaf782fa74252b791aae082e
2017-10-27 15:43:06 +03:00
Leo Yuriev
1a27e40701
mdbx: Merge branch 'fix-after-txntry'.
2017-10-27 14:17:43 +03:00
Leo Yuriev
b6f14780e3
mdbx: fix performance degradation in the absence of readers.
...
Change-Id: I59a51b61918463e68d3e0490c715f4dcc9ecb788
2017-10-27 13:36:10 +03:00
Leo Yuriev
0a7a290d06
mdbx: drop mdbx_txn_trylock().
2017-10-26 21:49:39 +03:00
Leo Yuriev
17b8e48bf4
mdbx: cleanup after last pull-request.
...
Cleanup after 4e40af60e74143aedaa8d295f0f33a3c892a1c9b (Merge pull request #20 from rouzier/feature/txn_try).
2017-10-26 21:49:38 +03:00
James Rouzier
7c466e53f0
Add the ability to not block when opening a write transaction
2017-10-25 19:41:28 -04:00
Leo Yuriev
4f1c846437
mdbx: rollback to not-a-weak instead to steady.
2017-10-10 18:14:07 +03:00
Leo Yuriev
b7121d7711
mdbx: fix meta.mm_psize typecast.
2017-10-09 17:41:13 +03:00
Leo Yuriev
9fd7056b4f
mdbx: fix loose/dirty bug.
...
Change-Id: I725b640cfc29e1c0710abb155e05d44bb7bb3cc3
2017-10-05 09:01:19 +03:00
Leo Yuriev
f4ca6ed6b9
mdbx: fix handling MAX_MAPSIZE32 limit.
2017-10-02 18:01:08 +03:00
Leo Yuriev
2ce817b438
mdbx: ensure checks to avoid using meta-pages.
...
Change-Id: I21959b8a26961bb65f3bc3b87b24a3c4f6a673f7
2017-09-26 20:13:43 +03:00
Leo Yuriev
dc31d7d1a3
mdbx: fix shrinking below a lower-bound.
...
Change-Id: Ia6d497e2d7c6d7ee646b23b8df944a01d96445fc
2017-09-26 19:37:34 +03:00
Leo Yuriev
6a2ce93f19
mdbx: minor simplify mdbx_dbi_open_ex().
...
Simplify prev commit.
Change-Id: Id6a5abd6b18ceefae4cf259935bd6d9d9adb7d76
2017-09-07 09:52:53 +03:00
Leo Yuriev
5b23d7e452
mdbx: fix mdbx_dbi_open_ex(MDBX_CREATE) for rdonly txn.
...
Fix https://github.com/leo-yuriev/libmdbx/issues/19
Change-Id: I3ae1ab3188482fd8c31de51d62e34591082cd60a
2017-09-07 09:43:44 +03:00
Leo Yuriev
26dab6dee0
mdbx: import - ITS#8722 fix FIRST_DUP/LAST_DUP cursor bounds check.
...
Change-Id: I6dbba19b594a4bd3545d430a3438cf3b1c5a0a0b
2017-09-07 09:43:43 +03:00
Leo Yuriev
e6e92134a6
mdbx: fix PVS-Studio warnings.
2017-09-05 21:02:03 +03:00
Leo Yuriev
ace062f4a7
mdbx: fix warning around mode_t
.
...
More for https://github.com/leo-yuriev/libmdbx/issues/15
Change-Id: I1743e01e9111400942fd2a4846a21c475101a148
2017-08-16 11:28:38 +03:00
Leo Yuriev
728252058d
mdbx: fix/refine comment.
...
Change-Id: I8f09ca755ebcc1e58531504a8998391e7a3c8c9a
2017-08-16 09:29:30 +03:00
Leo Yuriev
9b5e28e8e6
mdbx: fix mdbx_setup_dxb() for a case when db-size not (pre)configured by user.
...
Fix https://github.com/leo-yuriev/libmdbx/issues/11
Change-Id: I6fccd4877fed563cfb3a03f887bbba73eff5ac84
2017-08-16 08:46:20 +03:00
Leo Yuriev
7b8a1c9794
mdbx: fix typo.
...
Change-Id: Ib491469a2a7ebb6bdadf995fa3a964d23fdf7036
2017-07-28 21:53:15 +03:00
Leonid Yuriev
82a716847b
mdbx: fix/workaround mmap-resize for Windows.
...
Change-Id: I58b5784f1309cd1e88af860828f561fe29f51ff0
2017-07-28 14:37:50 +03:00
Leonid Yuriev
128cc2d308
mdbx: fix pnl_sort().
...
Change-Id: I57f9a8dd8d61c6f11f8f30d15f8812cf2f850789
2017-07-28 14:37:06 +03:00
Leo Yuriev
c6fc062cfd
mdbx: fix MSVC warnings.
...
Change-Id: Ida49e653510358d7c81fe5da73a0131dcb6268f6
2017-07-27 17:35:00 +03:00
Leo Yuriev
684847db39
mdbx: relax backlog estimation/preparation for freelist_save().
...
Change-Id: I931b76179855c16cb8b6265db262309061ac196d
2017-07-27 16:58:45 +03:00
Leo Yuriev
aa5403ad38
mdbx: 1/1 as default grow/shrink for MDBX_DEBUG.
...
Change-Id: I90fa2705113f134984f9ec341ef37131e598d121
2017-07-27 16:58:34 +03:00
Leo Yuriev
c49d1bc97a
mdbx: provide refunding pages into unallocated space.
...
Change-Id: I9d4f953adc6f3b745a9822044f3933adba4ca6fe
2017-07-27 16:58:22 +03:00
Leo Yuriev
dcc179f412
mdbx: more checks for pgno-list ordering.
...
Change-Id: I6c6093532e8d2c07c42f62d23579ef86cbbd43b7
2017-07-27 16:58:09 +03:00
Leo Yuriev
b8b3ba8e91
mdbx: provide configurable ascending/descending sort-order for pgno-lists.
...
Change-Id: I3134c100880ff28bb0aaf46ed91affc9f6347110
2017-07-27 16:57:52 +03:00
Leo Yuriev
552b759878
mdbx: refine pgno-lists.
...
Change-Id: Id38e4aff508437210d4c0e63962067dfe518eb31
2017-07-27 16:53:42 +03:00
Leo Yuriev
592c064873
mdbx: refine freelist_save() to simplify loose-pages handling (preparation for pages refunding).
...
Change-Id: I1f15487383fbfb6770e1f7128a2d8349a1cfdf25
2017-07-27 16:53:01 +03:00
Leo Yuriev
7ed97d50b1
mdbx: guard put-data inside freelist_save() by C_RECLAIMING (paranoia).
...
Change-Id: I9cb6bf27717f76dc97259d48e4253a30c2345afd
2017-07-27 16:52:59 +03:00
Howard Chu
7626bcfdde
mdbx: backport - ITS#8699 more for cursor_del ITS#8622.
...
Set C_DEL flag on reinit'd subcursor
Change-Id: I8ad1c10afd481f61b8e521d02c4d2de3be5089d7
2017-07-27 04:45:03 +03:00
Leonid Yuriev
092156ee4f
mdbx: fix/redefine ssize_t, PRI*PTR nad PRI*size macros for MSVC.
...
Change-Id: I6cb565087350cf1d1e1735bff1c5480c3d4c02db
2017-07-26 19:17:11 +03:00
Leo Yuriev
fb9d7a4471
mdbx: refine freelist_list() to avoid coverity warnings.
...
Change-Id: I38eee44e4ca926e7d11ef5e3f7f3ce2e92f71259
2017-07-26 17:36:32 +03:00
Leonid Yuriev
a78edd314e
mdbx: more fix MSVC '/Wall' warnings.
...
Change-Id: I359a3056d6bb5db762fe6b6b8a89e8ed066f8a87
2017-07-26 16:02:49 +03:00
Leo Yuriev
88ca23caa5
mdbx: misc refines (minor).
...
Change-Id: Ia58e2d75e320bbd47dd352e082cf6f41afde075f
2017-07-26 12:43:54 +03:00
Leo Yuriev
1f7f3af16c
mdbx: minor refine mdbx_mmap().
...
Change-Id: Ic5026b6412ca93a00faeb8306975d896d85b475d
2017-07-26 12:43:54 +03:00
Leo Yuriev
f57931f614
mdbx: apply only substantial geo-changes and pre-shink while opening database.
...
Change-Id: If62ac64cc820ed0201cecf4b89ea3096029abb0a
2017-07-26 12:43:54 +03:00
Leo Yuriev
1dab822324
mdbx: growth/shrink datafile with alignment.
...
Change-Id: I46deb885654d2bb1d164009159c9364567ab88a9
2017-07-26 12:43:52 +03:00
Leo Yuriev
4f06a38a50
mdbx: use saturated pgno_add() to avoid overflows.
...
Change-Id: I70000a86a69c9b3399d0a2c345d57ca1908f2881
2017-07-26 12:41:52 +03:00
Leo Yuriev
a9927e7214
mdbx: refine page_alloc().
...
Change-Id: I9932847ef244132df9d909b41a1760a3e89288ac
2017-07-26 12:30:50 +03:00
Leo Yuriev
3d53f2ff2a
mdbx: refine mdbx_reclaiming_detent() for MDBX_UTTERLY_NOSYNC.
...
Change-Id: I7847f2b375f3792927a55c90bb26d3220e71b576
2017-07-26 12:28:27 +03:00
Leo Yuriev
94af9e02b0
mdbx: fix mdbx_env_close_ex() for MDBX_RDONLY.
...
Change-Id: I5ff79a93e026d4b40412294956dd222081a1b821
2017-07-26 12:27:34 +03:00
Leo Yuriev
ab8fa36033
mdbx: refine mdbx_meta_ot() and dependents.
...
Change-Id: I449d501f0c3710fdb906e01931e10300ab3b7c9d
2017-07-26 12:26:02 +03:00
Leo Yuriev
0b07749fba
mdbx: major fix - madvise(MADV_REMOVE) only for exclusive mode.
...
Change-Id: I6799df7b85eaf32a1c46f251ca64a4df4ff092b2
2017-07-26 12:09:57 +03:00
Leo Yuriev
9e473ab6f2
mdbx: remove obsolete mlock().
...
Change-Id: I23df282d545eac9dd7bf9df1bd71dedbccc45cfd
2017-07-26 12:09:57 +03:00
Leo Yuriev
4fa4129add
mdbx: cleanup freelist_save().
...
Change-Id: I552e6d7edac61e66b8954f6b58485d6b07194ab5
2017-07-26 12:09:57 +03:00
Leo Yuriev
1babb0a4f7
mdbx: don't put loose pages into befree in lifo mode.
...
Change-Id: Ibb409e3447e42f1b9f38ed0a33ecb7715fa54d31
2017-07-26 12:09:57 +03:00
Leo Yuriev
ad48fd54fb
mdbx: minor refine freelist_save().
...
Change-Id: Ifed9b8d363d45d24c44c1b0a803dad34aada96d3
2017-07-26 12:09:57 +03:00
Leo Yuriev
3ba5bebec4
mdbx: refine mdbx_txl_alloc().
...
Change-Id: I624a92c8a845ab563f13619b3638227d012a780b
2017-07-26 12:09:57 +03:00
Leo Yuriev
d5a8bcebbf
mdbx: preserve current meta-extra fields/flags.
...
Change-Id: Id458a85178839bd196435891633c4dd1f3a51d45
2017-07-23 21:33:17 +03:00
Leo Yuriev
58f7674fa5
mdbx: fix mdbx_set_attr().
...
Change-Id: I6628a0629a17f99f39098b8ccb76259cd65dd353
2017-07-23 21:07:08 +03:00
Leo Yuriev
b4e0344de7
mdbx: check for oldest-aware corruption by writer in txn_renew().
...
Change-Id: I1a49e4264feb93dc84963db426b11f467f31fcf6
2017-07-23 21:07:08 +03:00
Leo Yuriev
ddc5b9f34f
mdbx: start find_oldest() from steady-point.
...
Change-Id: Icc102f98f86e557e1ccba9cd74255c3da9225d41
2017-07-23 18:39:31 +03:00
Leo Yuriev
242baf761f
mdbx: fix/rework shrinking, add MDBX_SHRINK_ALLOWED.
...
Change-Id: I014440850aa4be927843aa2a6a268794a4da9b2a
2017-07-21 13:55:21 +03:00
Leo Yuriev
599711a007
mdbx: fix/avoid meta-update from setup_dxb() in read-only mode.
...
Change-Id: I60359f92aba31bb5a22e9a39ea4658d2393e957d
2017-07-21 13:54:06 +03:00
Leonid Yuriev
c8a5df650b
mdbx: fix/rework exclusive-locking for Windows.
...
Change-Id: I1b129a10ed7523024481480647317f1643f2ea70
2017-07-19 14:13:31 +03:00
Leo Yuriev
17e8429a29
mdbx: rework mmap-functions for osal.
...
- add 'length' and 'current' fields to mmap-object;
- drop mdbx_mremap();
- do remap on-demand inside mdbx_mresize();
- add mdbx_mapresize() which re-creates Valgrind's region.
- call resize on txn-begin.
Change-Id: I82780f92c4947804e3f14fb7cb71ee655382f9bb
2017-07-19 14:13:31 +03:00
Leo Yuriev
4d1df6ea11
mdbx: rework rollback on dxb-setup to avoid troubles under Windows.
2017-07-12 03:31:20 +03:00
Leo Yuriev
455de97d36
mdbx: rework using of mdbx_mmap_t and mdbx_msync().
2017-07-12 03:31:20 +03:00
Leo Yuriev
6f00854034
mdbx: take LTO_ENABLED in account for AddressSanitizer default options.
...
Change-Id: I691eae23ca2cb60c6e2a9260ab41e3c80c8aaeb8
2017-07-07 00:45:52 +03:00
Leo Yuriev
0047ce4bd6
mdbx: add default AddressSanitizer options.
...
Change-Id: I99b7aee5010f1d43008b2a61efe3fb9bb023ab31
2017-07-07 00:02:56 +03:00
Leo Yuriev
84b4883f00
mdbx: fix returning MDBX-errors after the merge.
...
Change-Id: Id49b7f341749709cdee476c88c1066e76b6937c1
2017-07-05 19:38:39 +03:00
Leo Yuriev
14484a6f32
mdbx: fix minor defects (coverity).
...
Change-Id: I1a5b0788a87ab2a138b342140648642fd5855ae3
2017-07-04 13:21:16 +03:00
Leo Yuriev
beda690227
mdbx: fix resource-leak in mdbx_env_open_ex() in case of error (coverity).
...
Change-Id: I9e808e2de4a64d05205a79c9d90feacc87ec930d
2017-07-04 13:21:16 +03:00
Leo Yuriev
93d92db43d
mdbx: fix mischecking in mdbx_reader_check0() (coverity).
...
Change-Id: I2e3aaba1426c3b152a39b90f6d171380948da0a7
2017-07-04 13:21:16 +03:00
Leo Yuriev
bf8507f3ec
mdbx: fix mdbx_env_info() to avoid null-deref in lck-free mode (coverity).
...
Change-Id: Ica8fe6c7f5a18af3a4d7d38ce8a1a092d5f1b2f7
2017-07-04 11:45:48 +03:00
Leo Yuriev
aec35300c4
mdbx: fix new API function after the merge.
...
Change-Id: Ic929444ceb137ccaa2ab4fe82b4f93a3cb5a92aa
2017-07-04 10:46:46 +03:00
Leo Yuriev
b34e92d308
mdbx: cleanup/reformat after the merge.
...
Change-Id: I3e0fe8f1292a6387e8d3ff8b904170f05d8e1770
2017-07-04 10:35:32 +03:00
Leo Yuriev
594834bc9c
mdbx: Merge branch 'nexenta' into devel.
...
Change-Id: I7a00f98e088f21ebc91a3861309b697f01e1fa66
2017-07-04 09:22:09 +03:00
Leo Yuriev
78ae12aa10
mdbx: fix MSVC 'padding' warnings, minor refine fields ordering.
2017-07-03 11:41:24 +03:00
Leo Yuriev
1d702aa94f
mdbx: more warning control for MSVC.
2017-07-03 06:45:41 +03:00
Leonid Yuriev
3e6a672286
mdbx: fix MSVC warnings, add uint16-range-asserts.
...
Change-Id: Ie67a728035eeae250efbf962270b5c17c974db23
2017-07-03 04:41:00 +03:00
Leo Yuriev
2ed74ee78f
mdbx: fix MSVC size_t/uint64_t warnings (minor).
...
Change-Id: I580eea87e9c557c61b1ff0b66feaafce139d2c45
2017-06-30 07:25:56 +03:00
Leo Yuriev
186d2ee065
mdbx: add 'mti_reader_finished_flag' for speedup find_oldesd().
...
Change-Id: I4a2c8b80efad0cfc12918969125d258043cbffba
2017-06-30 00:43:11 +03:00
Leo Yuriev
acfa096aba
mdbx: more for lockless/readonly mode (testing needed).
...
Change-Id: I28f46f5a373212ebb5df780f4d2b5e216d8cdae2
2017-06-30 00:43:11 +03:00
Leo Yuriev
9a2fff91f3
mdbx: dynamic mapsize/geometry and API (mostly done).
...
Change-Id: Ifb768ff3207cae1755c53c211a3ae552c6455e12
2017-06-21 01:42:41 +03:00
Leo Yuriev
45defdc170
mdbx: refine err returning (MDBX_EPERM, etc).
...
Change-Id: Iaa21a0e6632be47d6ef2a3676ba5e1381fc03b4d
2017-06-21 01:42:27 +03:00
Leo Yuriev
151d4540de
mdbx: refine internal constant (use UINT32_C, etc minors).
...
Change-Id: I0f994ee75b5aa1494fcc8ca42a46120865676e25
2017-06-21 01:39:53 +03:00
Leo Yuriev
edc936dc28
mdbx: rework mdbx_oomkick() and speedup mdbx_find_oldest().
...
Change-Id: Icc2c450e7f10efe1b4ab8705e6a659cece256dc1
2017-06-16 05:27:01 +03:00
Leo Yuriev
81661ff952
mdbx: add shared cache for oldest reader's txnid.
...
Change-Id: I48cbc778b873445dffa8ecef1fc3633e0193131f
2017-06-16 05:21:49 +03:00
Leo Yuriev
c01aeb5c68
mdbx: refine meta_txnid().
...
Change-Id: I4d78b2ebed8850c90dc762405ba939be7385c9a3
2017-06-16 05:21:49 +03:00
Leo Yuriev
ae71c2aa36
mdbx: simplify find-oldest inside mdbx_page_alloc().
...
Change-Id: I88dfc8ee268eba2452bffd3c4e6cfd066bcd8b04
2017-06-16 05:21:27 +03:00
Leo Yuriev
760f7d1331
mdbx: fix nasty 'inverted if-condition' inside mdbx_reader_check0().
...
Fix c2087f186ef5ae021bb1b9f6f8111e7b7eccffc1
2017-06-15 15:05:14 +03:00