129 Commits

Author SHA1 Message Date
Leo Yuriev
1d15ae4b13 mdbx: zeroing MDBX_page.mp_validator for Valgrind/AddressSanitizer. 2017-06-06 17:47:46 +03:00
Leo Yuriev
465459dc58 mdbx: add MDBX_txn.mt_owner and MDBX_THREAD_MISMATCH. 2017-06-06 17:11:29 +03:00
Leo Yuriev
3bf3a08f96 mdbx: fix write-txn thread cleanup. 2017-06-06 17:09:49 +03:00
Leonid Yuriev
318646794e mdbx: partial fix MSVC level-4 warnings. 2017-06-06 04:15:08 +03:00
Leonid Yuriev
bfa6dea784 mdbx: fix size_t/unsigned/int warnings.
Change-Id: Ic5a8684aed232b8b732d6e7a87a6757f3f7afcec
2017-06-06 04:15:08 +03:00
Leonid Yuriev
7e85ad82f1 mdbx: refine read_header(), add MDBX_TOO_LARGE.
Change-Id: I25b9bb2e3817993d627b2b784dfa496d9ba7e7b0
2017-06-06 04:15:08 +03:00
Leo Yuriev
61d7ea283f mdbx: size_t for sync_threshold and mapsize. 2017-06-06 04:15:08 +03:00
Leo Yuriev
802c10f13f mdbx: log2shift instead of multiplication by pagesize.
Change-Id: I72c4c7699a409795459b466ff74c388b15b13687
2017-06-06 04:15:08 +03:00
Leo Yuriev
59c22ab036 mdbx: use 32-bit pgno_t (page numbers).
Change-Id: Ie9f3528e12b7be27765c0225edde26e4d8282692
2017-06-06 04:15:08 +03:00
Leo Yuriev
1343b46466 mdbx: add txnid-list functions. 2017-06-06 04:15:08 +03:00
Leo Yuriev
52f52de2d5 mdbx: include meta-pages into a coredump. 2017-06-06 04:15:08 +03:00
Leo Yuriev
95ebdb7065 mdbx: MAX_PAGESIZE always 64K. 2017-06-06 04:15:08 +03:00
Leo Yuriev
61a3766e23 mdbx: update DB format and signatures.
Change-Id: I9c4b187e8ebc3df63fef15ae98872e27d56a01ab
2017-06-06 04:15:08 +03:00
Lorenz Bauer
d99b2a4b16 mdbx: use F_SETNOSIGPIPE to SIGPIPE husing on a OS X. 2017-06-06 04:15:08 +03:00
Leo Yuriev
98a8fbdc7a mdbx: restore SIGPIPE hushing in the db-copy-thread. 2017-06-06 04:15:08 +03:00
Leo Yuriev
009618560f mdbx: refine mdbx_is_dirty(). 2017-05-30 15:32:05 +03:00
Leo Yuriev
a36b065cd9 mdbx: logging MDBX_PROBLEM reasons. 2017-05-29 20:17:02 +03:00
Leo Yuriev
11e8727483 mdbx: fix missing braces. 2017-05-29 20:16:09 +03:00
Leo Yuriev
70fe982c3a mdbx: fix MDBX_WANNA_RECOVERY description. 2017-05-29 19:38:43 +03:00
Leo Yuriev
d91785f635 mdbx: disable unnecessary assertion in mdbx_is_dirty(). 2017-05-29 19:38:43 +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
bd5d092a2b mdbx: check system pagesize (paranoia).
Change-Id: I596c686a996f7d1521789f22900022c4da629e1b
2017-05-28 18:55:18 +03:00
Leo Yuriev
fca74ab80c mdbx: refine meta-commit in WRITEMAP mode.
Change-Id: Ieb53bf6144a104fc88b0b07b4abdde20f4b01978
2017-05-28 18:35:58 +03:00
Leo Yuriev
2347282b4f mdbx: add assertions for reclaiming-edge.
Change-Id: I87e11f69423b4e7841c4f8ec6b5ecfdff9e96b0d
2017-05-28 17:06:04 +03:00
Leo Yuriev
236ddda1ae mdbx: more assertions for mdbx_txn_renew0().
Change-Id: I3c179d105c3e6388c08b2c371ada4d457af50bed
2017-05-28 17:06:04 +03:00
Leo Yuriev
2ea97ae281 mdbx: refine find_oldest() and meta_head(). 2017-05-28 17:06:04 +03:00
Leo Yuriev
91bc3129d5 mdbx: refine mdbx_page_search().
Change-Id: I9c87ae2ffe317538813ebec971ad093936f4c504
2017-05-28 17:06:04 +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
bb5e1b43af mdbx: relax mdbx_is_dirrty() assertion for map-range. 2017-05-28 17:06:04 +03:00
Leo Yuriev
17c8057684 mdbx: fix gcc 'uninitialized' warning with -Og. 2017-05-28 17:06:04 +03:00
Leo Yuriev
77f0e5e38e mdbx: drop unused debug features. 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
bd70135db1 mdbx: re-read and check meta-pages in mdbx_read_header() for consistency. 2017-05-28 17:02:19 +03:00
Leo Yuriev
93c5a84bcd mdbx: more checks mdbx_read_header() for metapage's content. 2017-05-28 17:02:19 +03:00
Leo Yuriev
4293840055 mdbx: fix meta-invalidate race in MDBX_WRITEMAP mode (when target == head). 2017-05-28 17:02:19 +03:00
Leo Yuriev
f4d3b76f81 mdbx: minor refine and rename mdbx_sync_locked().
Change-Id: Iab650b091006e5646d9d22316d19aa58a517684b
2017-05-28 17:02:19 +03:00
Leo Yuriev
c02a3ac687 mdbx: ignore meta-pages with wrong pagesize. 2017-05-28 17:02:19 +03:00
Leo Yuriev
0e49b1b2b4 mdbx: update 'mapsize' while opening with txn-increment. 2017-05-28 17:02:19 +03:00
Leo Yuriev
5d836d2b03 mdbx: clarify steady/fluid/weak names of a head. 2017-05-28 17:02:19 +03:00
Leo Yuriev
47cc45dec4 mdbx: don't check present durability mode for MDBX_RDONLY. 2017-05-28 17:02:19 +03:00
Leo Yuriev
700f3e9c2a mdbx: more checks for meta-params. 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
141306644d mdbx: fix mdbx_env_copy_asis(). 2017-05-26 03:10:31 +03:00
Leo Yuriev
7315b99b9d mdbx: fix MSVC/Windows warnings. 2017-05-25 19:12:51 +03:00
Leo Yuriev
b9dbe7c577 mdbx: fix segfault and double-free (in case twice abortion of the same write-txn). 2017-05-25 18:39:45 +03:00
Leo Yuriev
96de36baef mdbx: refine mdbx_cursor_count() API. 2017-05-25 16:21:29 +03:00
Leo Yuriev
3a166e1970 test: temporary crutch. 2017-05-25 15:30:35 +03:00
Leo Yuriev
15e2a45425 mdbx: check size of lck-file. 2017-05-25 09:40:29 +03:00
Leo Yuriev
c335b16c81 mdbx: rework mapsize's stuff inside mdbx_setup_dxb(). 2017-05-25 09:40:29 +03:00