Leonid Yuriev
33a4f31f92
mdbx: fix reclaiming_detent() for out-of-txn case.
...
Change-Id: I5275f4f3676b125e860f6a7c204a5f9cdc65dd5f
2019-08-23 17:46:33 +03:00
Leonid Yuriev
4ceaf842fe
mdbx: add timed auto-sync feature.
...
Change-Id: Ia9b8529fda321d5f78b306f270d157a78f708916
2019-08-23 13:13:20 +03:00
Leonid Yuriev
68e0076ca3
mdbx: rework auto-sync by volume feature.
...
Change-Id: I0a34a65a974f28c6f0a950c11d55a43cfcfcab22
2019-08-23 12:05:09 +03:00
Leonid Yuriev
6f8238e1e9
mdbx: LCK-format version 3.
...
The LCK file is re-created at every opportunity when the process that
opens the database is the only one that works with it. Thus the change
of the format of the file LCK creates only minimal compatibility
problems.
Applications using different versions of _libmdbx_ will be able to work
with one database alternately, but not at the same time. This appears to
be an acceptable inconvenience in exchange for new features.
Change-Id: I9414b3fffd53d5519c8172c57345b1eaf6e51c77
2019-08-23 03:38:11 +03:00
Leonid Yuriev
de88707946
mdbx: don't shrink DB less largest reader inside mdbx_env_set_geometry().
...
Change-Id: I42a5d3a08313fb9590a6730bc0dc06c7b4f16634
2019-08-23 02:34:54 +03:00
Leonid Yuriev
0c63859459
mdbx: minor refine copy_asis().
...
Change-Id: I5d6240a99cba7e16e39f6466a7e582a068ab746a
2019-08-23 02:34:54 +03:00
Leonid Yuriev
65fd8be9b5
mdbx: fix env_sync_ex() for out-of-txn case.
...
Change-Id: Ie19bbe1d467ce4fc83f8dfc1e367070f532ee335
2019-08-23 02:34:45 +03:00
Leonid Yuriev
9168f8c69d
mdbx: fix NULL-deref bug (Coverity).
...
Change-Id: If48f1780d2887b6c2041effc6ca0f158eddb29c2
2019-08-21 02:07:02 +03:00
Leonid Yuriev
a6155bcf2a
mdbx: update READMEs (build
section).
...
Change-Id: I731737edc594f22f81cbfc080d857caeb31b9f9a
2019-08-21 01:05:57 +03:00
Leonid Yuriev
07aa657b63
mdbx-build: minor refine Makefile.
...
Change-Id: I7aa2cbd30da61ae47216d557a993ee3cca6edab5
2019-08-20 23:35:45 +03:00
Leonid Yuriev
887cbc7f00
mdbx: update README (MacOS support).
...
Change-Id: Id85b79fb605702fff606b62a5114951bfb9cb22e
2019-08-20 15:04:56 +03:00
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