Skip to content

Commit fd250d2

Browse files
hermanleeinikep
authored andcommitted
Update rocksdb to 8.3.fb
Upstream commit ID: facebook/mysql-5.6@e7877a4 PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951) Summary: Update the rocksdb submodule to 8.3.fb and update the bloomfilter tests due to changes in bloomfilter statistics. update-submodule: rocksdb Differential Revision: D46623439 fbshipit-source-id: 5814bb89a4d120c5d30dbc9b170eed89012de83e
1 parent 74e4a76 commit fd250d2

File tree

12 files changed

+448
-133
lines changed

12 files changed

+448
-133
lines changed

mysql-test/suite/rocksdb/include/bloomfilter.inc

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,22 @@ let ddl= $MYSQL_TMP_DIR/bloomfilter_create.sql;
66
DELIMITER //;
77
CREATE PROCEDURE bloom_start()
88
BEGIN
9-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
10-
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
9+
select sum(variable_value) into @sf from performance_schema.global_status
10+
where variable_name in (
11+
'rocksdb_last_level_seek_filter_match',
12+
'rocksdb_last_level_seek_filtered',
13+
'rocksdb_non_last_level_seek_filter_match',
14+
'rocksdb_non_last_level_seek_filtered');
15+
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
1116
END//
1217
CREATE PROCEDURE bloom_end()
1318
BEGIN
14-
select case when variable_value-@c > 0 then 'true' else 'false' end as checked from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
19+
select case when sum(variable_value)-@sf > 0 then 'true' else 'false' end as checked from performance_schema.global_status
20+
where variable_name in (
21+
'rocksdb_last_level_seek_filter_match',
22+
'rocksdb_last_level_seek_filtered',
23+
'rocksdb_non_last_level_seek_filter_match',
24+
'rocksdb_non_last_level_seek_filtered');
1525
END//
1626
DELIMITER ;//
1727

