Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						fd021d793a 
					 
					
						
						
							
							mdbx: fix MSVC warning.  
						
						... 
						
						
						
						More for https://github.com/erthink/libmdbx/issues/166 
Change-Id: I47a2ec72831c06695e7ef4c52a77039e52a718e2 
						
						
					 
					
						2021-03-09 12:59:54 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						cd90f831af 
					 
					
						
						
							
							mdbx: refine db growth step default.  
						
						... 
						
						
						
						Change-Id: Ief80441cb578ae37d5d7cee4766e57eaacb4bbde 
						
						
					 
					
						2021-03-09 12:59:27 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						8e51a10908 
					 
					
						
						
							
							mdbx: packing the 16-bit representations of grow step and shrink threshold values.  
						
						... 
						
						
						
						Using float point (exponential quantized) representation for internal 16-bit values
of grow step and shrink threshold when huge ones
.
To minimize the impact on compatibility, only the odd values inside the upper half
of the range (i.e. 32769..65533) are used for the new representation.
Resolve https://github.com/erthink/libmdbx/issues/166 
Change-Id: I273127c1842deef0d7d8885b55a805b1463556eb 
						
						
					 
					
						2021-03-09 12:54:48 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						ec95a50bb6 
					 
					
						
						
							
							mdbx: fix not setting the dirty flag for @MAIN when dropping DBI.  
						
						... 
						
						
						
						This fixes https://github.com/erthink/libmdbx/issues/168 
Change-Id: Ida9f11fbcea092af17946b95bfe4ac58b822a80c 
						
						
					 
					
						2021-03-06 20:40:15 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						b0d449565d 
					 
					
						
						
							
							mdbx: shrink dbi table immediately in the mdbx_dbi_close_locked().  
						
						... 
						
						
						
						Change-Id: Idaa5ec9791b5ffa4305e7f9f7a625fba5f956dd9 
						
						
					 
					
						2021-03-05 03:20:21 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						de13d6c823 
					 
					
						
						
							
							mdbx: merge branch 'master' into devel.  
						
						... 
						
						
						
						Change-Id: Icec2e7548923ef7b3e33bf50fc20842938d5eec5 
						
						
					 
					
						2021-03-04 19:23:09 +03:00 
						 
				 
			
				
					
						
							
							
								Erk 
							
						 
					 
					
						
						
							
						
						b2a0279253 
					 
					
						
						
							
							Fix compilation on build targets listed below MIPS  
						
						
						
						
					 
					
						2021-03-04 10:33:12 +01:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						dec11e639a 
					 
					
						
						
							
							mdbx: fix mdbx_dpl_alloc().  
						
						... 
						
						
						
						Change-Id: Ia7d4b1866ca3623668edffd56ab83e845f16b2a5 
						
						
					 
					
						2021-03-03 16:24:32 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						0cebc50291 
					 
					
						
						
							
							mdbx: refine page-rebalance.  
						
						... 
						
						
						
						Change-Id: Ia94379fa51eb5da1e1ec1a52cc1dd8b67ceb150a 
						
						
					 
					
						2021-03-03 16:05:52 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						46dcd6e7ca 
					 
					
						
						
							
							mdbx: (re)alloc dpl-list at txn start.  
						
						... 
						
						
						
						Change-Id: Ie35221666f09a189f5513e77d3ecb4056968334f 
						
						
					 
					
						2021-03-02 03:58:27 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						c8dccc9bc4 
					 
					
						
						
							
							mdbx: limits the initial size of dpl-list to the current db-size.  
						
						... 
						
						
						
						Change-Id: I5f575fc6168f50786b6f8a82ae020d323530a12e 
						
						
					 
					
						2021-02-28 01:02:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						72d978ee48 
					 
					
						
						
							
							mdbx: weakens checks during set the MDBX_opt_txn_dp_limit to avoid MDBX_EINVAL.  
						
						... 
						
						
						
						Change-Id: I4852261d0c45b726c60792463ab698538fa447e5 
						
						
					 
					
						2021-02-28 01:02:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						7fcf11013e 
					 
					
						
						
							
							mdbx: minor fix likely/unlikely inside mdbx_cursor_del().  
						
						... 
						
						
						
						Change-Id: I86cfc755eef7371ea96c0feb39bffd3ec5298b71 
						
						
					 
					
						2021-02-28 01:02:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						3fd739ea2c 
					 
					
						
						
							
							mdbx: add MDBX_DISABLE_PAGECHECKS build option.  
						
						... 
						
						
						
						Change-Id: Ia5e2727b74961e7f829f273225c5c1a6cc764b8e 
						
						
					 
					
						2021-02-07 02:53:54 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						c89f30e485 
					 
					
						
						
							
							mdbx: fix/rework C11 atomics usage to avoid performance regression.  
						
						... 
						
						
						
						Resolve https://github.com/erthink/libmdbx/issues/160 
