44 Commits

Author SHA1 Message Date
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
15ce797863 mdbx: refine/optimize mdbx_page_alloc().
Change-Id: Iebbb8a611a82a379cf23b683bb21c9b6626ea9a5
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
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
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
a907109cce mdbx: fix MDBX_node for big-endian.
Change-Id: I436fc01e379908df07bcb829f0d9cf6999c8c133
2019-10-16 14:22:38 +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
a0e9c33e54 mdbx: rework page loosing/retirement.
Change-Id: I194bee1ba21f5bac53342924f00555620151a43d
2019-10-15 21:54:31 +03:00
Leonid Yuriev
06193f4267 mdbx: refine page-number-list checking.
Change-Id: I89524075b416eb8bc63b1e0910baf3a37d6589f4
2019-10-14 17:28:53 +03:00
Leonid Yuriev
8921da2787 mdbx: fix internal comments.
Change-Id: Ica95587f74501e78259805cba4393a430af0437b
2019-10-12 11:07:21 +03:00
Leonid Yuriev
3c4d87520e mdbx: drop NEXT_LOOSE_PAGE macro.
Change-Id: Icee989a7bcd89a5fcd2664c6a9a99cdc546cc8f1
2019-10-11 01:06:26 +03:00
Leonid Yuriev
39c1238d8e mdbx: refine Valgrind support (i.e. avoid false-positives).
Change-Id: I688b2e905d0b705c34ab29df29bfd0a9bcdde8c9
2019-10-11 01:06:26 +03:00
Leonid Yuriev
273af26244 mdbx: rework nested transactions and write-transaction state.
This resolves https://github.com/leo-yuriev/libmdbx/issues/62

