Commit Graph

1612 Commits

Author SHA1 Message Date
Leonid Yuriev
2b2eedbbf0 mdbx: add POSIX-2008 note to README.
Change-Id: Ic9972a05226d5ba11e463b002c2cc886df9b033e
2019-08-11 00:23:18 +03:00
Leonid Yuriev
bdc77df921 mdbx: fix race-with-close for lck-posix.
Change-Id: Ie601ebbec8cc47d26935e12a57abe991aec1cb41
2019-08-11 00:07:21 +03:00
Leonid Yuriev
673f867e3c mdbx: minor refine Linux lck-implementation.
Change-Id: Ib95398f8d86eb94fc55b506066f78eda4a29f4a8
2019-08-10 23:25:17 +03:00
Leonid Yuriev
1e3637af59 mdbx-test: refine long_stochastic-script for FreeBSD compatibility.
Change-Id: I411b628d9381a54bebbea33a2bfde3145bdba74b
2019-08-10 23:24:31 +03:00
Leonid Yuriev
c6369e68a3 mdbx: draft support for non-Linux POSIX-platforms (FreeBSD, MacOS, etc).
Change-Id: Iaee2dc31b134fe92fc67508d011835a60f3723e6
2019-08-10 23:24:31 +03:00
Leonid Yuriev
ce64c5aa37 mdbx: use OFD (open file) locks on Linux.
Change-Id: Id9718da28d4e367b0ff10976d2afaaf3d18122fb
2019-08-10 12:53:16 +03:00
Leonid Yuriev
a008b0b16f mdbx: description of lck-implementation for Linux.
Change-Id: I8fe5f49a19e5cc61198ecd96dfe479d0e17c10a5
2019-08-09 21:36:02 +03:00
Leonid Yuriev
1798904cf4 mdbx: description of internal lck API.
Change-Id: Ic677ba62ca566409a44234a1c0d8b0b41158fe86
2019-08-09 21:34:19 +03:00
Leonid Yuriev
416a14fb85 Note about moving from Github.
The [repository was moved](https://abf.io/erthink/libmdbx) due to illegal discriminatory blocking of access from the territory of the Russian Crimea and for sovereign crimeans.

Crimea is Russia.

Change-Id: I5a4eb6b50be2e88f4dc6658d00331954e373603a
2019-07-27 22:15:45 +03:00
Leonid Yuriev
f0fb56415c mdbx-make: avoid multi-processing for cross-qemu (EPERM for alien shared mutex).
Change-Id: Ib4c75a5261d9c42c45cb972479479676e969be15
2019-07-22 01:24:04 +03:00
Leonid Yuriev
663f3f3c58 mdbx: conditionally use cacheflush() for linux < 2.6.11
Change-Id: Id34c67797e14f709f767bf1b687319cd2dfef874
2019-07-22 00:19:15 +03:00
Leonid Yuriev
a6bad26e1d mdbx: rename/clarify flush_noncoherent_cpu_writeback().
Change-Id: I05a5df8d2a283159f449fc1e68a14d0a1861a714
2019-07-21 22:52:21 +03:00
Leonid Yuriev
f39044124e mdbx: clarify/rework invalidate_mmap_noncoherent_cache() for MIPS.
Change-Id: I70c279c2ba67191c7cb93cd8875082eb9c8e58b7
2019-07-21 22:52:16 +03:00
Leonid Yuriev
cc75679214 mdbx: minor refine README.
Change-Id: Iec921f4d43313c86b1d5cfa8d9b736d111ab2e17
2019-07-19 06:17:12 +03:00
Leonid Yuriev
7b4f5d9c4b mdbx: updates the README to be less ugly.
Change-Id: I41835f184cf9cc8ea1db0337e01449150b0b185f
2019-07-18 20:20:56 +03:00
Leonid Yuriev
6413dcc2c6 mdbx-make: refine check-fault target (minor).
Change-Id: Iea5adada7ae78a91833419946adacefd903fec37
2019-07-18 16:57:29 +03:00
Leonid Yuriev
0b8ac37450 mdbx: reduces number of getpid() calls for checking PID against fork().
PID check could be ommited:
 - on Linux when madvise(MADV_DONTFORK) is available. i.e. after the fork()
    mapped pages will not be available for child process.
 - in Windows where fork() not available.

Change-Id: I4dd6bcb209cfc816ae3ec43825ea913d2249663c
2019-07-16 11:52:10 +03:00
Leonid Yuriev
7c7d5f4434 mdbx: made README content less ugly.
Change-Id: I537ab63a2d8a1cd3b84d5865f689ee53a29d4ad4
2019-07-16 03:16:25 +03:00
Leonid Yuriev
4adb1ab2d8 mdbx: portability - rename lck-posix.c to lck-linux.c
Change-Id: I0ecee2b1a5d8e664eb795e5f5df2fa2d3cb73c83
2019-07-15 00:29:46 +03:00
Leonid Yuriev
6eebac1510 mdbx: portability - drop unused mul_64x64_128().
Change-Id: I034778dd99242eae92e9122156639ba7329638de
2019-07-14 15:25:10 +03:00
Leonid Yuriev
814f8fe7ab mdbx-test: portability - undefine BSD's roundup2() macro.
Change-Id: Ib7aa43645cabba648ed6a43bfb26a7cc365d7feb
2019-07-14 15:23:38 +03:00
Leonid Yuriev
fac0c4c5c0 mdbx-test: portability - define bswap() macros conditionally.
Change-Id: I44d7daf71bd4dd66f8821af926f0c26578624e92
2019-07-14 15:21:47 +03:00
Leonid Yuriev
f37a760dda mdbx: portability - O# for ld's options.
Change-Id: Iace30da998ab10bb831ce0f59a2b85ef718d123c
2019-07-14 15:20:40 +03:00
Leonid Yuriev
2544a621e7 mdbx: portability - support for non-_GNU_SOURCE mode.
Change-Id: I9988d0ea8a9ddc06c799c65c4b2728bd17ff77e7
2019-07-14 15:13:43 +03:00
Leonid Yuriev
41f00485fd mdbx: portability - allows operation without mremap().
Change-Id: I7fed42d51259e582e9dbc401c78f7f829a80f71c
2019-07-14 15:11:59 +03:00
Leonid Yuriev
97e4f66d16 mdbx: portability - support for musl libc.
Change-Id: Ida8a3bd9da896bc6c00bef931ddf3dce65bef8eb
2019-07-14 15:08:10 +03:00
Leonid Yuriev
f2c3fcb6a4 mdbx: portability - define MDBX_ENODATA=-1 if ENODATA not available.
Change-Id: I75a072975e3cf07d801ae3782430c0033c271947
2019-07-14 15:08:06 +03:00
Leonid Yuriev
cf7160bda2 mdbx: portability - don't include malloc.h on BSD.
Change-Id: I67f580c073bfe52fbd2e4ff599354e6d0f597e95
2019-07-14 15:08:02 +03:00
Leonid Yuriev
097b274aa4 mdbx: portability - use C11 aligned_alloc().
Change-Id: I61819614ce355c8a2597c9b26997458b3d16081c
2019-07-14 15:07:54 +03:00
Leonid Yuriev
8f7ea1844b mddx: portability - compatibility with BSD-style __assert().
Change-Id: Ic18f2de8a23597c62fab07041aeb62960e82c37a
2019-07-14 15:07:47 +03:00
Leonid Yuriev
b3286bad16 mdbx: portability - fix __dll_hidden/__hidden typo.
Change-Id: Iccd225d8c77eafdccc7f021809c26843974153e4
2019-07-14 15:07:16 +03:00
Leonid Yuriev
3ac2af61aa mdbx: cleanup msvc-compat feature test defs.
Change-Id: I2c61bcecedc32beb3b0d70180da9e52cb7e6c9eb
2019-07-13 12:07:14 +03:00
Leonid Yuriev
ae34255350 mdbx-test: adds check for prerequisites to long_stochastic.sh
Change-Id: I1c671ce46140a41c33c6cb69b2444dc98c754929
2019-07-12 21:27:34 +03:00
Leonid Yuriev
eefbb7f063 mdbx: remove extra prep_backlog_data() inside update_gc().
Change-Id: Ic6250159c5abe03ed0705c7a432c5eb5b17b790e
2019-07-09 15:58:48 +03:00
Leonid Yuriev
9dc0b6a3f3 mdbx-test: partialy revert long_stochastic.sh changes.
Change-Id: I1fd4d601a91b50e82bbf8f183c968d31d671957e
2019-07-09 14:31:27 +03:00
Leonid Yuriev
4ecf78163d mdbx: fix/refine mdbx_find_largest().
Change-Id: Ib40ca0014da18793be0bdae5133806304ad42819
2019-07-09 03:27:23 +03:00
Leonid Yuriev
421f4b01e6 mdbx-test: refine internals (delays, logging).
Change-Id: Ife19e3bc1b124629891ba03fd9e1bf3b2ad3e301
2019-07-09 01:39:32 +03:00
Leonid Yuriev
53563e75bb mdbx: fix DB-shrinking race with copy-asis & readers.
Change-Id: I1e05616de03d814850a1c8ad20e83941b2d1c911
2019-07-09 00:41:04 +03:00
Leonid Yuriev
bd5078347b mdbx: refine backlog preparation inside update_gc().
Change-Id: Ib18842c2922afba794d6ab69337580bcea29bfe6
2019-07-09 00:41:04 +03:00
Leonid Yuriev
06f16464aa mdbx-test: adds more jitter while DB opening.
Change-Id: Ic0f03f4fbe064ea00f719baa11b28cc24aafcb5b
2019-07-07 21:21:54 +03:00
Leonid Yuriev
1f89c494ff mdbx: refines OFF_T_MAX if it is not defined.
Change-Id: Ic453140e01725493cad0c98e73244c747d5f490e
2019-07-07 20:04:39 +03:00
Leonid Yuriev
8606803344 mdbx: adds paranoid mvcc-checks into read transactions.
Change-Id: I7f0f05010306b02b3b1ab8478217de70ffd211a0
2019-07-07 19:51:06 +03:00
Leonid Yuriev
41de36e93d mdbx: avoids infinite copy_file_range-loop when file is unexpectedly truncated.
Change-Id: I5a542a49fa4ac9ced8ca60266a084d52d3618804
2019-07-07 18:42:14 +03:00
Leonid Yuriev
30ac62ceec mdbx-test: add coredump status.
Change-Id: I9003a891744eb78d91a3e279e20efcb4c1ad736c
2019-07-07 02:33:39 +03:00
Leonid Yuriev
7e1e142104 mdbx-chk: fix/refine error handling for sub-DBs.
Change-Id: I42460793bbe47815add1b3f61f3746f671a749d9
2019-07-07 01:47:10 +03:00
Leonid Yuriev
e2f37908b9 mdbx: fix/refine error handling while DB-pages walking.
Change-Id: If910e96cc7c30577531aab24b5a9573e5fe9126d
2019-07-06 21:25:11 +03:00
Leonid Yuriev
6d4e151ba8 mdbx-test: fix comment typo (minor).
Change-Id: I7bd25ccfc52371c78f9011ccd45203e44e619142
2019-07-02 00:21:51 +03:00
Leonid Yuriev
40112ebd62 mdbx: engage copy_file_range() for env_copy_as_is.
Change-Id: I7ea17914d80500ffa70451b80920d726f0e9c2f8
2019-07-01 18:37:36 +03:00
Leonid Yuriev
6960c45e59 mdbx: avoids EFAULT "Bad address" while copy-as-is if DB is swapped-out from RAM.
Change-Id: I711efc1c54a04745bd561bc5e1db5e6f6d8b7115
2019-07-01 17:55:58 +03:00
Leonid Yuriev
2e60256978 mdbx: drop EPIPE/SIGPIPE handling (since pipes are disallowed).
Change-Id: I56d4539333edea93cc1a2c3606cf959c82b98b19
2019-07-01 16:39:18 +03:00