mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #
 | |
| # Desync will be done once the global read lock is acquired and resync will be done when 
 | |
| # it is released.
 | |
| # Node should temporarily not participate in flow control
 | |
| # so even if fc_limit has been reached, the master should be able to continue to
 | |
| # commit transactions.
 | |
| #
 | |
| 
 | |
| --source include/galera_cluster.inc
 | |
| --source include/have_innodb.inc
 | |
| 
 | |
| CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES (1);
 | |
| 
 | |
| --connection node_2
 | |
| --let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options`
 | |
| SET GLOBAL wsrep_provider_options = 'gcs.fc_limit=1';
 | |
| 
 | |
| # Block the slave applier thread 
 | |
| FLUSH TABLES WITH READ LOCK;
 | |
| 
 | |
| --connection node_1
 | |
| 
 | |
| # Without wsrep_desync = TRUE it would not be possible to perform 10 inserts on the master with gcs.fc_limit=1
 | |
| INSERT INTO t1 VALUES (2);
 | |
| INSERT INTO t1 VALUES (3);
 | |
| INSERT INTO t1 VALUES (4);
 | |
| INSERT INTO t1 VALUES (5);
 | |
| INSERT INTO t1 VALUES (6);
 | |
| INSERT INTO t1 VALUES (7);
 | |
| INSERT INTO t1 VALUES (8);
 | |
| INSERT INTO t1 VALUES (9);
 | |
| INSERT INTO t1 VALUES (10);
 | |
| --sleep 1
 | |
| 
 | |
| --connection node_2
 | |
| SET SESSION wsrep_sync_wait = 0;
 | |
| # No updates have arrived after the FLUSH TABLES
 | |
| SELECT COUNT(*) = 1 FROM t1;
 | |
| 
 | |
| --disable_query_log
 | |
| --eval SET GLOBAL wsrep_provider_options = '$wsrep_provider_options_orig';
 | |
| --enable_query_log
 | |
| UNLOCK TABLES;
 | |
| 
 | |
| SET SESSION wsrep_sync_wait = 1;
 | |
| # The slave is now fully caught up
 | |
| SELECT COUNT(*) = 10 FROM t1;
 | |
| 
 | |
| --connection node_1
 | |
| INSERT INTO t1 VALUES (11);
 | |
| 
 | |
| --connection node_2
 | |
| # Replication continues normally
 | |
| SELECT COUNT(*) = 11 FROM t1;
 | |
| 
 | |
| CALL mtr.add_suppression("Protocol violation");
 | |
| DROP TABLE t1;
 | |
| 
 | |
| --connection node_1
 | |
| CALL mtr.add_suppression("Protocol violation");
 | 
