mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	We will remove the parameter innodb_disallow_writes because it is badly designed and implemented. The parameter was never allowed at startup. It was only internally used by Galera snapshot transfer. If a user executed SET GLOBAL innodb_disallow_writes=ON; the server could hang even on subsequent read operations. During Galera snapshot transfer, we will block writes to implement an rsync friendly snapshot, as follows: sst_flush_tables() will acquire a global lock by executing FLUSH TABLES WITH READ LOCK, which will block any writes at the high level. sst_disable_innodb_writes(), invoked via ha_disable_internal_writes(true), will suspend or disable InnoDB background tasks or threads that could initiate writes. As part of this, log_make_checkpoint() will be invoked to ensure that anything in the InnoDB buf_pool.flush_list will be written to the data files. This has the nice side effect that the Galera joiner will avoid crash recovery. The changes to sql/wsrep.cc and to the tests are based on a prototype that was developed by Jan Lindström. Reviewed by: Jan Lindström
		
			
				
	
	
		
			17 lines
		
	
	
		
			924 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			924 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| --source include/have_innodb.inc
 | |
| --source include/have_debug.inc
 | |
| --source include/not_valgrind.inc
 | |
| --source include/word_size.inc
 | |
| 
 | |
| --vertical_results
 | |
| --replace_regex /^\/\S+/PATH/ /\.\//PATH/
 | |
| select VARIABLE_NAME, SESSION_VALUE, DEFAULT_VALUE, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT, NUMERIC_MIN_VALUE, NUMERIC_MAX_VALUE, NUMERIC_BLOCK_SIZE, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT from information_schema.system_variables
 | |
|   where variable_name like 'innodb%' and
 | |
|   variable_name not in (
 | |
|     'innodb_version',                   # always the same as the server version
 | |
|     'innodb_numa_interleave',           # only available WITH_NUMA
 | |
|     'innodb_evict_tables_on_commit_debug', # one may want to override this
 | |
|     'innodb_use_native_aio',            # default value depends on OS
 | |
|     'innodb_buffer_pool_load_pages_abort')            # debug build only, and is only for testing
 | |
|   order by variable_name;
 |