Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						2b290e08ea 
					 
					
						
						
							
							mdbx: update ChangeLog.  
						
						... 
						
						
						
						Change-Id: Ib7af5490a2d8138bdd65403df3f0552e68e30425 
						
						
					 
					
						2021-02-01 02:14:28 +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 
							
						 
					 
					
						
						
							
						
						b57a338546 
					 
					
						
						
							
							mdbx-test: minor refactor mdbx_logger().  
						
						... 
						
						
						
						Change-Id: I058be7e01b5fc031610363bf6747ae7f62ba4c67 
						
						
					 
					
						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 
							
						 
					 
					
						
						
							
						
						bc33875a9e 
					 
					
						
						
							
							mdbx-test: more iterations and steps for long-stochastic scripts.  
						
						
						
						
					 
					
						2021-01-30 02:28:04 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						9ae054caf6 
					 
					
						
						
							
							mdbx: update ChangeLog.  
						
						... 
						
						
						
						Change-Id: Ifb831c86e79d3180943d978d316ef0e7b691c3b8 
						
						
					 
					
						2021-01-29 21:54:24 +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 
							
						 
					 
					
						
						
							
						
						4704e3a966 
					 
					
						
						
							
							mdbx-ci: add GithubCI badge status to the README.  
						
						... 
						
						
						
						Change-Id: I33b2e63e7903c7d744dd40921524c3f9ce6fb17e 
						
						
					 
					
						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 
							
						 
					 
					
						
						
							
						
						7e2de94e1f 
					 
					
						
						
							
							mdbx-make: show dist-verification build error(s) on failure.  
						
						... 
						
						
						
						Change-Id: I78f54341b10dd605eb37ceaa19c355df2e7e1707 
						
						
					 
					
						2021-01-29 04:38:13 +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 
							
						 
					 
					
						
						
							
						
						86db3670aa 
					 
					
						
						
							
							mdbx-doc: use multiple Doxygen's groups for cursor functions (haven't effect with current Doxygen).  
						
						... 
						
						
						
						Change-Id: I00263bfd19588e83410f449886b7eefce4bcf0e1 
						
						
					 
					
						2021-01-26 22:19:14 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						9b69eed5ce 
					 
					
						
						
							
							mdbx-doc: update ChangeLog.  
						
						... 
						
						
						
						Change-Id: I350611d4fc83d2cf764ee1d3bedcf9c86f1a7e26 
						
						
					 
					
						2021-01-26 22:19:14 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						aaaa54a397 
					 
					
						
						
							
							mdbx-doc: add link to heed Rust wrapper.  
						
						... 
						
						
						
						Change-Id: I1201bd062941d7cbeaafe0d0fae51ef36cd73e5a 
						
						
					 
					
						2021-01-26 22:19:14 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						7ae5ddefe5 
					 
					
						
						
							
							mdbx-doc: fix typo and add refs to c_crud_hints anchor.  
						
						... 
						
						
						
						Change-Id: I46b26ee6f9ca4e1f06c573b61a42d8fbedefd836 
						
						
					 
					
						2021-01-26 22:18:28 +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 
							
						 
					 
					
						
						
							
						
						0cfb853d7f 
					 
					
						
						
							
							mdbx-make: workaround for MacOS's buggy sed.  
						
						... 
						
						
						
						Resolve https://github.com/erthink/libmdbx/issues/156 
Change-Id: I69bf8378ff19fa2e6c03bf1955e4e6ba68383561 
						
						
					 
					
						2021-01-26 02:37:18 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						c918c98ffa 
					 
					
						
						
							
							mdbx-ci: use github actions instead of fallen travis-ci.  
						
						... 
						
						
						
						Change-Id: I091635fc16d7141bafe350d36fa8943e91807097 
						
						
					 
					
						2021-01-26 02:37:02 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						f2b9babfd3 
					 
					
						
						
							
							mdbx: update ChangeLog.  
						
						... 
						
						
						
						Change-Id: I429b8ca8400910ad5a25c7159d5060f0d0f1843f 
						
						
					 
					
						2021-01-26 01:37:32 +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 
							
						 
					 
					
						
						
							
						
						ee22ffb878 
					 
					
						
						
							
							mdbx-tools: using walked pages count while output statistics if traversal enabled.  
						
						
						
						
					 
					
						2021-01-25 21:35:59 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						a9cb6a6a90 
					 
					
						
						
							
							mdbx: minor fix ASAN controls.  
						
						
						
						
					 
					
						2021-01-25 21:35:59 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						0679ea07c6 
					 
					
						
						
							
							mdbx-make: rework verification amalgamated sources during make build.  
						
						... 
						
						
						
						Rework 0166071ec9https://github.com/erthink/libmdbx/issues/155 
Related to https://github.com/erthink/libmdbx/issues/156 
Change-Id: I40697203ff351d10709b3094d50b894c663c67c3 
						
						
					 
					
						2021-01-24 03:57:23 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						67b99eadbd 
					 
					
						
						
							
							mdbx-make: workaround for BSD's sed limitations.  
						
						... 
						
						
						
						Resolves https://github.com/erthink/libmdbx/issues/156 
Related to https://github.com/erthink/libmdbx/issues/155 
Change-Id: I68da3f40b055da08a905525a4a31b44018d419b0 
						
						
					 
					
						2021-01-24 03:57:04 +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 
							
						 
					 
					
						
						
							
						
						4e13d1239a 
					 
					
						
						
							
							mdbx: 'runtime options' feature release.  
						
						... 
						
						
						
						Resolve https://github.com/erthink/libmdbx/issues/128 
Change-Id: I67411f623ecb917d3be1cdc6aa78b879d8e68b4c 
						
						
					 
					
						2021-01-23 01:13:20 +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 
							
						 
					 
					
						
						
							
						
						0166071ec9 
					 
					
						
						
							
							mdbx-make: check building amalgamated sources during make dist.  
						
						... 
						
						
						
						Related to https://github.com/erthink/libmdbx/issues/155 
Change-Id: I45a4f6d3d62052d091c18eae634bbe418829761e 
						
						
					 
					
						2021-01-22 14:17:53 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						e0d4eaf819 
					 
					
						
						
							
							mdbx: minor refine mdbx_txn_merge().  
						
						
						
						
					 
					
						2021-01-21 22:45:34 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						0861a0652b 
					 
					
						
						
							
							mdbx: update ChangeLog.  
						
						... 
						
						
						
						Change-Id: I22490e504e503661dff13e6ca4abc75ac5ebc7b6 
						
						
					 
					
						2021-01-21 22:45:28 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						1d58ad6d9b 
					 
					
						
						
							
							mdbx: fix Valgrind/ASAN controls.  
						
						... 
						
						
						
						Change-Id: Idf526cbdb8ce8e43600efebbd1d12a8306a58184 
						
						
					 
					
						2021-01-21 22:45:28 +03:00 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						e1a022be27 
					 
					
						
						
							
							mdbx-tests: more wilcards for Valgrind's suppressions.  
						
						... 
						
						
						
						Change-Id: I1fbc1f5c38dd71d5937b8d0df813b05fdf1a6c43 
						
						
					 
					
						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 
						 
				 
			
				
					
						
							
							
								Leonid Yuriev 
							
						 
					 
					
						
						
							
						
						afe93137fc 
					 
					
						
						
							
							mdbx: fix minor assertions.  
						
						... 
						
						
						
						Change-Id: Ib3e2dcb2cb419f41717351b2ac2264ffed906014 
						
						
					 
					
						2021-01-21 22:45:28 +03:00