~percona-dev/percona-server/5.1_slow_extended_tests_fixes

« back to all changes in this revision

Viewing changes to mysql-test/response-time-distribution.patch/percona_query_response_time-stored.result

  • Committer: Oleg Tsarev
  • Date: 2011-07-11 01:35:04 UTC
  • mfrom: (248.2.1 merge_5.1)
  • Revision ID: oleg.tsarev@percona.com-20110711013504-42y7opw33its2llp
Fixes for bugs #712393 #803867
1) I move query_response_time_collect call from intermediate of log_slow_statement to begin.
Reason of bug #712393 - log_slow_statement exit before call query_response_time_collect
2) I move all DBUG_EXECUTE_IF (what used in percona_query_response_time.test) from response_time_distribution.patch to slow_extended.patch
This functionality requires in the slow_extended sporadic fails
3) If we set "debug" variable:
    SET [SESSION|GLOBAL] debug="+d,query_exec_time_debug"
we can setup exact query_exec_time through set "debug" variable:
    SET [SESSION|GLOBAL] debug="+d,query_exec_time_TIMES";
where TIMES is [0.31|0.32|0.33|0.34|0.35|0.36|0.37|0.38|0.39|0.4|0.5|1.1|1.2|1.3|1.4|1.5|2.1|2.3|2.5]
After this commit we can also add special comment to the begin of query:
    /* query_exec_time="TIMES" */ QUERY;
This changes requires for test SQL_Slave_Thread query execution.
4) I replace logic:
/*----------------------------------------*/
    DBUG_EXECUTE_IF("query_exec_time_debug",
                    if (query_execution_time == 0)
                      opt_query_response_time_stats= 0;
                    else
                      opt_query_response_time_stats= 1;);
/*----------------------------------------*/
By following:
/*----------------------------------------*/
void query_response_time_collect_with_check(ulonglong query_exec_time)
{
  DBUG_ENTER("query_response_time_collect_with_check");
  bool collect= opt_query_response_time_stats;
  DBUG_EXECUTE_IF("query_exec_time_debug",
                  {
                    if (0 == query_exec_time)
                    {
                      collect= false;
                    }
                  });
  if(collect)
  {
    query_response_time_collect(query_exec_time);
  }
  DBUG_VOID_RETURN;
}
/*----------------------------------------*/
Otherwise debug-code has bad side-effect - set QUERY_RESPONSE_TIME_STATS to OFF if query shouldn't collect
5) I rewrite tests for response_time_distribution.patch, now all test unified and wouldn't have sporadic fails in the feature.
This change fixes the bug #803867.
6) I also remove mysql-test/response_time_distribution.patch and move to patch.
Now this is the suite "percona" and tests "query_response_time[-[stored|replication]]"
7) I also move have_response_time_distribution.[require|inc] to patch
8) I also add "percona_suite.patch" for include "percona" test suite to default suites list

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
SET SESSION debug="+d,response_time_distribution_log_only_more_300_milliseconds";
2
 
CREATE FUNCTION test_f()
3
 
RETURNS CHAR(30) DETERMINISTIC
4
 
BEGIN
5
 
DECLARE first  VARCHAR(5);
6
 
DECLARE second VARCHAR(5);
7
 
DECLARE result VARCHAR(20);
8
 
SELECT SLEEP(1.11) INTO first;
9
 
SET first= 'Hello';
10
 
SET second=', ';
11
 
SET result= CONCAT(first,second);
12
 
SET result= CONCAT(result,'world!');
13
 
RETURN result;
14
 
END/
15
 
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1;
16
 
Warnings:
17
 
Warning 1292    Truncated incorrect query_response_time_range_base value: '1'
18
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
19
 
Variable_name   Value
20
 
query_response_time_range_base  2
21
 
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 2;
22
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
23
 
Variable_name   Value
24
 
query_response_time_range_base  2
25
 
FLUSH QUERY_RESPONSE_TIME;
26
 
