summaryrefslogtreecommitdiff
path: root/mysql-test/suite/perfschema/t/relaylog.test
blob: e2798e9b70744be6a09ff1a4ef44314ede8d7e5b (plain)
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
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA

# Tests for PERFORMANCE_SCHEMA

--source include/have_log_bin.inc
--source include/not_embedded.inc
--source include/have_perfschema.inc
--source include/master-slave.inc

--disable_warnings
drop table if exists test.t1;
--sync_slave_with_master
reset master;
--enable_warnings

create table test.t1(a int);
drop table test.t1;

--source include/show_binlog_events.inc

# Notes
#
# The point of this test is to make sure code is properly instrumented,
# where instruments have the proper key (binlog or relaylog),
# it is not to dive into statistics for each instruments.
# Different test execution sequence in different platforms do make the
# results vary, making the test results very sensitive to changes.
# To ensure robustness:
# - log file rotation is limited to file .000001 and .000002
# - statistics are normalized to "NONE" or "MANY"
# - statistics on ::update_cond conditions are not collected,
#   since this is too much dependent on execution.
#

connection master;
-- echo "============ Performance schema on master ============"

select
  substring(file_name, locate("master-", file_name)) as FILE_NAME,
  EVENT_NAME,
  if (count_read > 0, "MANY", "NONE") as COUNT_READ,
  if (count_write > 0,"MANY", "NONE") as COUNT_WRITE,
  if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ,
  if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE
  from performance_schema.file_summary_by_instance
  where file_name like "%master-%" order by file_name;

select * from performance_schema.file_summary_by_instance
  where file_name like "%slave-%" order by file_name;

-- echo "Expect a master binlog + binlog_index"

select
  substring(file_name, locate("master-", file_name)) as FILE_NAME,
  EVENT_NAME,
  if (count_read > 0, "MANY", "NONE") as COUNT_READ,
  if (count_write > 0,"MANY", "NONE") as COUNT_WRITE,
  if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ,
  if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE
  from performance_schema.file_summary_by_instance
  where event_name like "%binlog%" order by file_name;

select
  EVENT_NAME,
  if (count_read > 0, "MANY", "NONE") as COUNT_READ,
  if (count_write > 0,"MANY", "NONE") as COUNT_WRITE,
  if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ,
  if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE
  from performance_schema.file_summary_by_event_name
  where event_name like "%binlog%" order by event_name;

select
  EVENT_NAME,
  if (count_star > 0, "MANY", "NONE") as COUNT_STAR
  from performance_schema.events_waits_summary_global_by_event_name
  where event_name like "%MYSQL_BIN_LOG%"
  and event_name not like "%MYSQL_BIN_LOG::update_cond"
  order by event_name;

-- echo "Expect no slave relay log"

select * from performance_schema.file_summary_by_instance
  where event_name like "%relaylog%" order by file_name;

select * from performance_schema.file_summary_by_event_name
  where event_name like "%relaylog%" order by event_name;

select * from performance_schema.events_waits_summary_global_by_event_name
  where event_name like "%MYSQL_RELAY_LOG%"
  and event_name not like "%MYSQL_RELAY_LOG::update_cond"
  order by event_name;

sync_slave_with_master;
-- echo "============ Performance schema on slave ============"

select * from performance_schema.file_summary_by_instance
  where file_name like "%master-%" order by file_name;

select
  substring(file_name, locate("slave-", file_name)) as FILE_NAME,
  EVENT_NAME,
  if (count_read > 0, "MANY", "NONE") as COUNT_READ,
  if (count_write > 0,"MANY", "NONE") as COUNT_WRITE,
  if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ,
  if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE
  from performance_schema.file_summary_by_instance
  where file_name like "%slave-%"
  and (file_name not like "%slave-relay-bin.0%"
       or file_name like "%slave-relay-bin.000001"
       or file_name like "%slave-relay-bin.000002")
  order by file_name;

-- echo "Expect a slave binlog + binlog_index"

select
  substring(file_name, locate("slave-", file_name)) as FILE_NAME,
  EVENT_NAME,
  if (count_read > 0, "MANY", "NONE") as COUNT_READ,
  if (count_write > 0,"MANY", "NONE") as COUNT_WRITE,
  if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ,
  if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE
  from performance_schema.file_summary_by_instance
  where event_name like "%binlog%" order by file_name;

select
  EVENT_NAME,
  if (count_read > 0, "MANY", "NONE") as COUNT_READ,
  if (count_write > 0,"MANY", "NONE") as COUNT_WRITE,
  if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ,
  if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE
  from performance_schema.file_summary_by_event_name
  where event_name like "%binlog%" order by event_name;

select
  EVENT_NAME,
  if (count_star > 0, "MANY", "NONE") as COUNT_STAR
  from performance_schema.events_waits_summary_global_by_event_name
  where event_name like "%MYSQL_BIN_LOG%"
  and event_name not like "%MYSQL_BIN_LOG::update_cond"
  order by event_name;

-- echo "Expect a slave relay log"

select
  substring(file_name, locate("slave-", file_name)) as FILE_NAME,
  EVENT_NAME,
  if (count_read > 0, "MANY", "NONE") as COUNT_READ,
  if (count_write > 0,"MANY", "NONE") as COUNT_WRITE,
  if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ,
  if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE
  from performance_schema.file_summary_by_instance
  where event_name like "%relaylog%"
  and (file_name not like "%slave-relay-bin.0%"
       or file_name like "%slave-relay-bin.000001"
       or file_name like "%slave-relay-bin.000002")
  order by file_name;

select
  EVENT_NAME,
  if (count_read > 0, "MANY", "NONE") as COUNT_READ,
  if (count_write > 0,"MANY", "NONE") as COUNT_WRITE,
  if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ,
  if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE
  from performance_schema.file_summary_by_event_name
  where event_name like "%relaylog%" order by event_name;

select
  EVENT_NAME,
  if (count_star > 0, "MANY", "NONE") as COUNT_STAR
  from performance_schema.events_waits_summary_global_by_event_name
  where event_name like "%MYSQL_RELAY_LOG%"
  and event_name not like "%MYSQL_RELAY_LOG::update_cond"
  order by event_name;

--source include/stop_slave.inc