File: gr_singlewriter_perfschema.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 (189 lines) | stat: -rw-r--r-- 6,724 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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
################################################################################
# Test to verify the value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE in
# performance_schema.replication_group_communication_information
#
# Test:
# ====
# 1. Start GR group with 3 servers.
# 2. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 0 on all servers.
# 3. Change the value of group_replication_paxos_single_leader to 1
#    on all servers and restart GR.
# 4. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 1 on all servers.
# 5. Switch to single-primary mode.
# 6. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 1 on all servers.
# 7. Change value of group_replication_paxos_single_leader to 1 on 2 servers.
# 8. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 1 on all servers.
# 9. Change communication protocol to 8.0.21.
# 10. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 0 on all servers.
# 11. Switch to multi-primary mode.
# 12. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 0 on all servers.
# 13. Change communication protocol to 8.0.27.
# 14. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 1 on all servers.
# 15. Cleanup
#
################################################################################
--source include/big_test.inc
--source include/have_group_replication_plugin.inc

# 1. Start GR group with 3 servers
--let $rpl_server_count = 3
--source include/group_replication.inc

# 2. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 0 on all servers.
--let $single_leader_capable = 0
--source include/gr_assert_write_consensus_single_leader_capable.inc

# 3. Change the value of group_replication_paxos_single_leader to 1
#    on all servers and restart GR.
--let $rpl_connection_name= server3
--source include/rpl_connection.inc
--source include/stop_group_replication.inc

--let $rpl_connection_name= server2
--source include/rpl_connection.inc
--source include/stop_group_replication.inc

--let $rpl_connection_name= server1
--source include/rpl_connection.inc
--source include/stop_group_replication.inc
SET GLOBAL group_replication_paxos_single_leader = 1;
--source include/start_and_bootstrap_group_replication.inc

--let $rpl_connection_name= server2
--source include/rpl_connection.inc
SET GLOBAL group_replication_paxos_single_leader = 1;
--source include/start_group_replication.inc

--let $rpl_connection_name= server3
--source include/rpl_connection.inc
SET GLOBAL group_replication_paxos_single_leader = 1;
--source include/start_group_replication.inc

# 4. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 1 on all servers.
--let $single_leader_capable = 1
--source include/gr_assert_write_consensus_single_leader_capable.inc

# 5. Switch to single-primary mode.
SELECT group_replication_switch_to_single_primary_mode();

# 6. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 1 on all servers.
--let $single_leader_capable = 1
--source include/gr_assert_write_consensus_single_leader_capable.inc

# 7. Change value of group_replication_paxos_single_leader to 1 on 2 servers.
--let $rpl_connection_name= server2
--source include/rpl_connection.inc
SET GLOBAL group_replication_paxos_single_leader = 0;

--let $rpl_connection_name= server3
--source include/rpl_connection.inc
SET GLOBAL group_replication_paxos_single_leader = 0;

# 8. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 1 on all servers.
--let $single_leader_capable = 1
--source include/gr_assert_write_consensus_single_leader_capable.inc

# 9. Change communication protocol to 8.0.21. Must change
# group_replication_paxos_single_leader to OFF

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

--source include/stop_group_replication.inc
--eval SET GLOBAL group_replication_paxos_single_leader = "OFF"

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

--source include/stop_group_replication.inc
--eval SET GLOBAL group_replication_paxos_single_leader = "OFF"

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

--source include/stop_group_replication.inc
--eval SET GLOBAL group_replication_paxos_single_leader = "OFF"

--source include/start_and_bootstrap_group_replication.inc

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

--source include/start_group_replication.inc

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

--source include/start_group_replication.inc

SELECT group_replication_set_communication_protocol("8.0.21");

# 10. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 0 on all servers.
--let $single_leader_capable = 0
--source include/gr_assert_write_consensus_single_leader_capable.inc

# 11. Switch to multi-primary mode.
SELECT group_replication_switch_to_multi_primary_mode();

# 12. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 0 on all servers.
--let $single_leader_capable = 0
--source include/gr_assert_write_consensus_single_leader_capable.inc

# 13. Change communication protocol to 8.0.27.
SELECT group_replication_set_communication_protocol("8.0.27");

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

--source include/stop_group_replication.inc
--eval SET GLOBAL group_replication_paxos_single_leader = "ON"

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

--source include/stop_group_replication.inc
--eval SET GLOBAL group_replication_paxos_single_leader = "ON"

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

--source include/stop_group_replication.inc
--eval SET GLOBAL group_replication_paxos_single_leader = "ON"

--source include/start_and_bootstrap_group_replication.inc

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

--source include/start_group_replication.inc

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

--source include/start_group_replication.inc

# 14. Value of WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE is 1 on all servers.
--let $single_leader_capable = 1
--source include/gr_assert_write_consensus_single_leader_capable.inc

# Cleanup

# Change the value to 0 in all servers and restart GR.

--let $rpl_connection_name= server3
--source include/rpl_connection.inc
--source include/stop_group_replication.inc
SET GLOBAL group_replication_paxos_single_leader = 0;

--let $rpl_connection_name= server2
--source include/rpl_connection.inc
--source include/stop_group_replication.inc
SET GLOBAL group_replication_paxos_single_leader = 0;

--let $rpl_connection_name= server1
--source include/rpl_connection.inc
--source include/stop_group_replication.inc
SET GLOBAL group_replication_paxos_single_leader = 0;

--let $rpl_group_replication_reset_persistent_vars= 1
--source include/group_replication_end.inc