Commit Graph

1589 Commits

Author SHA1 Message Date
Leonid Yuriev
e04bfc05fa mdbx: rename MDBX_OSX_SPEED_INSTEADOF_DURABILITY option.
Change-Id: I1d0a05880507da0781ccd2bff5fa68610ad884a9
2019-08-20 15:04:52 +03:00
Leonid Yuriev
6f0a11f155 mdbx: merge branch 'osx-try'.
This resolves https://github.com/leo-yuriev/libmdbx/issues/49.

Change-Id: Ib20c3898e99ca229f10e7d41cda3989b8b4a832c
2019-08-20 03:18:31 +03:00
Leonid Yuriev
657d37c9e3 mdbx: add MDBX_OSX_SPEED_OR_DURABILITY build-time #define for MacOS. 2019-08-20 02:48:30 +03:00
Leonid Yuriev
ccbf3a2bcf mdbx: rework mdbx_filesync(). 2019-08-20 00:56:06 +03:00
Leonid Yuriev
261f697d8c mdbx: skip msync(MS_ASYNC) on Linux > 2.6.19.
Change-Id: Ic1f631ef856a09cf62353c2b0092b0341ecf4fa2
2019-08-19 21:31:23 +03:00
Leonid Yuriev
226cb3ac90 mdbx: use F_FULLFSYNC on MacOS. 2019-08-19 20:41:02 +03:00
Leonid Yuriev
691898d129 mdbx-make: fix so/dll-suffix for MacOS. 2019-08-19 19:10:41 +03:00
Leonid Yuriev
351939dd5d mdbx-test: reduce number of test-iteration for MacOS.
Change-Id: Ic9df6a9ce66ee2cc165e2525953eee998e653932
2019-08-19 16:43:41 +03:00
Leonid Yuriev
32a5b9089b mdbx-test: extend darwin-pthread-barrier for multiprocess-shared. 2019-08-13 02:44:45 +03:00
Leonid Yuriev
3f64d45819 mdbx-test: initial OSX support. 2019-08-13 02:16:15 +03:00
Leonid Yuriev
054a88c502 mdbx-test: add darwin-pthread-barrier.
Import from https://github.com/ademakov/DarwinPthreadBarrier with minor changes.
2019-08-13 02:10:03 +03:00
Leonid Yuriev
91088af935 mdbx: initial OSX support. 2019-08-13 02:10:03 +03:00
Leonid Yuriev
f5a25b8d5e mdbx-ci: enable OSX build for travis-ci.
Change-Id: Ib11e95942b27e131496b0804591f1d5b64cb9272
2019-08-13 02:10:03 +03:00
Leonid Yuriev
dcd4574510 mdbx-build: more Qt-Creator files.
Change-Id: Ie65ee47f14a403903c3e1a6dae96c00ff35bac25
2019-08-12 15:55:24 +03:00
Leonid Yuriev
7960f67ea6 mdbx-chk: "backed-pages > file-pages" isn't error in the non-exclusive or read-only modes. 2019-08-12 15:44:15 +03:00
Leonid Yuriev
bceace7a09 mdbx: clarify shrink/grow-related internals. 2019-08-12 15:44:15 +03:00
Leonid Yuriev
5244c1a9c2 mdbx-chk: "backed-pages less filesize" isn't an error on Windows.
Change-Id: Iea212a469225b0617221cdf292352eb1f896b4c6
2019-08-12 12:23:02 +03:00
Leonid Yuriev
cfaed9d761 mdbx-chk: don't use internal mdbx_filesize().
Change-Id: I539b92f345ba7884629b702b2568ca805466be3a
2019-08-12 11:40:58 +03:00
Leonid Yuriev
5b09105a6d mdbx-chk: check filesize/backed-pages/alloc-pages.
Change-Id: I231e461d81d3157441f67d2c28470283eb68920a
2019-08-12 02:55:53 +03:00
Leonid Yuriev
bc3d1a84cc mdbx-chk: use mdbx_env_stat2() and mdbx_env_stat2() to avoid races.
Change-Id: Ib956c19bec0b8bf9999cf1e97b8b630f119a0906
2019-08-12 02:55:53 +03:00
Leonid Yuriev
17407c9ecc mdbx: add mdbx_env_info2(txn) and mdbx_env_stat2(txn).
Change-Id: Ifd128185a084c9dc61da140eeeaaf4b6022d3537
2019-08-12 02:55:53 +03:00
Leonid Yuriev
d6a2f98ef5 mdbx: more env-signature checks.
Change-Id: I0155821e9b03731f755e43640d8dc9e5c12acf62
2019-08-11 22:54:06 +03:00
Leonid Yuriev
a6449f36f6 mdbx-chk: more for false-positive 'wrong idl entry' fix.
Change-Id: I66e42a98c8f4a5c58e12adb666984fed8a70bece
2019-08-11 21:41:01 +03:00
Leonid Yuriev
69f831af0b mdbx: refine lck-posix implementation. 2019-08-11 19:13:29 +03:00
Leonid Yuriev
036144eed4 mdbx-chk: fix false-positive 'wrong idl entry' error(s).
Исторически mdbx_env_info() получает информацию вне контекста
транзакции. Поэтому транзакция чтения, внутри которой проверяются записи
GC, может быть не последней. При этом в более новых транзакциях
последние страницы могут быть возвращены в пул нераспределенных с
уменьшением номера последней выделенной страницы. Тогда в проверяемом
снимке в записях GC могут быть номера страниц больше, чем возвращает
mdbx_env_info() в поле mi_last_pgno, что трактовалось в mdbx_chk как
ошибка.

Change-Id: I51ae102603e1eda77d6b6d511e2094410ab8c2c2
2019-08-11 16:49:15 +03:00
Leonid Yuriev
8917fb30bf mdbx: make lck-wait ops breakable for linux/posix.
Change-Id: Ieb113f3c01bceced99b122988f93331d5619c2be
2019-08-11 12:22:41 +03:00
Leonid Yuriev
bf0e0382fc mdbx: use O_DIRECT for db-copy.
Change-Id: Ib17fcdc2eba3382ed841a1e5e0a4f69f88c2491d
2019-08-11 01:14:52 +03:00
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