252 Commits

Author SHA1 Message Date
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