SELECT d.count,
27
 
(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
28
 
(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
29
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
30
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
31
 
FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
32
 
count   query_count     query_total     not_zero_region_count   region_count
33
 
SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
34
 
region_count
35
 
44
36
 
SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
37
 
time
38
 
      0.000001
39
 
      0.000003
40
 
      0.000007
41
 
      0.000015
42
 
      0.000030
43
 
      0.000061
44
 
      0.000122
45
 
      0.000244
46
 
      0.000488
47
 
      0.000976
48
 
      0.001953
49
 
      0.003906
50
 
      0.007812
51
 
      0.015625
52
 
      0.031250
53
 
      0.062500
54
 
      0.125000
55
 
      0.250000
56
 
      0.500000
57
 
      1.000000
58
 
      2.000000
59
 
      4.000000
60
 
      8.000000
61
 
     16.000000
62
 
     32.000000
63
 
     64.000000
64
 
    128.000000
65
 
    256.000000
66
 
    512.000000
67
 
   1024.000000
68
 
   2048.000000
69
 
   4096.000000
70
 
   8192.000000
71
 
  16384.000000
72
 
  32768.000000
73
 
  65536.000000
74
 
 131072.000000
75
 
 262144.000000
76
 
 524288.000000
77
 
 1048576.00000
78
 
 2097152.00000
79
 
 4194304.00000
80
 
 8388608.00000
81
 
TOO LONG
82
 
SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
83
 
SELECT test_f();
84
 
test_f()
85
 
Hello, world!
86
 
SELECT test_f();
87
 
test_f()
88
 
Hello, world!
89
 
SELECT test_f();
90
 
test_f()
91
 
Hello, world!
92
 
SELECT test_f();
93
 
test_f()
94
 
Hello, world!
95
 
SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
96
 
SELECT d.count,
97
 
(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
98
 
(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
99
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
100
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
101
 
FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
102
 
count   query_count     query_total     not_zero_region_count   region_count
103
 
4       4       4       1       44
104
 
SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
105
 
region_count
106
 
44
107
 
SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
108
 
time
109
 
      0.000001
110
 
      0.000003
111
 
      0.000007
112
 
      0.000015
113
 
      0.000030
114
 
      0.000061
115
 
      0.000122
116
 
      0.000244
117
 
      0.000488
118
 
      0.000976
119
 
      0.001953
120
 
      0.003906
121
 
      0.007812
122
 
      0.015625
123
 
      0.031250
124
 
      0.062500
125
 
      0.125000
126
 
      0.250000
127
 
      0.500000
128
 
      1.000000
129
 
      2.000000
130
 
      4.000000
131
 
      8.000000
132
 
     16.000000
133
 
     32.000000
134
 
     64.000000
135
 
    128.000000
136
 
    256.000000
137
 
    512.000000
138
 
   1024.000000
139
 
   2048.000000
140
 
   4096.000000
141
 
   8192.000000
142
 
  16384.000000
143
 
  32768.000000
144
 
  65536.000000
145
 
 131072.000000
146
 
 262144.000000
147
 
 524288.000000
148
 
 1048576.00000
149
 
 2097152.00000
150
 
 4194304.00000
151
 
 8388608.00000
152
 
TOO LONG
153
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
154
 
Variable_name   Value
155
 
query_response_time_range_base  2
156
 
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 10;
157
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
158
 
Variable_name   Value
159
 
query_response_time_range_base  10
160
 
FLUSH QUERY_RESPONSE_TIME;
161
 
SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
162
 
SELECT test_f();
163
 
test_f()
164
 
Hello, world!
165
 
SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
166
 
SELECT d.count,
167
 
(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
168
 
(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
169
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
170
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
171
 
FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
172
 
count   query_count     query_total     not_zero_region_count   region_count
173
 
1       1       1       1       14
174
 
SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
175
 
region_count
176
 
14
177
 
SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
178
 
time
179
 
      0.000001
180
 
      0.000010
181
 
      0.000100
182
 
      0.001000
183
 
      0.010000
184
 
      0.100000
185
 
      1.000000
186
 
     10.000000
187
 
    100.000000
188
 
   1000.000000
189
 
  10000.000000
190
 
 100000.000000
191
 
 1000000.00000
192
 
TOO LONG
193
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
194
 
Variable_name   Value
195
 
query_response_time_range_base  10
196
 
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 7;
197
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
198
 
Variable_name   Value
199
 
query_response_time_range_base  7
200
 
FLUSH QUERY_RESPONSE_TIME;
201
 
SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
202
 
SELECT test_f();
203
 
test_f()
204
 
Hello, world!
205
 
SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
206
 
SELECT d.count,
207
 
(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
208
 
(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
209
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
210
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
211
 
FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
212
 
count   query_count     query_total     not_zero_region_count   region_count
213
 
1       1       1       1       17
214
 
SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
215
 
region_count
216
 
17
217
 
SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
218
 
time
219
 
      0.000001
220
 
      0.000008
221
 
      0.000059
222
 
      0.000416
223
 
      0.002915
224
 
      0.020408
225
 
      0.142857
226
 
      1.000000
227
 
      7.000000
228
 
     49.000000
229
 
    343.000000
230
 
   2401.000000
231
 
  16807.000000
232
 
 117649.000000
233
 
 823543.000000
234
 
 5764801.00000
235
 
TOO LONG
236
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
237
 
Variable_name   Value
238
 
query_response_time_range_base  7
239
 
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 156;
240
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
241
 
Variable_name   Value
242
 
query_response_time_range_base  156
243
 
FLUSH QUERY_RESPONSE_TIME;
244
 
SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
245
 
SELECT test_f();
246
 
test_f()
247
 
Hello, world!
248
 
SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
249
 
SELECT d.count,
250
 
(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
251
 
(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
252
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
253
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
254
 
FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
255
 
count   query_count     query_total     not_zero_region_count   region_count
256
 
1       1       1       1       7
257
 
SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
258
 
region_count
259
 
7
260
 
SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
261
 
time
262
 
      0.000041
263
 
      0.006410
264
 
      1.000000
265
 
    156.000000
266
 
  24336.000000
267
 
 3796416.00000
268
 
TOO LONG
269
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
270
 
Variable_name   Value
271
 
query_response_time_range_base  156
272
 
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1000;
273
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
274
 
Variable_name   Value
275
 
query_response_time_range_base  1000
276
 
FLUSH QUERY_RESPONSE_TIME;
277
 
SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=1;
278
 
SELECT test_f();
279
 
test_f()
280
 
Hello, world!
281
 
SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
282
 
SELECT d.count,
283
 
(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
284
 
(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
285
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
286
 
(SELECT COUNT(*)     FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
287
 
FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
288
 
count   query_count     query_total     not_zero_region_count   region_count
289
 
1       1       1       1       6
290
 
SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
291
 
region_count
292
 
6
293
 
SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
294
 
time
295
 
      0.000001
296
 
      0.001000
297
 
      1.000000
298
 
   1000.000000
299
 
 1000000.00000
300
 
TOO LONG
301
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
302
 
Variable_name   Value
303
 
query_response_time_range_base  1000
304
 
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE = 1001;
305
 
Warnings:
306
 
Warning 1292    Truncated incorrect query_response_time_range_base value: '1001'
307
 
SHOW GLOBAL VARIABLES where Variable_name like 'QUERY_RESPONSE_TIME_RANGE_BASE';
308
 
Variable_name   Value
309
 
query_response_time_range_base  1000
310
 
SET GLOBAL ENABLE_QUERY_RESPONSE_TIME_STATS=0;
311
 
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE  =10;
312
 
DROP FUNCTION test_f;
313
 
SET SESSION debug="-d,response_time_distribution_log_only_more_300_milliseconds";