Change-Id: Icbd762ca69ab1ccf8c3440c71931d2ac14599a1b
2019-10-09 23:27:01 +03:00
Leonid Yuriev
1c9c637701 mdbx: refine internal audit for intermediate state checking.
Change-Id: Iba2b7e5b8df09374c9bf941cc5efa1ed6e826288
2019-10-09 13:37:46 +03:00
Leonid Yuriev
7d621f6f0a mdbx: auto-define _GNU_SOURCE under control of MDBX_DISABLE_GNU_SOURCE.
Change-Id: I314d88b86517e3c44ad35fe02d3a27cb987c6d60
2019-10-06 18:45:52 +03:00
Leonid Yuriev
440bfec193 mdbx: allow 256-byte pages.
Change-Id: I697de67683fb040ea0e360515a5a0839d97e9aa6
2019-10-05 23:36:55 +03:00
Leonid Yuriev
8768641872 mdbx: refine/simplify MDBX_node.
Change-Id: Idb3843727a409c3ef8d1d54e226a6f578a57c32e
2019-10-04 15:59:03 +03:00
Leonid Yuriev
e1e2e2e935 mdbx: provide additional info via mdbx_env_info_ex().
Change-Id: Icfc751da73f090833800ad5429a9b296b4e34700
2019-10-01 17:09:57 +03:00
Leonid Yuriev
f0246463c0 mdbx: rework sync_timestamp.
Change-Id: I0e9ef9722735f89055814ba7eec0610ecdea8f0a
2019-10-01 15:01:33 +03:00
Leonid Yuriev
83da954725 mdbx: rework env_sync() for MDBX_NOMETASYNC, add mdbx_env_sync_poll().
Change-Id: I4d212c663853b00e221d17cb8483353231497b48
2019-09-30 00:15:13 +03:00
Leonid Yuriev
1ab33333bc mdbx: refine options and build-info.
Change-Id: Ib1a778dd27a0ea8b3a05484b2208e2222736b2d3
2019-09-25 19:03:04 +03:00
Leonid Yuriev
40ee895aae mdbx: refine internal debug facilities.
Change-Id: I934cb8587f07c59268b16a0dd99daeb7ac440e62
2019-09-24 10:07:50 +03:00
Leonid Yuriev
a0025d84fd mdbx: refine txnid-safety for 32-bit archs.
Change-Id: I21d3a50fbc7ae0c625c51e919cb214740c1e97cb
2019-09-23 23:04:39 +03:00
Leonid Yuriev
b3c2118eb4 mdbx: explicity types inside LCK-file, reserve ABA-solver for 32-bit archs.
Change-Id: I2d1235365709858e2deb9f195f0fe8403721c705
2019-09-23 23:04:39 +03:00
Leonid Yuriev
5a94d734cc mdbx: auto-sorting for dirty-pages list.
Change-Id: I12f3de68c020aeacba2ac80cedf4cae6cb590c6b
2019-09-23 14:23:55 +03:00
Leo Yuriev
c80a5cabd6 mdbx: internal rename befree to retired.
Change-Id: Ic72449fe242df0f0f88b671e56570e00b5e6202f
2019-09-20 20:44:35 +03:00
Leo Yuriev
8423a0a8bd mdbx: txnid-safety for non-64-bit and/or not-atomic platforms. 2019-09-20 20:23:25 +03:00
Leonid Yuriev
d15a6b935c mdbx: avoid "unused static function" warnings.
Change-Id: I438a9fa3fa099ad96bca5c1af1f528da4a01ddff
2019-09-19 14:04:10 +03:00
Leonid Yuriev
2f2df1ee76 mdbx: implement MDBX_TXN_CHECKOWNER option.
Change-Id: Ia283dc9c4d984de1e74915481118f7f4fb5ba5c8
2019-09-18 22:34:05 +03:00
Leonid Yuriev
89db804c1a mdbx: refine geo-params management inside txn.
Change-Id: I70acfe4542ea3f8d878bdb7bfba422233dcce8ef
2019-09-17 23:53:38 +03:00
Leonid Yuriev
5f22a5568d mdbx: allow MDBX_MAPASYNC for particular txn.
Change-Id: I0ed1a7567a3f7bfbae2bfa6995ad8f6c327d91a9
2019-09-15 22:10:15 +03:00
Leonid Yuriev
1402a511a4 mdbx: drop dup-defines MDBX_TXN_NOMETASYNC, MDBX_TXN_NOSYNC, MDBX_TXN_RDONLY. etc.
Change-Id: I7edef9477e15cb6c2291fe82c1b014ff81d2383a
2019-09-15 18:19:46 +03:00
Leonid Yuriev
1d08f9e673 mdbx: refine mdbx.h and error strings (1 of 5).
Change-Id: Iaa6c4afeb9268d916ef1e8e23fdf12b7f603869f
2019-09-12 14:18:10 +03:00
Leonid Yuriev
6fc3b89f79 mdbx: add reader_check_timestamp info LCK.
Change-Id: I2f53b5996def8ff1d87a011fc662b94e2be3c467
2019-09-11 19:13:24 +03:00
Leonid Yuriev
8f08e1c7ed mdbx: fix cross-build & qemu-testing issues.
Change-Id: I6b2343cc4e08c3cb706a190c4c515965182733a2
2019-09-11 18:58:51 +03:00
Leonid Yuriev
aa1c609c28 mdbx: set MIN_TXNID=1.
Change-Id: If67d371c0681d7b85886c83b423d1b9c039d18c3
2019-09-10 19:27:46 +03:00
Leonid Yuriev
d1d1258591 mdbx-build: made 'config.h' optional.
Change-Id: Iafc968cb7000f77cf23169ce07b532386bbce029
2019-09-10 15:52:37 +03:00
Leonid Yuriev
3ec081c187 mdbx-build: add 'make dist' target.
Change-Id: I72c2ff2f90e9da4664bf542761fe445bb713a67a
2019-09-10 02:28:41 +03:00
Leonid Yuriev
e7095e9ada mdbx: remove UTF8-BOM (preparation for 'make dist').
Change-Id: I2d0ccc9f7bbed6d57b2fe6ef156f33531a4eeb69
2019-09-10 02:18:50 +03:00
Leonid Yuriev
449307a69f mdbx-build: sourcery pinning (but cmake requires manually config-files removal for now). 2019-09-09 14:29:05 +03:00
Leonid Yuriev
263837094e mdbx-build: refine CMake scripts, add build options.
Change-Id: Ie3db2f6439d5cc7ef3cd9ebb5b8e5d5d34f743dd
2019-09-03 02:56:01 +03:00
Leonid Yuriev
098f8a0d77 mdbx: add MDBX_READERS_LIMIT.
Change-Id: I2ee97004c084aeb6290c56b8f6415adc464a1bcb
2019-09-03 02:43:14 +03:00
Leonid Yuriev
5a87faf9af mdbx-build: start using CMake (incomplete; no properly installation for now). 2019-09-03 02:33:57 +03:00
Leonid Yuriev
f81374a9ce mdbx-build: amalgamation.
Change-Id: Ic32de6ee119df2bc12136b882f4f7cabaa1314a9
2019-09-03 02:30:55 +03:00