Change-Id: Ic14ef8c9f1e4fb844952f51e81b58268d7939cfe 
						
						
					 
					
						2021-02-06 21:16:56 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						7e7d526ed5 
					 
					
						
						
							
							mdbx: minor fix txn_spill().  
						
						... 
						
						
						
						Change-Id: Ic624681d3a9e262b77f761796aabf0231019db72 
						
						
					 
					
						2021-02-06 19:34:26 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						0e8c913c57 
					 
					
						
						
							
							mdbx: minor refine node_search().  
						
						... 
						
						
						
						Change-Id: Ib9aaca3e7853b9986b6d70bc43a88e90d0a46c0c 
						
						
					 
					
						2021-02-06 19:33:07 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						892402a5d8 
					 
					
						
						
							
							mdbx: add missing unlikely() hints.  
						
						... 
						
						
						
						Change-Id: I0baae944b9d2a994ad65fbb57591c2cc8d35f0d3 
						
						
					 
					
						2021-02-06 19:31:04 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						0cc695e22e 
					 
					
						
						
							
							mdbx: minor simplify page_get().  
						
						... 
						
						
						
						Change-Id: I2a548ea008fad29da8382946dff3c7d9bffa1e85 
						
						
					 
					
						2021-02-06 19:30:05 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						8133d93678 
					 
					
						
						
							
							mdbx: add LIBMDBX_NO_EXPORTS_LEGACY_API build option.  
						
						... 
						
						
						
						Change-Id: I9d9dcffe63fce843e22132c3829adca57714d818 
						
						
					 
					
						2021-02-02 00:25:48 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						38a559b93e 
					 
					
						
						
							
							mdbx: Crutches for C11-atomics compiler's bugs.  
						
						... 
						
						
						
						Change-Id: I5a857aa56c831f00c4bc67c95d7aecabc29264da 
						
						
					 
					
						2021-02-01 20:55:41 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						25c4df0d3e 
					 
					
						
						
							
							mdbx: radix sort for large chunks of PNL and DPL.  
						
						... 
						
						
						
						More for https://github.com/erthink/libmdbx/issues/132 
Change-Id: I19b253f78069d4ecd4ec360a12121c78f182fc09 
						
						
					 
					
						2021-02-01 02:14:13 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						88bdf4b96f 
					 
					
						
						
							
							mdbx: avoid branches inside bsearch() loop.  
						
						... 
						
						
						
						Related for https://github.com/erthink/libmdbx/issues/132 
Change-Id: Ia843556cc7052e5081a98f56b43fd80e2d0a40c7 
						
						
					 
					
						2021-02-01 00:39:52 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						28bd5d81d2 
					 
					
						
						
							
							mdbx: incremental lazy merge sort for dirty-page list.  
						
						... 
						
						
						
						The main change for https://github.com/erthink/libmdbx/issues/132 
Change-Id: I9907f6abfcf77bd40c7a263f5adb5274d5445864 
						
						
					 
					
						2021-02-01 00:39:19 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						0620ec2f2e 
					 
					
						
						
							
							mdbx: merge branch master into the devel.  
						
						... 
						
						
						
						Change-Id: Iab3a0502577f6557e3f8fccc89df49aee372416e 
						
						
					 
					
						2021-01-31 23:21:16 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						077989bfed 
					 
					
						
						
							
							mdbx: adds pre- and post- gaps to dirty page list to avoid some comparisons and conditional branches.  
						
						... 
						
						
						
						More for https://github.com/erthink/libmdbx/issues/132 
Change-Id: I6562c5ff6c559341bb7bb64222b126f06cc13427 
						
						
					 
					
						2021-01-31 23:20:49 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						edb6d2d661 
					 
					
						
						
							
							mdbx: add audit after nested txn start.  
						
						... 
						
						
						
						Change-Id: I7601994d24e7d2a5b8e9b113f697e4a14b1d2e6a 
						
						
					 
					
						2021-01-31 23:20:49 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						df180d1d36 
					 
					
						
						
							
							mdbx: provide the gap/reserve for ability of merge sort dirty-page list.  
						
						... 
						
						
						
						Preparation for fix https://github.com/erthink/libmdbx/issues/132 
