Commit Graph

634 Commits

Author SHA1 Message Date
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
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
Leonid Yuriev
38110579ba mdbx: drops mdbx_write(), using mdbx_pwrite() instead of.
Change-Id: Iff3de2d5ef3fa2e92607d46b96d4526e464e593b
2019-07-01 16:39:18 +03:00
Leonid Yuriev
5b88fe819c mdbx: fix pwrite() for WRITE_MAX.
Change-Id: If4924d20c1e267c2d3a190c860b89fc2fda0d517
2019-06-24 02:14:50 +03:00
Leonid Yuriev
cf004dddbc mdbx: use single cursor instance inside mdbx_env_walk().
Change-Id: I72cade64468a42fd27ebb4955d71ecbbabe64987
2019-06-24 02:14:50 +03:00
Leonid Yuriev
728f98d3de mdbx-check: refine leaf-pages info (cosmetics).
Change-Id: I0fdb467f1c1d51bfcdcef5edfe99c8e9ad66037e
2019-06-23 14:26:11 +03:00
Leonid Yuriev
bbf8ef0a4b mdbx-chk: fix space-usage statistics info.
Change-Id: I0cbbbc481f2e6dc37b29f6603ec1ead43b5d1864
2019-06-23 14:07:13 +03:00
Leonid Yuriev
05cf301774 mdbx: bump version to v0.3.0
Change-Id: Ic09361eda834c75d4fdb37dcbe5e8edbf0317f9b
2019-06-22 22:23:25 +03:00
Leonid Yuriev
47beba1782 mdbx: more 'unlikely'.
Change-Id: I472e4a922590cd4680a48416611cfd894fa120db
2019-06-22 22:23:17 +03:00
Leonid Yuriev
e3f8dc5501 mdbx: rework RECLAIMING inside update_gc().
Change-Id: I9cf592476780bfdb346472baa12497d68a3d5aad
2019-06-22 22:23:17 +03:00
Leonid Yuriev
be0ec1d38d mdbx: fix GC corruption due deep recursive rebalance from update_gc().
Change-Id: I810250deb25cd625e737000282b434e3158ef8cc
2019-06-22 02:00:47 +03:00
Leonid Yuriev
eecec74e21 mdbx: more unlikely (minor).
Change-Id: Id6139473b3e6a7c3f099acc64db3180448294d0a
2019-06-21 02:11:28 +03:00
Leonid Yuriev
52bc4a7f41 mdbx-check: minor refine to avoid deeply recursion.
Change-Id: I67f83a232ef47899f43c242b7e6295de4d7ec909
2019-06-20 21:08:31 +03:00
Leonid Yuriev
49d0e872a1 mdbx: iterate & check before recursion inside mdbx_env_pgwalk().
Change-Id: I27058a33f6dece0c3f206283a42ff74e5727417f
2019-06-20 21:04:47 +03:00
Leonid Yuriev
c91cc85c1f mdbx-chk: log sub-DBs when verbose > 0 (cosmetic).
Change-Id: Ie73c0773929b51eb11fb02afe18bb01b59fb2612
2019-06-20 10:12:26 +03:00
Leonid Yuriev
cd75c4f081 mdbx-chk: avoid continuing to check bad records.
Change-Id: I03b9d425c8413d6cacc1b67ed4a8253a10a9d603
2019-06-20 00:52:00 +03:00
Leonid Yuriev
2bea60a1a4 mdbx-chk: avoid infinite loop/recursion while checking corrupted DB.
Change-Id: I3edb053e4baedced8ce8e8cfa25f9851eaca35d1
2019-06-19 15:08:50 +03:00
Leonid Yuriev
c05702eacf mdbx: add MDBX_PGWALK-tags and refine pgwalk internals.
Change-Id: I1f4eb79463dc6eec3d94d43baab0b28ceefa8c03
2019-06-19 15:05:10 +03:00
Leonid Yuriev
ce0e5d67f5 mdbx-tools: avoid output NaN from mdbx_chk for empty tables.
Change-Id: Ie1ff87da3a5e5e124eac1dafd7d5b456f8bde6e3
2019-06-10 13:28:31 +03:00
Leonid Yuriev
b443477869 mdbx: workaround for Coverity Scan.
Change-Id: I0e2d22bbbd38ac7978fb8879219ded79a5be1b0a
2019-05-28 21:19:54 +03:00
Leonid Yuriev
870c2a6f9c mdbx: symmetrical/invariant mdbx_estimate_range() for MDBX_EPSILON order.
Change-Id: Ida7e07d6429576c457bcd4d877a3c38c88dc2771
2019-05-26 00:59:35 +03:00
Leonid Yuriev
e26b7501eb mdbx: add MDBX_EPSILON support for mdbx_estimate_range().
Change-Id: I2d89a9f20bfa16c8f35a4381709bc54f86f0ff67
2019-05-25 19:10:38 +03:00
Leonid Yuriev
b4002a8484 libmdbx: fix TAGRET typo (minor).
Change-Id: Iffafbed7fdad3492aeb51f17caf8109a5b3e35c0
2019-05-02 16:46:05 +03:00
Leonid Yuriev
6e3725457d mdbx: fix minor comment typo.
Change-Id: I56a465e820a49d13c49fb3bd05add970b0eebb14
2019-03-14 00:13:13 +03:00
Leo Yuriev
73f8839a97 mdbx: minor refine/clarify estimation internals. 2019-03-06 16:45:49 +03:00
Leo Yuriev
501eb8c6ad mdbx: more __hot/__cold attributes for functions. 2019-03-06 16:45:01 +03:00
Leo Yuriev
ee899a21ed mdbx: treat pagesize == 0/INTPTR_MAX as aliases for MIN_PAGESIZE/MAX_PAGESIZE. 2019-03-05 17:55:33 +03:00
Leo Yuriev
3535e7a6d6 mdbx: returns as-is (i.e. negative) the estimation results for an inverted ranges. 2019-03-05 15:50:45 +03:00
Leonid Yuriev
8ddfd1f34a mdbx: adds functions for distance/move/range estimation (initial).
Change-Id: If59eccf7311123ab6384c4b93f9b1fed5a0a10d1
2019-03-05 02:57:15 +03:00
Leo Yuriev
7d383350e8 mdbx: workaround for musl-libc __assert_fail() prototype bug. 2019-03-04 14:41:50 +03:00
Leo Yuriev
9ffd17d58b mdbx: refine mdbx_filesync() to avoid hide fdatasync() error. 2019-03-04 13:53:05 +03:00
Leo Yuriev
9f410597df mdbx: checking only _POSIX_SYNCHRONIZED_IO for fdatasync (musl). 2019-03-04 13:39:33 +03:00
Leo Yuriev
cca2c91058 mdbx: don't check __GLIBC_PREREQ/_BSD_SOURCE/_XOPEN_SOURCE for use fsync (musl). 2019-03-04 13:34:38 +03:00
Leo Yuriev
46b551e386 mdbx: add in-source definition for _POSIX_C_SOURCE and _XOPEN_SOURCE (musl). 2019-03-04 13:33:27 +03:00
Leonid Yuriev
14ae9fb2a1 mdbx: env_set_geometry() treat zero-values also as defaults.
Change-Id: If8c6f7d7bbeffe71ae4e28f27184103dd1da257b
2019-03-02 14:26:09 +03:00
Leonid Yuriev
01797cf1bc mdbx: env_open() consider zero mode_t as open-existing flag.
Change-Id: I6f9dbf2059822afaba4c3de8f4ce380613a7dc36
2019-03-02 13:31:08 +03:00
Leonid Yuriev
7617cce0c6 mdbx-tools: fix Coverity warning (paranoia).
Change-Id: I3ff33a9eb2c58fe601566fd4101f9c95d76d29de
2019-02-27 23:26:15 +03:00
Leo Yuriev
44a067283a mdbx: fix comment typo (minor). 2019-02-12 13:39:16 +03:00
Leonid Yuriev
49fa9b9c35 mdbx: fix handling MDBX_APPENDDUP mode.
Change-Id: I36de2a8dcab5126dab3857a7840ab3904a1d19c8
2019-02-04 01:41:11 +03:00
Leonid Yuriev
0639f54280 mdbx-test: add 'append' testcase.
Change-Id: I71620ea1a019e16b8e3d84a81dcc042961eae5b5
2019-02-04 01:41:11 +03:00
Leonid Yuriev
73bef80347 mdbx-check: add checking for complete duplicates.
Change-Id: I8308b725418ef69188eeadfc656dead4ce9cee27
2019-02-04 01:32:15 +03:00
Leonid Yuriev
460751bc01 mdbx-chk: add '-i' option for custom comparators.
Change-Id: Ie3d7fdb3c3a881a484d351ca9a3160eb467b43b9
2019-02-04 01:32:15 +03:00
Leo Yuriev
309955be75 mdbx-load: add '-a' option for loading dumps of custom-sorted DBs.
Based on http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=commitdiff;h=aa77c832b8e6fc696078017f550d119cdfc0f232

