Commit Graph

1668 Commits

Author SHA1 Message Date
Leonid Yuriev
42f8154c39 mdbx-cmake: rename MDBX_USE_VALGRIND option.
Change-Id: I985befb6c60e8a8c8db1b5d9dd085eb4645b038b
2019-10-25 08:10:15 +03:00
Leonid Yuriev
b905dea2ee mdbx: fix Coverity warning (insignificant).
Change-Id: I046b0e7d5b16f6f1b91dac4d96616dbcd7c601d2
2019-10-25 08:08:24 +03:00
cryptozoidberg
edf5ddad4f mdbx: get rid of macro redefinition warnings under MSVC.
This resolves https://github.com/leo-yuriev/libmdbx/pull/63

Change-Id: Id5ca071fe3060b8d508a28fd48ae13430a7e78a8
2019-10-24 22:15:28 +03:00
Leonid Yuriev
8de8072078 mdbx: minor refine options and build-info.
Change-Id: Iadabd8524991c10e76c0d38e4eef10c65224906e
2019-10-24 22:12:14 +03:00
Leonid Yuriev
7b2034c699 mdbx-ci: extend build-matrix for AppVeyour.
Change-Id: Ifd78c2449019dcac1ecb1449e847bc3be7362761
2019-10-24 22:12:14 +03:00
Leonid Yuriev
81fd0beb1a mdbx: rework/fix unaligned access.
Change-Id: Ib0208e78786ac84551384ed57ac580fe0717840e
2019-10-24 22:12:14 +03:00
Leonid Yuriev
b7d27c1b36 mdbx: rework internals for using C99 flexible array member (preparation for -fsanitize=undefined).
Change-Id: I0d1836d6108ef379c43231720ef703ff69fc426d
2019-10-24 22:12:14 +03:00
Leonid Yuriev
70350bad81 mdbx-cmake: require C99 or use C11 when available.
Change-Id: I241e8c38232750efb537a0b581f822540f207cdc
2019-10-24 22:12:14 +03:00
Leonid Yuriev
83a0c31b35 mdbx: converts macros to inline functions, rework page_fill_enough() and thresholds.
Change-Id: I18ff12bdcafac37cc73b6228788ce5bbc752773f
2019-10-24 22:12:14 +03:00
Leonid Yuriev
d24df41a67 mdbx-cmake: enable MSVC 2015. 2019-10-24 11:59:02 +03:00
Leonid Yuriev
ed515d4642 mdbx: fix static library build on Windows. 2019-10-24 11:51:25 +03:00
Leonid Yuriev
411ed3e578 mdbx: fix Coverity warnings (minor).
Change-Id: I8636560583c11eeaa6d37ba9f7f66e1afc2232da
2019-10-21 11:46:17 +03:00
Leonid Yuriev
0137d1f303 mdbx: alter Valgrind suppressions.
Change-Id: Ia662fe80eb22efb98a63acdf390e5e03cc5953b2
2019-10-21 10:00:55 +03:00
Leonid Yuriev
efa855b497 mdbx: drop unused dpl_mark4removal().
Change-Id: I23dcbbad8b0fc4691a755125c2e58fa9b529423b
2019-10-21 10:00:28 +03:00
Leonid Yuriev
2eab9c2957 mdbx: refine/optimize list-related loops.
Change-Id: I15b2305d1400819fdc1ae0ad306df70bc5f20388
2019-10-21 07:50:11 +03:00
Leonid Yuriev
72f2a315c4 mdbx-test: don't filter lib's output by test's log-level.
Change-Id: Ieb45a532aee9b2a3d8ef11eb315b7eb01c1c0ef1
2019-10-21 07:50:11 +03:00
Leonid Yuriev
e6462dfe58 mdbx: minor refine mdbx_chk output.
Change-Id: I2c2560910d2908afe0f4a3aee0dc465ca7e24030
2019-10-21 07:50:11 +03:00
Leonid Yuriev
f5d75a85b0 mdbx: minor refine setup_dxb() logging.
Change-Id: I985ded5fce6d829563591d9b5ddb5b172100e43d
2019-10-21 07:50:11 +03:00
Leonid Yuriev
081603e6bc mdbx: alter update-gc for intermediate refunding of pages.
Change-Id: I551e94ed897c04af09f59a3fd96c694ef243d3a5
2019-10-21 07:50:11 +03:00
Leonid Yuriev
7681132704 mdbx-test: more probability of zero-window (i.e. flipcoin_x4) for ttl and nested testcases.
Change-Id: Ida539a080f86e046c7f10320b504d58219560c3d
2019-10-21 07:50:11 +03:00
Leonid Yuriev
4e386be914 mdbx: don't hold dbi-lock during tree deletion inside mdbx_drop().
Change-Id: I29824271ba09a4443196bc1207279a257a8e26c0
2019-10-21 07:50:11 +03:00
Leonid Yuriev
b690415f44 mdbx-build: add test make-target.
Change-Id: Iffb3a0ce17622b51aca2649bcb4cb245e1546eea
2019-10-21 07:50:11 +03:00
Leonid Yuriev
15ce797863 mdbx: refine/optimize mdbx_page_alloc().
Change-Id: Iebbb8a611a82a379cf23b683bb21c9b6626ea9a5
2019-10-21 07:50:11 +03:00
Leonid Yuriev
36477ef408 mdbx: minor refine/optimize mdbx_page_new().
Change-Id: Ie1b227cbeceec8b1fc64630b8d1c12210d98dc20
2019-10-21 07:50:11 +03:00
Leonid Yuriev
7878b2e31d mdbx-test: less probability for aborting nested transactions in nested testcase.
Change-Id: Idf12b69313af7f11a0c9c457942d7a442e37e7b4
2019-10-21 07:50:11 +03:00
Leonid Yuriev
b11d655173 mdbx: refine/optimize update-gc (remove anything in our spill list from parent's dirty list).
Change-Id: I945bdbc1431bac39173121210e1a08787e027b0c
2019-10-21 07:50:11 +03:00
Leonid Yuriev
781a814864 mdbx: refine/optimize update-gc (filter-out list of dirty-pages from loose-pages).
Change-Id: I73caa11e8a6378c307eb2e0a8199d0428dc14e05
2019-10-21 07:50:11 +03:00
Leonid Yuriev
363841caf8 mdbx: rework/optimize pages refunding.
Change-Id: I9315ea9187eaff4572536ab9c895fb6995eebd94
2019-10-21 07:50:11 +03:00
Leonid Yuriev
7f0dd35702 mdbx: more checking in mdbx_dirtylist_check().
Change-Id: I4bf5b3ee03a816f34000586b760fd7b01994d3aa
2019-10-21 07:50:11 +03:00
Leonid Yuriev
5c54566c5c mdbx: rework/fix retire-to-parent-txn pages (fix LMDB bug).
Change-Id: I81c3d48f19b4c7e62d77cfecc167235374f66402
2019-10-21 07:50:11 +03:00
Leonid Yuriev
659933d0c9 mdbx: rework mdbx_page_flush(), providing flush_begin & flush_end.
Change-Id: Id7366d427d204b444ab76c880ad1c0757a7de94e
2019-10-21 07:50:11 +03:00
Leonid Yuriev
6a01955810 mdbx: rework atomic-ops & safe64_reset_compare() to avoid use libatomic on true-32-bit arches.
Change-Id: I27aa8dc9505a469e35a7fe06660e9944e4c1974c
2019-10-19 00:16:48 +03:00
Leonid Yuriev
73b60d991a mdbx-build: add -Wno-tautological-compare.
Change-Id: I8b0be4c9dfb8864cb50759d08e7d2700ed7b8c36
2019-10-17 00:37:59 +03:00
Leonid Yuriev
a907109cce mdbx: fix MDBX_node for big-endian.
Change-Id: I436fc01e379908df07bcb829f0d9cf6999c8c133
2019-10-16 14:22:38 +03:00
Leonid Yuriev
0f3994d506 mdbx: fix/refine mdbx_is_dirty().
Change-Id: I70bb46b47e7c313fdfd0b130ee55b82dd75e92d2
2019-10-16 11:34:33 +03:00
Leonid Yuriev
b84bb4f805 mdbx: add MDBX_TXNID_STEP macro for debugging.
Change-Id: I4768c8b39f3317ec3a5da8627d736f2f28bf0d51
2019-10-15 23:53:00 +03:00
Leonid Yuriev
8467552f0b mdbx: fix internal audit.
Change-Id: I9b3360216bbfc1a1a6f6052aca78331b01dc80ec
2019-10-15 23:52:17 +03:00
Leonid Yuriev
1794aeb79b mdbx-dist: refix typo of fixing typo ;)
Change-Id: If77d011ed1337f870fcc6dd5ad87266a9ad3a6e0
2019-10-15 22:31:02 +03:00
Leonid Yuriev
5f8ecf0144 mdbx: fix Valgrind support.
Change-Id: I246bddb6536fa03e46d302dcdc6700007ffbe06c
2019-10-15 21:54:38 +03:00
Leonid Yuriev
2280ab0513 mdbx-build: refine memcheck target.
Change-Id: I8551c5d7ce5249a16959d34c1272c38cd1ad2d27
2019-10-15 21:54:31 +03:00
Leonid Yuriev
a0e9c33e54 mdbx: rework page loosing/retirement.
Change-Id: I194bee1ba21f5bac53342924f00555620151a43d
2019-10-15 21:54:31 +03:00
Leonid Yuriev
ee77920a2e mdbx: refine loose-pages refunding.
Change-Id: I7b76476e8c0ac3d35c1de53edfc943a14389d167
2019-10-15 21:48:09 +03:00
Leonid Yuriev
06193f4267 mdbx: refine page-number-list checking.
Change-Id: I89524075b416eb8bc63b1e0910baf3a37d6589f4
2019-10-14 17:28:53 +03:00
Leonid Yuriev
137b19aac2 mdbx: workaround for Apple-LLVM bug.
Change-Id: Ib1b504240d71fe20cc306b81b175bbb63737bea0
2019-10-12 23:05:22 +03:00
Leonid Yuriev
3df5f60a70 mdbx: include <malloc_np.h> for FreeBSD & OpenBSD.
Change-Id: I4b9c29bf63a03c281017f50bbdfe3495740804af
2019-10-12 22:47:27 +03:00
Leonid Yuriev
bb922c208c mdbx: add mdbx_is_readahead_reasonable().
Change-Id: Iac090a9050d6b046b62b2c79cefbc70cc62c9144
2019-10-12 22:38:36 +03:00
Leonid Yuriev
3ce4c3a0e4 mdbx-test: minor refine actor_poll() for Windows.
Change-Id: Ic1d98ae9e6d8bd7534390b15682f0bc7d1e73fac
2019-10-12 11:10:45 +03:00
Leonid Yuriev
23733bf4af mdbx-test: rework/fix actor_poll() to avoid loosing SIGCHLD.
Change-Id: I93aa2aa40e07e807795e050cd468d77dab62e67a
2019-10-12 11:10:45 +03:00
Leonid Yuriev
c51a6e6d95 mdbx: move madvise(MADV_RANDOM) to under control of MDBX_NORDAHEAD flag.
Change-Id: Ied2473ad054797a20ec2c177106a9a7e85fab1d1
2019-10-12 11:07:21 +03:00
Leonid Yuriev
e04ea50c18 mdbx: refine madvise(MADV_REMOVE_OR_FREE_OR_DONTNEED), add 256K threshold.
Change-Id: I1fe314fa10062dca0870ec035454370bfacf20f0
2019-10-12 11:07:21 +03:00