Change-Id: I4aac6927878eb0361588fbfcf9698ba6d2d5fc34 
						
						
					 
					
						2021-01-31 23:16:10 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						8b6608a9ca 
					 
					
						
						
							
							mdbx: fix dirtyroom inheritance for nested transactions.  
						
						... 
						
						
						
						Change-Id: If2036ab3b7909c51e54526a535d65cdee1e0b287 
						
						
					 
					
						2021-01-31 21:49:20 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						9f0ff865e8 
					 
					
						
						
							
							mdbx: use C11 atomics if available instead of legacy memory barriers.  
						
						... 
						
						
						
						This done better support architectures with a weak/relaxed memory consistency model (ARM, AARCH64, PPC, MIPS, RISC-V, etc).
Change-Id: Iee831c8dc564f1d027ff84b0d6daa559325d5a9b 
						
						
					 
					
						2021-01-30 02:28:12 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						f698f07ff9 
					 
					
						
						
							
							mdbx: fix operation for unusual small/large system page size.  
						
						... 
						
						
						
						More for https://github.com/erthink/libmdbx/issues/157 
Change-Id: I4f2ed54b50653d0375538b82c48590d1037cd93b 
						
						
					 
					
						2021-01-29 21:19:58 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						6cfac546a1 
					 
					
						
						
							
							mdbx: fix mdbx_env_get_option(MDBX_opt_sync_bytes) to return number of bytes instead of pages.  
						
						... 
						
						
						
						Change-Id: I815887e82946d9644b05549ec253a52b566c8565 
						
						
					 
					
						2021-01-29 19:55:40 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						9c9f6faf38 
					 
					
						
						
							
							mdbx: fix madvise_threshold for large system pages.  
						
						... 
						
						
						
						Fixed https://github.com/erthink/libmdbx/issues/157 