Change-Id: If7de71c8f6ffc29d4316c6074995fab38f2c1b4b

+load

Change-Id: Iff6cbca2514840ee290f801e3b273edf160913b4
2019-02-04 00:06:39 +03:00
Leo Yuriev
9ba8434c1d mdbx: fix __ANDROID__ typo.
Thank to Howard Chu <hyc@openldap.org>.

Change-Id: Ibcbe2e4790a5df5758d9fd6c621793ea42a94682
2019-02-03 17:53:00 +03:00
Howard Chu
bfffaa66b8 mdbx: import - tweak mdb_page_split (ITS#8969).
Bump up number of keys for which we use fine-grained splitpoint search

Change-Id: Icca2e1953cbcd6898b790f657636c2195b397790
2019-02-03 13:07:17 +03:00
Leo Yuriev
9cc9116df3 mdbx: 2019 HNY.
Change-Id: Iec6b7affedef0ea89fad917eb17af7e8201a7482
2019-02-03 12:28:01 +03:00
Leonid Yuriev
08508d34b3 mdbx: MDBX_BAD_DBI instead of MDBX_NOTFOUND in case table was dropped.
Change-Id: I2894a5721d2be2bb982e7c7a607c6a0413f7e3ca
2019-01-27 00:17:57 +03:00