40 Commits

Author SHA1 Message Date
Leo Yuriev
d5b0e68326 mdbx: fix merge/rebase error (remove mm_txnid field). 2017-05-29 20:44:17 +03:00
Leo Yuriev
0f676db491 mdbx: add locking while open/close/drop dbi-handles (avoid dbi-related races).
This avoid races and collisions between threads when opening,
closing and deleting DBI-handles.

unfortunately, this does not resolve collision in the case an one thread
closing the DBI-handle while the another thread performs transaction.

Change-Id: I48c3ffb11a8f83739fae1712db3476645f573e09
2017-05-29 19:38:43 +03:00
Leo Yuriev
a0ddf167dd mdbx: common database format for 32/64 targets (remove 'size_t' structures).
Change-Id: I2d7c77603ee27c5ae4b82f762a726f71136527c8
2017-05-28 18:35:58 +03:00
Leo Yuriev
f945e8a062 mdbx: fix cache-aligned size for MDBX_reader.
Change-Id: I1e48dd279106daa629fbcd427ec841828799c8f6
2017-05-28 17:06:04 +03:00
Leo Yuriev
60fed8bbca mdbx: fix first-rdonly-blocker bug. 2017-05-28 17:06:04 +03:00
Leo Yuriev
76f459c08e mdbx: two-phase txnid to avoid bottom-top DMA updates. 2017-05-28 17:06:04 +03:00
Leo Yuriev
1c170cb866 mdbx: add MAX_PAGENO, MIN_PAGENO, MAX_MAPSIZE, MIN_MAPSIZE. 2017-05-28 17:02:19 +03:00
Leo Yuriev
18cf804d0b mdbx: add STATIC_ASSERT_MSG, refine STATIC_ASSERT. 2017-05-28 17:02:19 +03:00
Leo Yuriev
9959fe8711 mdbx: reorder fields in metapages. 2017-05-28 17:02:19 +03:00
Leo Yuriev
9eeb00f448 mdbx: trinity of meta-pages. 2017-05-28 17:02:19 +03:00
Leo Yuriev
3a166e1970 test: temporary crutch. 2017-05-25 15:30:35 +03:00
Leo Yuriev
b94e761d73 mdbx: fix 'magic' bug. 2017-05-25 15:08:45 +03:00
Leo Yuriev
af7b468e63 mdbx: use uint64_t or size_t insted of off_t (buggy on Windows). 2017-05-24 18:50:24 +03:00
Leo Yuriev
96b9af0b4d mdbx: minor refine idl functions. 2017-05-24 17:06:18 +03:00
Leo Yuriev
924e81ed92 mdbx: refine includes, drop midl.h and mdbx_osal.h 2017-05-24 17:05:59 +03:00
Leo Yuriev
dd7855c30d mdbx: cleanup tabs (minor). 2017-05-24 13:37:06 +03:00
Leo Yuriev
06de7a5155 mdbx: rename the rest MDBX_xyz. 2017-05-24 02:24:38 +03:00
Leo Yuriev
8c18622592 mdbx: rework MDBX_val. 2017-05-23 22:18:21 +03:00
Leo Yuriev
ac8e987346 mdbx: rework MDBX_txn. 2017-05-23 22:18:21 +03:00
Leo Yuriev
34213c554a mdbx: rework MDBX_reader. 2017-05-23 22:18:21 +03:00
Leo Yuriev
a3ed42b999 mdbx: rework MDBX_page, drop COPY_PGNO. 2017-05-23 22:18:20 +03:00
Leo Yuriev
8f2c21e2ba mdbx: rework MDBX_node. 2017-05-23 22:18:20 +03:00
Leo Yuriev
0cd30792bb mdbx: split MDB_ID into pgno_t and txnid_t. 2017-05-23 19:57:26 +03:00
Leo Yuriev
8b9e391dd0 mdbx: cleanup internals (mostly formatting, but not only). 2017-05-23 17:45:58 +03:00
Leo Yuriev
d9eeac45b2 mdbx: fix extra-logging without NDEBUG, but with MDBX_DEBUG=0. 2017-05-19 07:39:50 +03:00
Leo Yuriev
00be62e235 mdbx: cleanup formating. 2017-05-18 15:57:06 +03:00
Leo Yuriev
4b2cb66453 mdbx: use mdbx_jitter4testing() for race detection. 2017-04-27 15:52:52 +03:00
Leo Yuriev
7204c46421 mdbx: add mdbx_osal_jitter() and mdbx_jitter4testing(). 2017-04-27 15:52:52 +03:00
Leo Yuriev
40dee6f05f mdbx: rework mdbx_read_header(). 2017-04-27 15:52:52 +03:00
Leo Yuriev
7ec571c9a0 mdbx: partial cleanup/reformat comments.
Change-Id: Ia96a5b307dc065b4d1920234c3cce93a0e585876
2017-04-27 01:36:31 +03:00
Leo Yuriev
55226499a8 mdbx: rework reader_check0() and mutex recovery. 2017-04-23 19:16:22 +03:00
Leo Yuriev
41c51fdac2 mdbx: refine debug macros/levels (initial). 2017-04-23 19:16:22 +03:00
Leo Yuriev
c1ad75d810 mdbx: check env-flags while opening live db. 2017-04-23 19:16:22 +03:00
Leo Yuriev
585496339a mdbx: kill/remove mm_txnid. 2017-04-23 19:16:22 +03:00
Leo Yuriev
1b490fda24 mdbx: add mdbx_dbi_sequence(). 2017-04-17 21:38:33 +03:00
Leo Yuriev
a3644aa6d0 mdbx: new testset (initial, stub).
Initial stub for https://github.com/ReOpen/libmdbx/issues/8
2017-04-10 23:20:22 +03:00
Leo Yuriev
095cd25e23 mdbx: check sys-pagesize for power-of-2. 2017-04-05 18:33:19 +03:00
Leo Yuriev
f8eb858ef3 mdbx: drop MDB_MAXKEYSIZE. 2017-03-31 17:04:36 +03:00
Leo Yuriev
cb6ac8912f mdbx: now MDBX_MODE_ENABLED always. 2017-03-31 12:46:09 +03:00
Leo Yuriev
0f49ed6e53 mdbx: big-bang (initial).
- OS Abstraction Layer;
 - Windows Support.
 - preparation for more changes.

Change-Id: I53772eda9091ba361cbc9a28656190ea0d4c5cee
2017-03-29 00:53:39 +03:00