mysql-test/suite/rocksdb/r/bloomfilter.result

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
CREATE PROCEDURE bloom_start()
22
BEGIN
3-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
3+
select sum(variable_value) into @sf from performance_schema.global_status
4+
where variable_name in (
5+
'rocksdb_last_level_seek_filter_match',
6+
'rocksdb_last_level_seek_filtered',
7+
'rocksdb_non_last_level_seek_filter_match',
8+
'rocksdb_non_last_level_seek_filtered');
49
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
510
END//
611
CREATE PROCEDURE bloom_end()
712
BEGIN
8-
select case when variable_value-@c > 0 then 'true' else 'false' end as checked from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
13+
select case when sum(variable_value)-@sf > 0 then 'true' else 'false' end as checked from performance_schema.global_status
14+
where variable_name in (
15+
'rocksdb_last_level_seek_filter_match',
16+
'rocksdb_last_level_seek_filtered',
17+
'rocksdb_non_last_level_seek_filter_match',
18+
'rocksdb_non_last_level_seek_filtered');
919
END//
1020
drop table if exists t1;
1121
Warnings:
Lines changed: 66 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,110 @@
1+
CREATE PROCEDURE bloom_start()
2+
BEGIN
3+
select sum(variable_value) into @u from performance_schema.global_status
4+
where variable_name in (
5+
'rocksdb_bloom_filter_prefix_useful',
6+
'rocksdb_last_level_seek_filter_match',
7+
'rocksdb_last_level_seek_filtered',
8+
'rocksdb_last_level_seek_data_useful_filter_match',
9+
'rocksdb_non_last_level_seek_filter_match',
10+
'rocksdb_non_last_level_seek_filtered',
11+
'rocksdb_non_last_level_seek_data_useful_filter_match');
12+
END//
13+
CREATE PROCEDURE bloom_eq_check()
14+
BEGIN
15+
select case when sum(variable_value)-@u = 0 then 'true' else 'false' end as useful from performance_schema.global_status
16+
where variable_name in (
17+
'rocksdb_bloom_filter_prefix_useful',
18+
'rocksdb_last_level_seek_filter_match',
19+
'rocksdb_last_level_seek_filtered',
20+
'rocksdb_last_level_seek_data_useful_filter_match',
21+
'rocksdb_non_last_level_seek_filter_match',
22+
'rocksdb_non_last_level_seek_filtered',
23+
'rocksdb_non_last_level_seek_data_useful_filter_match');
24+
END//
25+
CREATE PROCEDURE bloom_gt_check()
26+
BEGIN
27+
select case when sum(variable_value)-@u > 0 then 'true' else 'false' end as useful from performance_schema.global_status
28+
where variable_name in (
29+
'rocksdb_bloom_filter_prefix_useful',
30+
'rocksdb_last_level_seek_filter_match',
31+
'rocksdb_last_level_seek_filtered',
32+
'rocksdb_last_level_seek_data_useful_filter_match',
33+
'rocksdb_non_last_level_seek_filter_match',
34+
'rocksdb_non_last_level_seek_filtered',
35+
'rocksdb_non_last_level_seek_data_useful_filter_match');
36+
END//
137
CREATE TABLE t0 (id1 VARCHAR(30), id2 INT, value INT, PRIMARY KEY (id1, id2)) ENGINE=ROCKSDB collate latin1_bin;
2-
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
38+
call bloom_start();
339
SELECT COUNT(*) FROM t0 WHERE id1='X' AND id2>=1;
440
COUNT(*)
541
10000
6-
select case when variable_value-@u = 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
7-
case when variable_value-@u = 0 then 'true' else 'false' end
42+
call bloom_eq_check();
43+
useful
844
true
945
DROP TABLE t0;
1046
CREATE TABLE t1 (id1 BIGINT, id2 INT, id3 BIGINT, value INT, PRIMARY KEY (id1, id2, id3)) ENGINE=ROCKSDB;
11-
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
47+
call bloom_start();
1248
SELECT COUNT(*) FROM t1 WHERE id1=1 AND id2=1 AND id3>=2;
1349
COUNT(*)
1450
9999
15-
select case when variable_value-@u = 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
16-
case when variable_value-@u = 0 then 'true' else 'false' end
51+
call bloom_eq_check();
52+
useful
1753
true
18-
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
54+
call bloom_start();
1955
SELECT COUNT(*) FROM t1 WHERE id1=1 AND id2>=1 AND id3>=2;
2056
COUNT(*)
2157
9999
22-
select case when variable_value-@u = 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
23-
case when variable_value-@u = 0 then 'true' else 'false' end
58+
call bloom_eq_check();
59+
useful
2460
true
2561
DROP TABLE t1;
2662
CREATE TABLE t2 (id1 INT, id2 VARCHAR(100), id3 BIGINT, value INT, PRIMARY KEY (id1, id2, id3)) ENGINE=ROCKSDB collate latin1_bin;
27-
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
63+
call bloom_start();
2864
select count(*) from t2 WHERE id1=100 and id2 IN ('00000000000000000000', '100');
2965
count(*)
3066
1
31-
select case when variable_value-@u > 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
32-
case when variable_value-@u > 0 then 'true' else 'false' end
67+
call bloom_gt_check();
68+
useful
3369
true
34-
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
70+
call bloom_start();
3571
select count(*) from t2 WHERE id1=200 and id2 IN ('00000000000000000000', '200');
3672
count(*)
3773
1
38-
select case when variable_value-@u > 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
39-
case when variable_value-@u > 0 then 'true' else 'false' end
74+
call bloom_gt_check();
75+
useful
4076
true
41-
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
77+
call bloom_start();
4278
select count(*) from t2 WHERE id1=200 and id2 IN ('3', '200');
4379
count(*)
4480
1
45-
select case when variable_value-@u = 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
46-
case when variable_value-@u = 0 then 'true' else 'false' end
81+
call bloom_eq_check();
82+
useful
4783
true
4884
DROP TABLE t2;
4985
CREATE TABLE t3 (id1 BIGINT, id2 BIGINT, id3 BIGINT, id4 BIGINT, PRIMARY KEY (id1, id2, id3, id4)) ENGINE=ROCKSDB collate latin1_bin;
50-
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_useful';
86+
call bloom_start();
5187
SELECT COUNT(*) FROM t3 WHERE id1=1 AND id2=5000 AND id3=1 AND id4=1;
5288
COUNT(*)
5389
0
54-
select case when variable_value-@u > 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_useful';
55-
case when variable_value-@u > 0 then 'true' else 'false' end
90+
call bloom_gt_check();
91+
useful
5692
true
57-
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
93+
call bloom_start();
5894
SELECT COUNT(*) FROM t3 WHERE id1=1 AND id2=1 AND id3=1;
5995
COUNT(*)
6096
1
61-
select case when variable_value-@u > 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
62-
case when variable_value-@u > 0 then 'true' else 'false' end
97+
call bloom_gt_check();
98+
useful
6399
true
64-
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
100+
call bloom_start();
65101
SELECT COUNT(*) FROM t3 WHERE id1=1 AND id2=1 AND id3=1 AND id4 <= 500;
66102
COUNT(*)
67103
1
68-
select case when variable_value-@u > 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
69-
case when variable_value-@u > 0 then 'true' else 'false' end
104+
call bloom_gt_check();
105+
useful
70106
true
71107
DROP TABLE t3;
108+
DROP PROCEDURE bloom_start;
109+
DROP PROCEDURE bloom_eq_check;
110+
DROP PROCEDURE bloom_gt_check;
Lines changed: 66 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,40 @@
11
# restart
2+
CREATE PROCEDURE bloom_start()
3+
BEGIN
4+
select sum(variable_value) into @u from performance_schema.global_status
5+
where variable_name in (
6+
'rocksdb_bloom_filter_prefix_useful',
7+
'rocksdb_last_level_seek_filter_match',
8+
'rocksdb_last_level_seek_filtered',
9+
'rocksdb_last_level_seek_data_useful_filter_match',
10+
'rocksdb_non_last_level_seek_filter_match',
11+
'rocksdb_non_last_level_seek_filtered',
12+
'rocksdb_non_last_level_seek_data_useful_filter_match');
13+
END//
14+
CREATE PROCEDURE bloom_eq_check()
15+
BEGIN
16+
select case when sum(variable_value)-@u = 0 then 'true' else 'false' end as useful from performance_schema.global_status
17+
where variable_name in (
18+
'rocksdb_bloom_filter_prefix_useful',
19+
'rocksdb_last_level_seek_filter_match',
20+
'rocksdb_last_level_seek_filtered',
21+
'rocksdb_last_level_seek_data_useful_filter_match',
22+
'rocksdb_non_last_level_seek_filter_match',
23+
'rocksdb_non_last_level_seek_filtered',
24+
'rocksdb_non_last_level_seek_data_useful_filter_match');
25+
END//
26+
CREATE PROCEDURE bloom_gt_check()
27+
BEGIN
28+
select case when sum(variable_value)-@u > 0 then 'true' else 'false' end as useful from performance_schema.global_status
29+
where variable_name in (
30+
'rocksdb_bloom_filter_prefix_useful',
31+
'rocksdb_last_level_seek_filter_match',
32+
'rocksdb_last_level_seek_filtered',
33+
'rocksdb_last_level_seek_data_useful_filter_match',
34+
'rocksdb_non_last_level_seek_filter_match',
35+
'rocksdb_non_last_level_seek_filtered',
36+
'rocksdb_non_last_level_seek_data_useful_filter_match');
37+
END//
238
CREATE TABLE `linktable` (
339
`id1` bigint unsigned NOT NULL DEFAULT '0',
440
`id1_type` int unsigned NOT NULL DEFAULT '0',
@@ -14,65 +50,65 @@ KEY `id1_type` (`id1`,`link_type`,`visibility`,`time`,`version`,`data`) COMMENT
1450
KEY `id1_type2` (`id1`,`link_type`,`time`,`version`,`data`,`visibility`) COMMENT 'cfname=rev:cf_link_id1_type2',
1551
KEY `id1_type3` (`id1`,`visibility`,`time`,`version`,`data`,`link_type`) COMMENT 'cfname=rev:cf_link_id1_type3'
1652
) ENGINE=ROCKSDB DEFAULT COLLATE=latin1_bin;
17-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
53+
call bloom_start();
1854
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type`) where id1 = 100 and link_type = 1 and time >= 0 and time <= 9223372036854775807 and visibility = 1 order by time desc;
1955
id1 id2 link_type visibility data time version
2056
100 100 1 1 100 100 100
21-
select case when variable_value-@c > 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
22-
case when variable_value-@c > 0 then 'true' else 'false' end
57+
call bloom_gt_check();
58+
useful
2359
false
24-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
60+
call bloom_start();
2561
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type2`) where id1 = 100 and link_type = 1 and time >= 0 and time <= 9223372036854775807 order by time desc;
2662
id1 id2 link_type visibility data time version
2763
100 100 1 1 100 100 100
28-
select case when variable_value-@c > 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
29-
case when variable_value-@c > 0 then 'true' else 'false' end
64+
call bloom_gt_check();
65+
useful
3066
false
31-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
67+
call bloom_start();
3268
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type3`) where id1 = 100 and time >= 0 and time <= 9223372036854775807 and visibility = 1 order by time desc;
3369
id1 id2 link_type visibility data time version
3470
100 100 1 1 100 100 100
35-
select case when variable_value-@c = 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
36-
case when variable_value-@c = 0 then 'true' else 'false' end
71+
call bloom_eq_check();
72+
useful
3773
true
38-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
74+
call bloom_start();
3975
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type`) where id1 = 100 and link_type = 1 and visibility = 1 and time >= 0 order by time desc;
4076
id1 id2 link_type visibility data time version
4177
100 100 1 1 100 100 100
42-
select case when variable_value-@c > 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
43-
case when variable_value-@c > 0 then 'true' else 'false' end
78+
call bloom_gt_check();
79+
useful
4480
true
45-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
81+
call bloom_start();
4682
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type2`) where id1 = 100 and link_type = 1 and time >= 0 order by time desc;
4783
id1 id2 link_type visibility data time version
4884
100 100 1 1 100 100 100
49-
select case when variable_value-@c = 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
50-
case when variable_value-@c = 0 then 'true' else 'false' end
85+
call bloom_eq_check();
86+
useful
5187
true
5288
## HA_READ_PREFIX_LAST
5389
# BF len 20
54-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
90+
call bloom_start();
5591
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type`) where id1 = 100 and link_type = 1 and visibility = 1 order by time desc;
5692
id1 id2 link_type visibility data time version
5793
100 100 1 1 100 100 100
58-
select case when variable_value-@c > 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
59-
case when variable_value-@c > 0 then 'true' else 'false' end
94+
call bloom_gt_check();
95+
useful
6096
true
6197
# BF len 19
62-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
98+
call bloom_start();
6399
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type2`) where id1 = 100 and link_type = 1 order by time desc;
64100
id1 id2 link_type visibility data time version
65101
100 100 1 1 100 100 100
66-
select case when variable_value-@c = 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
67-
case when variable_value-@c = 0 then 'true' else 'false' end
102+
call bloom_eq_check();
103+
useful
68104
true
69105
# BF len 12
70-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
106+
call bloom_start();
71107
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type3`) where id1 = 100 and visibility = 1 order by time desc;
72108
id1 id2 link_type visibility data time version
73109
100 100 1 1 100 100 100
74-
select case when variable_value-@c = 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
75-
case when variable_value-@c = 0 then 'true' else 'false' end
110+
call bloom_eq_check();
111+
useful
76112
true
77113
DROP TABLE linktable;
78114
# restart
@@ -107,21 +143,16 @@ id select_type table partitions type possible_keys key key_len ref rows filtered
107143
1 SIMPLE t1 NULL ref kp12 kp12 20 const,const,const # 100.00 Using where; Backward index scan; Using index
108144
Warnings:
109145
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk`,`test`.`t1`.`kp0` AS `kp0`,`test`.`t1`.`kp1` AS `kp1`,`test`.`t1`.`kp2` AS `kp2`,`test`.`t1`.`kp3` AS `kp3` from `test`.`t1` where ((`test`.`t1`.`kp2` = 20890720927743) and (`test`.`t1`.`kp1` = 1) and (`test`.`t1`.`kp0` = 1)) order by `test`.`t1`.`kp3` desc
110-
show status like '%rocksdb_bloom_filter_prefix%';
111-
Variable_name Value
112-
rocksdb_bloom_filter_prefix_checked 0
113-
rocksdb_bloom_filter_prefix_useful 0
114-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
146+
call bloom_start();
115147
select * from t1 where kp0=1 and kp1=1 and kp2=0x12FFFFFFFFFF order by kp3 desc;
116148
pk kp0 kp1 kp2 kp3
117149
11 1 1 20890720927743 1
118150
10 1 1 20890720927743 1
119-
show status like '%rocksdb_bloom_filter_prefix%';
120-
Variable_name Value
121-
rocksdb_bloom_filter_prefix_checked 0
122-
rocksdb_bloom_filter_prefix_useful 0
123151
# The following MUST show TRUE:
124-
select case when variable_value-@c = 0 then 'true' else 'false' end from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
125-
case when variable_value-@c = 0 then 'true' else 'false' end
152+
call bloom_gt_check();
153+
useful
126154
true
127155
drop table t1;
156+
DROP PROCEDURE bloom_start;
157+
DROP PROCEDURE bloom_eq_check;
158+
DROP PROCEDURE bloom_gt_check;

mysql-test/suite/rocksdb/r/bloomfilter_skip.result

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
CREATE PROCEDURE bloom_start()
22
BEGIN
3-
select variable_value into @c from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
3+
select sum(variable_value) into @sf from performance_schema.global_status
4+
where variable_name in (
5+
'rocksdb_last_level_seek_filter_match',
6+
'rocksdb_last_level_seek_filtered',
7+
'rocksdb_non_last_level_seek_filter_match',
8+
'rocksdb_non_last_level_seek_filtered');
49
select variable_value into @u from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
510
END//
611
CREATE PROCEDURE bloom_end()
712
BEGIN
8-
select case when variable_value-@c > 0 then 'true' else 'false' end as checked from performance_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
13+
select case when sum(variable_value)-@sf > 0 then 'true' else 'false' end as checked from performance_schema.global_status
14+
where variable_name in (
15+
'rocksdb_last_level_seek_filter_match',
16+
'rocksdb_last_level_seek_filtered',
17+
'rocksdb_non_last_level_seek_filter_match',
18+
'rocksdb_non_last_level_seek_filtered');
919
END//
1020
drop table if exists t1;
1121
Warnings:

0 commit comments

Comments
 (0)