Change-Id: I0e880591d236b6ba96a38d2a3fa953695d9c4df0 
						
						
					 
					
						2021-01-29 04:58:32 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						0a2f2e28b4 
					 
					
						
						
							
							mdbx: fix minor signed/unsigned comparison warnings.  
						
						... 
						
						
						
						Change-Id: Ice6f9759560d5eda514112e838d57e63207a7559 
						
						
					 
					
						2021-01-27 19:23:07 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						62b2e31bf4 
					 
					
						
						
							
							mdbx: fix auto-recovery weak->steady with the same boot-id (don't truncate DB to size from steady-meta).  
						
						... 
						
						
						
						Change-Id: Ib1c7f845bdf49fb9101b01aa868f8567172e5590 
						
						
					 
					
						2021-01-27 16:48:03 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						943bb552a2 
					 
					
						
						
							
							mdbx: fix GC-slot cleanup inside mdbx_update_gc() in extra rare complex cases.  
						
						... 
						
						
						
						More for 5f1b684719https://github.com/erthink/libmdbx/issues/123 
Change-Id: I1b78d6be2babf9ffdd0b77e7b1ee53d1313977bb 
						
						
					 
					
						2021-01-26 10:28:39 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						251eda6fb8 
					 
					
						
						
							
							mdbx: HNY!  
						
						... 
						
						
						
						Change-Id: I86c7028001b349e3d06b837dc8e2f7e60fb3b1a2 
						
						
					 
					
						2021-01-26 07:27:13 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						4fd23c4716 
					 
					
						
						
							
							mdbx: fix minor debug typo.  
						
						... 
						
						
						
						Change-Id: Ieffd3cea351681c1d5ccf93b12953eb0d8abb6b9 
						
						
					 
					
						2021-01-25 23:26:53 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						5f1b684719 
					 
					
						
						
							
							mdbx: fix regression MDBX_KEYEXISTS during mdbx_commit_ex() and overwriting GC records.  
						
						... 
						
						
						
						Fix regression related to https://github.com/erthink/libmdbx/issues/123  and https://github.com/erthink/libmdbx/issues/128 .
Related to https://github.com/erthink/libmdbx/issues/131 .
В lifo-режиме при фиксации транзакции, записи в GC могли быть перезаписаны (с утечкой страниц БД), либо могла возникать ошибка MDBX_KEYEXISTS, по следующему сценарию:
- В истории БД были две транзакции с огромным кол-вом retired pages, после которых в GC остались две соответствующие записи.
- В ходе очередной транзакции первая из огромных GC-записей попадает в переработку и образует огромный reclaimed list.
- При фиксации транзакции производится попытка разбить огромный reclaimed list на чанки размером в одну страницу. Для этого требуется много id для записей, которые в соответствии с lifo должны быть максимально близки к голове GC, т. е. получены путем переработки последних записей GC.
- В ходе переработки последних записей очередь доходит до второй огромной записи, при этом переработка прерывается, ибо иначе reclaimed list переполнится.
- Однако прерывание переработки внутри mdbx_update_gc() трактовалось как отсутствие записей в GC, поэтому список доступных просто добавлялись соответствующие id-шники.
- Если в списке доступных id-шников для помещения в GC были переработанные, то записи с id по всему списку удалялись - тогда вторая большая запись (и возможно предыдущие) удалялись, а содержащиеся в них номера страниц выпадали из оборота.
- Если же в списке доступных id-шников не было переработанных, то чистка не проводилась - тогда при последующая попытка помещения чанков reclaimed list в GC завершалась ошибкой MDBX_KEYEXISTS, которая и возвращалась из mdbx_commit_ex().
Change-Id: I3e5d40ef7950b7476da0513c6836fcba1de74879 
						
						
					 
					
						2021-01-25 23:23:08 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						a9cb6a6a90 
					 
					
						
						
							
							mdbx: minor fix ASAN controls.  
						
						
						
						
					 
					
						2021-01-25 21:35:59 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						95ae324580 
					 
					
						
						
							
							mdbx: fix reclaimed-list allocation during nested txn start.  
						
						... 
						
						
						
						Change-Id: Ia70e01ed69a001249ce14b4930452a469d04b824 
						
						
					 
					
						2021-01-24 00:49:46 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						4ae2a107bf 
					 
					
						
						
							
							mdbx: add MDBX_opt_loose_limit runtime option.  
						
						... 
						
						
						
						More for https://github.com/erthink/libmdbx/issues/128 
Change-Id: I298bf1eef24575df72615ee07e93f5073405e8e0 
						
						
					 
					
						2021-01-22 23:52:03 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						dc34041600 
					 
					
						
						
							
							mdbx: alter defaults for MDBX_opt_rp_augment_limit and MDBX_opt_txn_dp_limit runtime options.  
						
						... 
						
						
						
						Change-Id: I08cdbfb18089a3fed4b32d931ca4423027a9939f 
						
						
					 
					
						2021-01-22 23:16:21 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						b1a2892038 
					 
					
						
						
							
							mdbx: fix minor Coverity warnings.  
						
						... 
						
						
						
						Change-Id: I0c5d23a36120b8d697887462a6ae86d66a435c3d 
						
						
					 
					
						2021-01-22 20:13:31 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						b82d1d5063 
					 
					
						
						
							
							mdbx: add MDBX_opt_spill_parent4child_denominator runtime option.  
						
						... 
						
						
						
						More for https://github.com/erthink/libmdbx/issues/128 
Change-Id: If1549c3855eb59c107eb115e6dbca515e81644f9 
						
						
					 
					
						2021-01-22 18:18:52 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						56aaad03bc 
					 
					
						
						
							
							mdbx: add MDBX_opt_spill_max_denominator and MDBX_opt_spill_min_denominator runtime options.  
						
						... 
						
						
						
						More for https://github.com/erthink/libmdbx/issues/128 
Change-Id: I6b1b00e30ac11e9c2e3d3d3a29cc73079b41d539 
						
						
					 
					
						2021-01-22 17:25:44 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						e0d4eaf819 
					 
					
						
						
							
							mdbx: minor refine mdbx_txn_merge().  
						
						
						
						
					 
					
						2021-01-21 22:45:34 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						1d58ad6d9b 
					 
					
						
						
							
							mdbx: fix Valgrind/ASAN controls.  
						
						... 
						
						
						
						Change-Id: Idf526cbdb8ce8e43600efebbd1d12a8306a58184 
						
						
					 
					
						2021-01-21 22:45:28 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						58e4eda1c6 
					 
					
						
						
							
							mdbx: fix spilled page list memleak.  
						
						... 
						
						
						
						Change-Id: I8b3b3664711943b0809be7bcc6580aafd4e4c286 
						
						
					 
					
						2021-01-21 22:45:28 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						d26ae6875b 
					 
					
						
						
							
							mdbx: fix assertion to avoid false-positive UB detection by CLANG/LLVM.  
						
						... 
						
						
						
						Assume this resolve https://github.com/erthink/libmdbx/issues/153 
Change-Id: I02ceba1063a338b6dedf17629b51b3466358b0b8 
						
						
					 
					
						2021-01-21 22:45:28 +03:00