mirror of
https://github.com/MariaDB/server.git
synced 2025-01-26 00:34:18 +01:00
87 lines
2.8 KiB
Text
87 lines
2.8 KiB
Text
CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) ENGINE=innodb;
|
|
SELECT variable_value INTO @commits FROM information_schema.global_status
|
|
WHERE variable_name = 'binlog_commits';
|
|
SELECT variable_value INTO @group_commits FROM information_schema.global_status
|
|
WHERE variable_name = 'binlog_group_commits';
|
|
connect con1,localhost,root,,;
|
|
connect con2,localhost,root,,;
|
|
connect con3,localhost,root,,;
|
|
connect con4,localhost,root,,;
|
|
connect con5,localhost,root,,;
|
|
connect con6,localhost,root,,;
|
|
connection con1;
|
|
SET DEBUG_SYNC= "commit_before_get_LOCK_after_binlog_sync SIGNAL group1_running WAIT_FOR group2_queued";
|
|
INSERT INTO t1 VALUES ("con1");
|
|
connection con2;
|
|
set DEBUG_SYNC= "now WAIT_FOR group1_running";
|
|
SET DEBUG_SYNC= "commit_after_prepare_ordered SIGNAL group2_con2";
|
|
SET DEBUG_SYNC= "commit_before_get_LOCK_after_binlog_sync SIGNAL group2_running";
|
|
SET DEBUG_SYNC= "commit_after_release_LOCK_log WAIT_FOR group3_committed";
|
|
SET DEBUG_SYNC= "commit_after_group_run_commit_ordered SIGNAL group2_visible WAIT_FOR group2_checked";
|
|
INSERT INTO t1 VALUES ("con2");
|
|
connection con3;
|
|
SET DEBUG_SYNC= "now WAIT_FOR group2_con2";
|
|
SET DEBUG_SYNC= "commit_after_prepare_ordered SIGNAL group2_con3";
|
|
INSERT INTO t1 VALUES ("con3");
|
|
connection con4;
|
|
SET DEBUG_SYNC= "now WAIT_FOR group2_con3";
|
|
SET DEBUG_SYNC= "commit_after_prepare_ordered SIGNAL group2_con4";
|
|
INSERT INTO t1 VALUES ("con4");
|
|
connection default;
|
|
SET DEBUG_SYNC= "now WAIT_FOR group2_con4";
|
|
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a
|
|
SET DEBUG_SYNC= "now SIGNAL group2_queued";
|
|
connection con1;
|
|
connection default;
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a
|
|
con1
|
|
connection con5;
|
|
SET DEBUG_SYNC= "commit_before_get_LOCK_after_binlog_sync SIGNAL group3_con5";
|
|
SET DEBUG_SYNC= "commit_after_get_LOCK_log SIGNAL con5_leader WAIT_FOR con6_queued";
|
|
set DEBUG_SYNC= "now WAIT_FOR group2_running";
|
|
INSERT INTO t1 VALUES ("con5");
|
|
connection con6;
|
|
SET DEBUG_SYNC= "now WAIT_FOR con5_leader";
|
|
SET DEBUG_SYNC= "commit_after_prepare_ordered SIGNAL con6_queued";
|
|
INSERT INTO t1 VALUES ("con6");
|
|
connection default;
|
|
SET DEBUG_SYNC= "now WAIT_FOR group3_con5";
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a
|
|
con1
|
|
SET DEBUG_SYNC= "now SIGNAL group3_committed";
|
|
SET DEBUG_SYNC= "now WAIT_FOR group2_visible";
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a
|
|
con1
|
|
con2
|
|
con3
|
|
con4
|
|
SET DEBUG_SYNC= "now SIGNAL group2_checked";
|
|
connection con2;
|
|
connection con3;
|
|
connection con4;
|
|
connection con5;
|
|
connection con6;
|
|
connection default;
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a
|
|
con1
|
|
con2
|
|
con3
|
|
con4
|
|
con5
|
|
con6
|
|
SELECT variable_value - @commits FROM information_schema.global_status
|
|
WHERE variable_name = 'binlog_commits';
|
|
variable_value - @commits
|
|
6
|
|
SELECT variable_value - @group_commits FROM information_schema.global_status
|
|
WHERE variable_name = 'binlog_group_commits';
|
|
variable_value - @group_commits
|
|
3
|
|
SET DEBUG_SYNC= 'RESET';
|
|
DROP TABLE t1;
|