1
CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) ENGINE=innodb;
2
SELECT variable_value INTO @commits FROM information_schema.global_status
3
WHERE variable_name = 'binlog_commits';
4
SELECT variable_value INTO @group_commits FROM information_schema.global_status
5
WHERE variable_name = 'binlog_group_commits';
6
SET DEBUG_SYNC= "commit_before_get_LOCK_commit_ordered SIGNAL group1_running WAIT_FOR group2_queued";
7
INSERT INTO t1 VALUES ("con1");
8
set DEBUG_SYNC= "now WAIT_FOR group1_running";
9
SET DEBUG_SYNC= "commit_after_prepare_ordered SIGNAL group2_con2";
10
SET DEBUG_SYNC= "commit_before_get_LOCK_commit_ordered SIGNAL group2_running";
11
SET DEBUG_SYNC= "commit_after_release_LOCK_log WAIT_FOR group3_committed";
12
SET DEBUG_SYNC= "commit_after_group_run_commit_ordered SIGNAL group2_visible WAIT_FOR group2_checked";
13
INSERT INTO t1 VALUES ("con2");
14
SET DEBUG_SYNC= "now WAIT_FOR group2_con2";
15
SET DEBUG_SYNC= "commit_after_prepare_ordered SIGNAL group2_con3";
16
INSERT INTO t1 VALUES ("con3");
17
SET DEBUG_SYNC= "now WAIT_FOR group2_con3";
18
SET DEBUG_SYNC= "commit_after_prepare_ordered SIGNAL group2_con4";
19
INSERT INTO t1 VALUES ("con4");
20
SET DEBUG_SYNC= "now WAIT_FOR group2_con4";
21
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
22
SELECT * FROM t1 ORDER BY a;
24
SET DEBUG_SYNC= "now SIGNAL group2_queued";
25
SELECT * FROM t1 ORDER BY a;
28
SET DEBUG_SYNC= "commit_before_get_LOCK_commit_ordered SIGNAL group3_con5";
29
SET DEBUG_SYNC= "commit_after_get_LOCK_log SIGNAL con5_leader WAIT_FOR con6_queued";
30
set DEBUG_SYNC= "now WAIT_FOR group2_running";
31
INSERT INTO t1 VALUES ("con5");
32
SET DEBUG_SYNC= "now WAIT_FOR con5_leader";
33
SET DEBUG_SYNC= "commit_after_prepare_ordered SIGNAL con6_queued";
34
INSERT INTO t1 VALUES ("con6");
35
SET DEBUG_SYNC= "now WAIT_FOR group3_con5";
36
SELECT * FROM t1 ORDER BY a;
39
SET DEBUG_SYNC= "now SIGNAL group3_committed";
40
SET DEBUG_SYNC= "now WAIT_FOR group2_visible";
41
SELECT * FROM t1 ORDER BY a;
47
SET DEBUG_SYNC= "now SIGNAL group2_checked";
48
SELECT * FROM t1 ORDER BY a;
56
SELECT variable_value - @commits FROM information_schema.global_status
57
WHERE variable_name = 'binlog_commits';
58
variable_value - @commits
60
SELECT variable_value - @group_commits FROM information_schema.global_status
61
WHERE variable_name = 'binlog_group_commits';
62
variable_value - @group_commits
64
SET DEBUG_SYNC= 'RESET';