Skip to content

Commit

Permalink
Make encryption.innodb_lotoftables more robust.
Browse files Browse the repository at this point in the history
Perform a slow shutdown at the start of the test, and create all
InnoDB tables with STATS_PERSISTENT=0, so that any I/O related to
background tasks (change buffer merge, purge, persistent statistics)
should be eliminated.
  • Loading branch information
dr-m committed Jan 9, 2017
1 parent 59ea645 commit 4b05d60
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 17 deletions.
29 changes: 15 additions & 14 deletions mysql-test/suite/encryption/r/innodb_lotoftables.result
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
SET GLOBAL innodb_fast_shutdown=0;
SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;
SHOW VARIABLES LIKE 'innodb_encrypt%';
Expand All @@ -11,13 +12,13 @@ create database innodb_encrypted_1;
use innodb_encrypted_1;
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 3
Innodb_pages0_read 1
set autocommit=0;
set autocommit=1;
commit work;
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 3
Innodb_pages0_read 1
# should be 100
SELECT COUNT(*) FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE NAME LIKE 'innodb_encrypted%';
COUNT(*)
Expand Down Expand Up @@ -87,47 +88,47 @@ Innodb_pages0_read 3
# Restart Success!
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 3
Innodb_pages0_read 1
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 3
Innodb_pages0_read 1
use test;
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 3
Innodb_pages0_read 1
use innodb_encrypted_1;
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 3
Innodb_pages0_read 1
use innodb_encrypted_2;
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 3
Innodb_pages0_read 1
use innodb_encrypted_3;
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 3
Innodb_pages0_read 1
use innodb_encrypted_1;
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 3
Innodb_pages0_read 1
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 103
Innodb_pages0_read 101
use innodb_encrypted_2;
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 103
Innodb_pages0_read 101
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 203
Innodb_pages0_read 201
use innodb_encrypted_3;
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 203
Innodb_pages0_read 201
show status like 'innodb_pages0_read%';
Variable_name Value
Innodb_pages0_read 303
Innodb_pages0_read 301
SELECT COUNT(*) FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND NAME LIKE 'innodb_encrypted%';
COUNT(*)
100
Expand Down
13 changes: 10 additions & 3 deletions mysql-test/suite/encryption/t/innodb_lotoftables.test
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ let $innodb_file_per_table_orig = `SELECT @@innodb_file_per_table`;
let $innodb_encryption_threads_orig = `SELECT @@global.innodb_encryption_threads`;
--enable_query_log

# empty the change buffer and the undo logs to avoid extra reads
SET GLOBAL innodb_fast_shutdown=0;
--source include/restart_mysqld.inc

SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;

Expand All @@ -29,7 +33,8 @@ let $tables = 100;
--disable_query_log
while ($tables)
{
eval create table t_$tables (a int not null primary key, b varchar(200)) engine=innodb;
eval create table t_$tables (a int not null primary key, b varchar(200)) engine=innodb
stats_persistent=0;
commit;
let $rows = 100;
while($rows)
Expand Down Expand Up @@ -64,7 +69,8 @@ set autocommit=0;
let $tables = 100;
while ($tables)
{
eval create table t_$tables (a int not null primary key, b varchar(200)) engine=innodb encrypted=yes;
eval create table t_$tables (a int not null primary key, b varchar(200)) engine=innodb
stats_persistent=0 encrypted=yes;
commit;
let $rows = 100;
while($rows)
Expand Down Expand Up @@ -100,7 +106,8 @@ set autocommit=0;
let $tables = 100;
while ($tables)
{
eval create table t_$tables (a int not null primary key, b varchar(200)) engine=innodb encrypted=no;
eval create table t_$tables (a int not null primary key, b varchar(200)) engine=innodb
stats_persistent=0 encrypted=no;
commit;
let $rows = 100;
while($rows)
Expand Down

0 comments on commit 4b05d60

Please sign in to comment.