summaryrefslogtreecommitdiffstats
path: root/storage/rocksdb/mysql-test/rocksdb_rpl/t/consistent_snapshot_mixed_engines.test
blob: acea1903c0578d790ae9a54f51b034dfa302a639 (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
--source include/have_log_bin.inc
--source include/have_rocksdb.inc
--source include/have_innodb.inc
--enable_connect_log
-- let $uuid = `select @@server_uuid;`

# Save the initial number of concurrent sessions
--source include/count_sessions.inc

--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings

connect (con1,localhost,root,,);
connect (con2,localhost,root,,);

connection con1;
create table i1 (id int primary key , value int) engine=innodb;
create table r1 (id int primary key , value int) engine=rocksdb;


SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;

# Without setting engine, this takes both InnoDB and RocksDB snapshots
-- replace_result $uuid uuid
START TRANSACTION WITH CONSISTENT SNAPSHOT;

connection con2;
insert into i1 values (1,1);
insert into r1 values (1,1);

connection con1;
select * from i1;
select * from r1;

# This takes RocksDB snapshot only but both InnoDB participates in transaction.
-- replace_result $uuid uuid
START TRANSACTION WITH CONSISTENT ROCKSDB SNAPSHOT;

connection con2;
insert into i1 values (2,2);
insert into r1 values (2,2);

connection con1;
# takes InnoDB snapshot here so changes after that not visible
select * from i1;
select * from r1;

connection con2;
insert into i1 values (3,2);
insert into r1 values (3,2);

connection con1;
select * from i1;
select * from r1;

# RocksDB also partipates in transaction
-- replace_result $uuid uuid
START TRANSACTION WITH CONSISTENT INNODB SNAPSHOT;

connection con2;
insert into r1 values (4,4);

connection con1;
# takes RocksDB snapshot here so changes after that are not visible
select * from r1;

connection con2;
insert into r1 values (5,5);

connection con1;
select * from r1;

drop table i1;
drop table r1;

connection default;
disconnect con1;
disconnect con2;
reset master;
--source include/wait_until_count_sessions.inc