File: rpl_sql_delay_multi_source.test

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (131 lines) | stat: -rw-r--r-- 3,623 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#
# ==== Purpose ====
#
# This test checks if the sql delay is being applied correctly in a multi-source
# topology.
#
# ==== Implementation ====
# In server_1->server_2, server_3->server_2 topology
# The SQL_Delay in server_2 is set to 5 seconds and 8 seconds with respect to
# server_1 and server_3. For each for the six different transactions executed
# (two DDL, three DML and one multi-statement DML), the test verifies if the
# delay was the expected using replication timestamp infrastructure introduced
# by WL#7319.
#
# ==== References ====
#
# WL#7318 Delayed Replication: GTID based and relative to immediate master commit

--source include/big_test.inc
--source include/have_debug.inc
# Test requires master-info-repository=TABLE, relay-log-info-repository=TABLE
--source include/have_slave_repository_type_table.inc

--let $rpl_topology=1->2,3->2
--let $rpl_multi_source= 1
--let $rpl_skip_start_slave= 1
--source include/rpl_init.inc

--let $delay_1= 5
--let $delay_2= 8
--let $slave_sleep_1= 1
--let $slave_sleep_2= 2

--let $rpl_connection_name= server_2
--source include/rpl_connection.inc

--eval CHANGE REPLICATION SOURCE TO SOURCE_DELAY= $delay_1 for channel 'channel_1';
--let $rpl_channel_name= 'channel_1'
--source include/start_slave.inc

--eval CHANGE REPLICATION SOURCE TO SOURCE_DELAY= $delay_2 for channel 'channel_3';
--let $rpl_channel_name= 'channel_3'
--source include/start_slave.inc

--let $master= server_1
--let $slave= server_2
--let $rpl_channel_name= 'channel_1'
--let $slave_sleep= $slave_sleep_1

--let $rpl_connection_name= server_1
--source include/rpl_connection.inc

CREATE TABLE t1 (a INT);
--let $trx_num= 1
--source extra/rpl_tests/check_slave_delay_multi_source.inc

INSERT INTO t1 VALUES (1);
--let $trx_num= 2
--source extra/rpl_tests/check_slave_delay_multi_source.inc

UPDATE t1 SET a=2;
--let $trx_num= 3
--source extra/rpl_tests/check_slave_delay_multi_source.inc

DELETE FROM t1 WHERE a=2;
--let $trx_num= 4
--source extra/rpl_tests/check_slave_delay_multi_source.inc

START TRANSACTION;
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2);
INSERT INTO t1 VALUES (3);
COMMIT;
--let $trx_num= 5
--source extra/rpl_tests/check_slave_delay_multi_source.inc

DROP TABLE t1;
--let $trx_num= 6
--source extra/rpl_tests/check_slave_delay_multi_source.inc


#Do the transactions on the second master server_3

--let $master= server_3
--let $slave= server_2
--let $rpl_channel_name= 'channel_3'
--let $slave_sleep= $slave_sleep_2

--let $rpl_connection_name= server_3
--source include/rpl_connection.inc

CREATE TABLE t2 (a INT);
--let $trx_num= 1
--source extra/rpl_tests/check_slave_delay_multi_source.inc

INSERT INTO t2 VALUES (1);
--let $trx_num= 2
--source extra/rpl_tests/check_slave_delay_multi_source.inc

UPDATE t2 SET a=2;
--let $trx_num= 3
--source extra/rpl_tests/check_slave_delay_multi_source.inc

DELETE FROM t2 WHERE a=2;
--let $trx_num= 4
--source extra/rpl_tests/check_slave_delay_multi_source.inc

START TRANSACTION;
INSERT INTO t2 VALUES (1);
INSERT INTO t2 VALUES (2);
INSERT INTO t2 VALUES (3);
COMMIT;
--let $trx_num= 5
--source extra/rpl_tests/check_slave_delay_multi_source.inc

DROP TABLE t2;
--let $trx_num= 6
--source extra/rpl_tests/check_slave_delay_multi_source.inc

# Cleanup
--let $rpl_connection_name= server_2
--source include/rpl_connection.inc

--let $rpl_channel_name=
--source include/stop_slave_sql.inc
CHANGE REPLICATION SOURCE TO SOURCE_DELAY= 0 For channel 'channel_1';
CHANGE REPLICATION SOURCE TO SOURCE_DELAY= 0 For channel 'channel_3';
--source include/start_slave_sql.inc

--let $rpl_skip_sync= 1
--source include/rpl_end.inc