summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2020-08-03 19:08:11 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2020-08-03 19:08:11 +0300
commit859dbfea7716a83dd155392361006126b055568d (patch)
tree270410572a60be79d865d16209ae18be4c345254
parentc12d24e29162f35f4fb751b761a0fbd84db19498 (diff)
downloadmariadb-git-bb-10.5-MDEV-23379.tar.gz
MDEV-23379 Deprecate&ignore InnoDB concurrency throttling parametersbb-10.5-MDEV-23379
The parameters innodb_thread_concurrency and innodb_commit_concurrency were useful years ago when both computing resources and the implementation of some shared data structures were limited, but nowadays enabling any concurrency throttling for InnoDB actually makes things worse, because queries have to wait outside InnoDB. We have seen many customers mistakenly setting this to a small value like 16 or 64 and then complaining the server was slow. The parameters used to be useful a long time ago, when MySQL 5.0 or 5.1 had trouble scaling beyond 8 concurrent connections. Most of the scalability bottlenecks have been removed since then, and the transactions per second delivered by MariaDB Server 10.5 should not dramatically drop upon exceeding the 'optimal' number of connections. Ignoring the parameters allows us to remove some normally unused code and data structures, which could slightly improve performance. innodb_thread_concurrency, innodb_commit_concurrency, innodb_replication_delay, innodb_concurrency_tickets, innodb_thread_sleep_delay, innodb_adaptive_max_sleep_delay: Deprecate and ignore; hard-wire to 0. The column INFORMATION_SCHEMA.INNODB_TRX.trx_concurrency_tickets will always report 0.
-rw-r--r--extra/mariabackup/xtrabackup.cc1
-rw-r--r--mysql-test/include/mix1.inc4
-rw-r--r--mysql-test/suite/innodb/r/innodb_buffer_pool_resize_debug.result1
-rw-r--r--mysql-test/suite/innodb/r/innodb_bug42101-nonzero.result26
-rw-r--r--mysql-test/suite/innodb/r/innodb_bug42101.result22
-rw-r--r--mysql-test/suite/innodb/r/innodb_mysql.result3
-rw-r--r--mysql-test/suite/innodb/t/innodb.test7
-rw-r--r--mysql-test/suite/innodb/t/innodb_buffer_pool_resize_debug.test5
-rw-r--r--mysql-test/suite/innodb/t/innodb_bug42101-nonzero-master.opt1
-rw-r--r--mysql-test/suite/innodb/t/innodb_bug42101-nonzero.test20
-rw-r--r--mysql-test/suite/innodb/t/innodb_bug42101.test18
-rw-r--r--mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result18
-rw-r--r--mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test41
-rw-r--r--mysql-test/suite/sys_vars/r/innodb_adaptive_max_sleep_delay_basic.result72
-rw-r--r--mysql-test/suite/sys_vars/r/innodb_commit_concurrency_basic.result87
-rw-r--r--mysql-test/suite/sys_vars/r/innodb_concurrency_tickets_basic.result130
-rw-r--r--mysql-test/suite/sys_vars/r/innodb_replication_delay_basic.result100
-rw-r--r--mysql-test/suite/sys_vars/r/innodb_thread_concurrency_basic.result111
-rw-r--r--mysql-test/suite/sys_vars/r/innodb_thread_sleep_delay_basic.result88
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff122
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_innodb.result56
-rw-r--r--mysql-test/suite/sys_vars/t/innodb_adaptive_max_sleep_delay_basic.test93
-rw-r--r--mysql-test/suite/sys_vars/t/innodb_commit_concurrency_basic.test144
-rw-r--r--mysql-test/suite/sys_vars/t/innodb_concurrency_tickets_basic.test181
-rw-r--r--mysql-test/suite/sys_vars/t/innodb_replication_delay_basic.test102
-rw-r--r--mysql-test/suite/sys_vars/t/innodb_thread_concurrency_basic.test164
-rw-r--r--mysql-test/suite/sys_vars/t/innodb_thread_sleep_delay_basic.test69
-rw-r--r--storage/innobase/CMakeLists.txt2
-rw-r--r--storage/innobase/handler/ha_innodb.cc321
-rw-r--r--storage/innobase/handler/i_s.cc3
-rw-r--r--storage/innobase/include/ha_prototypes.h5
-rw-r--r--storage/innobase/include/que0types.h1
-rw-r--r--storage/innobase/include/srv0conc.h93
-rw-r--r--storage/innobase/include/srv0srv.h27
-rw-r--r--storage/innobase/include/srv0start.h4
-rw-r--r--storage/innobase/include/trx0i_s.h5
-rw-r--r--storage/innobase/include/trx0trx.h15
-rw-r--r--storage/innobase/lock/lock0wait.cc18
-rw-r--r--storage/innobase/log/log0log.cc2
-rw-r--r--storage/innobase/srv/srv0conc.cc327
-rw-r--r--storage/innobase/srv/srv0srv.cc9
-rw-r--r--storage/innobase/srv/srv0start.cc14
-rw-r--r--storage/innobase/trx/trx0i_s.cc2
-rw-r--r--storage/innobase/trx/trx0trx.cc23
44 files changed, 109 insertions, 2448 deletions
diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc
index 1a79068d5a5..650ab49fbcd 100644
--- a/extra/mariabackup/xtrabackup.cc
+++ b/extra/mariabackup/xtrabackup.cc
@@ -5376,7 +5376,6 @@ static bool xtrabackup_prepare_func(char** argv)
xb_filters_init();
srv_log_group_home_dir = NULL;
- srv_thread_concurrency = 1;
if (xtrabackup_incremental) {
srv_operation = SRV_OPERATION_RESTORE_DELTA;
diff --git a/mysql-test/include/mix1.inc b/mysql-test/include/mix1.inc
index 30b17c2e063..2ec0868c39e 100644
--- a/mysql-test/include/mix1.inc
+++ b/mysql-test/include/mix1.inc
@@ -1183,10 +1183,6 @@ set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment;
set global innodb_autoextend_increment=8;
set global innodb_autoextend_increment=@my_innodb_autoextend_increment;
-set @my_innodb_commit_concurrency=@@global.innodb_commit_concurrency;
-set global innodb_commit_concurrency=0;
-set global innodb_commit_concurrency=@my_innodb_commit_concurrency;
-
#
# Bug #37830: ORDER BY ASC/DESC - no difference
#
diff --git a/mysql-test/suite/innodb/r/innodb_buffer_pool_resize_debug.result b/mysql-test/suite/innodb/r/innodb_buffer_pool_resize_debug.result
index f1faeb1d554..0dea25f6bf1 100644
--- a/mysql-test/suite/innodb/r/innodb_buffer_pool_resize_debug.result
+++ b/mysql-test/suite/innodb/r/innodb_buffer_pool_resize_debug.result
@@ -1,5 +1,4 @@
set global innodb_file_per_table=ON;
-set global innodb_thread_concurrency=20;
connect con1,localhost,root,,;
connect con2,localhost,root,,;
connect con3,localhost,root,,;
diff --git a/mysql-test/suite/innodb/r/innodb_bug42101-nonzero.result b/mysql-test/suite/innodb/r/innodb_bug42101-nonzero.result
deleted file mode 100644
index f43cb9da239..00000000000
--- a/mysql-test/suite/innodb/r/innodb_bug42101-nonzero.result
+++ /dev/null
@@ -1,26 +0,0 @@
-set global innodb_commit_concurrency=0;
-ERROR 42000: Variable 'innodb_commit_concurrency' can't be set to the value of '0'
-select @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-1
-set global innodb_commit_concurrency=1;
-select @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-1
-set global innodb_commit_concurrency=42;
-select @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-42
-set global innodb_commit_concurrency=DEFAULT;
-select @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-1
-set global innodb_commit_concurrency=0;
-ERROR 42000: Variable 'innodb_commit_concurrency' can't be set to the value of '0'
-select @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-1
-set global innodb_commit_concurrency=1;
-select @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-1
diff --git a/mysql-test/suite/innodb/r/innodb_bug42101.result b/mysql-test/suite/innodb/r/innodb_bug42101.result
deleted file mode 100644
index 4e3367d5a54..00000000000
--- a/mysql-test/suite/innodb/r/innodb_bug42101.result
+++ /dev/null
@@ -1,22 +0,0 @@
-set global innodb_commit_concurrency=0;
-select @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-0
-set global innodb_commit_concurrency=1;
-ERROR 42000: Variable 'innodb_commit_concurrency' can't be set to the value of '1'
-select @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-0
-set global innodb_commit_concurrency=42;
-ERROR 42000: Variable 'innodb_commit_concurrency' can't be set to the value of '42'
-select @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-0
-set global innodb_commit_concurrency=0;
-select @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-0
-set global innodb_commit_concurrency=DEFAULT;
-select @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-0
diff --git a/mysql-test/suite/innodb/r/innodb_mysql.result b/mysql-test/suite/innodb/r/innodb_mysql.result
index 31db0622fe1..595a56a8bef 100644
--- a/mysql-test/suite/innodb/r/innodb_mysql.result
+++ b/mysql-test/suite/innodb/r/innodb_mysql.result
@@ -1797,9 +1797,6 @@ DROP TABLE t1;
set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment;
set global innodb_autoextend_increment=8;
set global innodb_autoextend_increment=@my_innodb_autoextend_increment;
-set @my_innodb_commit_concurrency=@@global.innodb_commit_concurrency;
-set global innodb_commit_concurrency=0;
-set global innodb_commit_concurrency=@my_innodb_commit_concurrency;
CREATE TABLE t1 (a int, b int, c int, PRIMARY KEY (a), KEY t1_b (b))
ENGINE=InnoDB;
INSERT INTO t1 (a,b,c) VALUES (1,1,1), (2,1,1), (3,1,1), (4,1,1);
diff --git a/mysql-test/suite/innodb/t/innodb.test b/mysql-test/suite/innodb/t/innodb.test
index 6fd2cdc74d2..dfb4da3a63d 100644
--- a/mysql-test/suite/innodb/t/innodb.test
+++ b/mysql-test/suite/innodb/t/innodb.test
@@ -24,10 +24,6 @@ call mtr.add_suppression("Cannot add field .* in table .* because after adding i
call mtr.add_suppression("\\[ERROR\\] InnoDB: in ALTER TABLE `test`.`t1`");
call mtr.add_suppression("\\[ERROR\\] InnoDB: in RENAME TABLE table `test`.`t1`");
-SET @innodb_thread_sleep_delay_orig = @@innodb_thread_sleep_delay;
-
-SET @innodb_thread_concurrency_orig = @@innodb_thread_concurrency;
-
--disable_warnings
SET @innodb_rows_deleted_orig = (SELECT variable_value FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_deleted');
SET @innodb_rows_inserted_orig = (SELECT variable_value FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_inserted');
@@ -2503,9 +2499,6 @@ DROP TABLE bug35537;
DISCONNECT c1;
CONNECTION default;
-SET GLOBAL innodb_thread_sleep_delay = @innodb_thread_sleep_delay_orig;
-SET GLOBAL innodb_thread_concurrency = @innodb_thread_concurrency_orig;
-
-- enable_query_log
# Clean up after the Bug#55284/Bug#58912 test case.
diff --git a/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_debug.test b/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_debug.test
index 4f5ee089852..ddac64c17c9 100644
--- a/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_debug.test
+++ b/mysql-test/suite/innodb/t/innodb_buffer_pool_resize_debug.test
@@ -9,8 +9,6 @@
--disable_query_log
set @old_innodb_buffer_pool_size = @@innodb_buffer_pool_size;
set @old_innodb_file_per_table = @@innodb_file_per_table;
-set @old_innodb_thread_concurrency = @@innodb_thread_concurrency;
-set @old_innodb_thread_sleep_delay = @@innodb_thread_sleep_delay;
set @old_innodb_disable_resize = @@innodb_disable_resize_buffer_pool_debug;
set global innodb_disable_resize_buffer_pool_debug = OFF;
call mtr.add_suppression("\\[ERROR\\] InnoDB: failed to allocate memory for buffer pool chunk");
@@ -22,7 +20,6 @@ call mtr.add_suppression("\\[ERROR\\] InnoDB: failed to allocate memory for buff
let $wait_timeout = 180;
set global innodb_file_per_table=ON;
-set global innodb_thread_concurrency=20;
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
@@ -178,8 +175,6 @@ drop table t6;
--disable_query_log
set global innodb_buffer_pool_size = @old_innodb_buffer_pool_size;
set global innodb_file_per_table = @old_innodb_file_per_table;
-set global innodb_thread_concurrency = @old_innodb_thread_concurrency;
-set global innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay;
set global innodb_disable_resize_buffer_pool_debug = @old_innodb_disable_resize;
--enable_query_log
diff --git a/mysql-test/suite/innodb/t/innodb_bug42101-nonzero-master.opt b/mysql-test/suite/innodb/t/innodb_bug42101-nonzero-master.opt
deleted file mode 100644
index e82f614c897..00000000000
--- a/mysql-test/suite/innodb/t/innodb_bug42101-nonzero-master.opt
+++ /dev/null
@@ -1 +0,0 @@
---loose-innodb-commit-concurrency=1
diff --git a/mysql-test/suite/innodb/t/innodb_bug42101-nonzero.test b/mysql-test/suite/innodb/t/innodb_bug42101-nonzero.test
deleted file mode 100644
index 3ee3f1e6a8b..00000000000
--- a/mysql-test/suite/innodb/t/innodb_bug42101-nonzero.test
+++ /dev/null
@@ -1,20 +0,0 @@
---source include/have_innodb.inc
-#
-# Bug#42101 Race condition in innodb_commit_concurrency
-# http://bugs.mysql.com/42101
-#
-
---error ER_WRONG_VALUE_FOR_VAR
-set global innodb_commit_concurrency=0;
-select @@innodb_commit_concurrency;
-set global innodb_commit_concurrency=1;
-select @@innodb_commit_concurrency;
-set global innodb_commit_concurrency=42;
-select @@innodb_commit_concurrency;
-set global innodb_commit_concurrency=DEFAULT;
-select @@innodb_commit_concurrency;
---error ER_WRONG_VALUE_FOR_VAR
-set global innodb_commit_concurrency=0;
-select @@innodb_commit_concurrency;
-set global innodb_commit_concurrency=1;
-select @@innodb_commit_concurrency;
diff --git a/mysql-test/suite/innodb/t/innodb_bug42101.test b/mysql-test/suite/innodb/t/innodb_bug42101.test
deleted file mode 100644
index 374d3e6b5f5..00000000000
--- a/mysql-test/suite/innodb/t/innodb_bug42101.test
+++ /dev/null
@@ -1,18 +0,0 @@
---source include/have_innodb.inc
-#
-# Bug#42101 Race condition in innodb_commit_concurrency
-# http://bugs.mysql.com/42101
-#
-
-set global innodb_commit_concurrency=0;
-select @@innodb_commit_concurrency;
---error ER_WRONG_VALUE_FOR_VAR
-set global innodb_commit_concurrency=1;
-select @@innodb_commit_concurrency;
---error ER_WRONG_VALUE_FOR_VAR
-set global innodb_commit_concurrency=42;
-select @@innodb_commit_concurrency;
-set global innodb_commit_concurrency=0;
-select @@innodb_commit_concurrency;
-set global innodb_commit_concurrency=DEFAULT;
-select @@innodb_commit_concurrency;
diff --git a/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result b/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result
deleted file mode 100644
index cd9ac1db9b1..00000000000
--- a/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result
+++ /dev/null
@@ -1,18 +0,0 @@
-include/master-slave.inc
-[connection master]
-connection slave;
-SET @old_innodb_thread_concurrency := @@innodb_thread_concurrency;
-SET @old_innodb_thread_sleep_delay := @@innodb_thread_sleep_delay;
-SET GLOBAL innodb_thread_concurrency = 100;
-connection master;
-CREATE TABLE t(f INT) ENGINE=INNODB;
-INSERT INTO t VALUES (10);
-connection slave;
-include/diff_tables.inc [master:t, slave:t]
-"===== Clean up======="
-connection master;
-DROP TABLE t;
-connection slave;
-SET GLOBAL innodb_thread_concurrency = @old_innodb_thread_concurrency;
-SET GLOBAL innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay;
-include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test b/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test
deleted file mode 100644
index b4c2971d2fb..00000000000
--- a/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test
+++ /dev/null
@@ -1,41 +0,0 @@
-# ==== Purpose ====
-#
-# Test verifies that replication shouldn't hang when number of active threads
-# on the slave server are less than the allowed innodb_thread_concurrency value.
-#
-# ==== Implementation ====
-#
-# Steps:
-# 0 - Have master slave replication setup with engine being Innodb.
-# 1 - Configure innodb_thread_concurrency = 100.
-# 2 - Do some DML on master and sync the slave with master.
-# 3 - Ensure replication doesn't hang.
-#
-# ==== References ====
-#
-# MDEV-20247: Replication hangs with "preparing" and never starts
-#
-
---source include/master-slave.inc
---source include/have_innodb.inc
-
---connection slave
-SET @old_innodb_thread_concurrency := @@innodb_thread_concurrency;
-SET @old_innodb_thread_sleep_delay := @@innodb_thread_sleep_delay;
-SET GLOBAL innodb_thread_concurrency = 100;
-
---connection master
-CREATE TABLE t(f INT) ENGINE=INNODB;
-INSERT INTO t VALUES (10);
---sync_slave_with_master
-
---let $diff_tables=master:t, slave:t
---source include/diff_tables.inc
-
---echo "===== Clean up======="
---connection master
-DROP TABLE t;
---sync_slave_with_master
-SET GLOBAL innodb_thread_concurrency = @old_innodb_thread_concurrency;
-SET GLOBAL innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay;
---source include/rpl_end.inc
diff --git a/mysql-test/suite/sys_vars/r/innodb_adaptive_max_sleep_delay_basic.result b/mysql-test/suite/sys_vars/r/innodb_adaptive_max_sleep_delay_basic.result
deleted file mode 100644
index b3ba28a4411..00000000000
--- a/mysql-test/suite/sys_vars/r/innodb_adaptive_max_sleep_delay_basic.result
+++ /dev/null
@@ -1,72 +0,0 @@
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
-@@GLOBAL.innodb_adaptive_max_sleep_delay
-150000
-150000 Expected
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=100;
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=0;
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
-@@GLOBAL.innodb_adaptive_max_sleep_delay
-0
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=100000;
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
-@@GLOBAL.innodb_adaptive_max_sleep_delay
-100000
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=1000000;
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
-@@GLOBAL.innodb_adaptive_max_sleep_delay
-1000000
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=1000001;
-Warnings:
-Warning 1292 Truncated incorrect innodb_adaptive_max_sleep_delay value: '1000001'
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
-@@GLOBAL.innodb_adaptive_max_sleep_delay
-1000000
-1000000 Expected
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=4294967295;
-Warnings:
-Warning 1292 Truncated incorrect innodb_adaptive_max_sleep_delay value: '4294967295'
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
-@@GLOBAL.innodb_adaptive_max_sleep_delay
-1000000
-1000000 Expected
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=-1;
-Warnings:
-Warning 1292 Truncated incorrect innodb_adaptive_max_sleep_delay value: '-1'
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
-@@GLOBAL.innodb_adaptive_max_sleep_delay
-0
-0 Expected
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=-1024;
-Warnings:
-Warning 1292 Truncated incorrect innodb_adaptive_max_sleep_delay value: '-1024'
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
-@@GLOBAL.innodb_adaptive_max_sleep_delay
-0
-0 Expected
-SELECT COUNT(@@GLOBAL.innodb_adaptive_max_sleep_delay);
-COUNT(@@GLOBAL.innodb_adaptive_max_sleep_delay)
-1
-1 Expected
-SELECT VARIABLE_VALUE
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='innodb_adaptive_max_sleep_delay';
-VARIABLE_VALUE
-0
-100 Expected
-SELECT @@innodb_adaptive_max_sleep_delay = @@GLOBAL.innodb_adaptive_max_sleep_delay;
-@@innodb_adaptive_max_sleep_delay = @@GLOBAL.innodb_adaptive_max_sleep_delay
-1
-1000000 Expected
-SELECT COUNT(@@innodb_adaptive_max_sleep_delay);
-COUNT(@@innodb_adaptive_max_sleep_delay)
-1
-1 Expected
-SELECT COUNT(@@local.innodb_adaptive_max_sleep_delay);
-ERROR HY000: Variable 'innodb_adaptive_max_sleep_delay' is a GLOBAL variable
-Expected error 'Variable is a GLOBAL variable'
-SELECT COUNT(@@SESSION.innodb_adaptive_max_sleep_delay);
-ERROR HY000: Variable 'innodb_adaptive_max_sleep_delay' is a GLOBAL variable
-Expected error 'Variable is a GLOBAL variable'
-SELECT innodb_adaptive_max_sleep_delay = @@SESSION.innodb_adaptive_max_sleep_delay;
-ERROR 42S22: Unknown column 'innodb_adaptive_max_sleep_delay' in 'field list'
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=150000;
diff --git a/mysql-test/suite/sys_vars/r/innodb_commit_concurrency_basic.result b/mysql-test/suite/sys_vars/r/innodb_commit_concurrency_basic.result
deleted file mode 100644
index 474818829c5..00000000000
--- a/mysql-test/suite/sys_vars/r/innodb_commit_concurrency_basic.result
+++ /dev/null
@@ -1,87 +0,0 @@
-SET @global_start_value = @@global.innodb_commit_concurrency;
-SELECT @global_start_value;
-@global_start_value
-0
-'#--------------------FN_DYNVARS_046_01------------------------#'
-SET @@global.innodb_commit_concurrency = 0;
-SET @@global.innodb_commit_concurrency = DEFAULT;
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-'#---------------------FN_DYNVARS_046_02-------------------------#'
-SET innodb_commit_concurrency = 1;
-ERROR HY000: Variable 'innodb_commit_concurrency' is a GLOBAL variable and should be set with SET GLOBAL
-SELECT @@innodb_commit_concurrency;
-@@innodb_commit_concurrency
-0
-SELECT local.innodb_commit_concurrency;
-ERROR 42S02: Unknown table 'local' in field list
-SET global innodb_commit_concurrency = 0;
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-'#--------------------FN_DYNVARS_046_03------------------------#'
-SET @@global.innodb_commit_concurrency = 0;
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-'#--------------------FN_DYNVARS_046_04-------------------------#'
-SET @@global.innodb_commit_concurrency = 1;
-ERROR 42000: Variable 'innodb_commit_concurrency' can't be set to the value of '1'
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-SET @@global.innodb_commit_concurrency = -1;
-ERROR 42000: Variable 'innodb_commit_concurrency' can't be set to the value of '-1'
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-SET @@global.innodb_commit_concurrency = "T";
-ERROR 42000: Incorrect argument type to variable 'innodb_commit_concurrency'
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-SET @@global.innodb_commit_concurrency = "Y";
-ERROR 42000: Incorrect argument type to variable 'innodb_commit_concurrency'
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-SET @@global.innodb_commit_concurrency = 1.1;
-ERROR 42000: Incorrect argument type to variable 'innodb_commit_concurrency'
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-SET @@global.innodb_commit_concurrency = 1001;
-ERROR 42000: Variable 'innodb_commit_concurrency' can't be set to the value of '1001'
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-'#----------------------FN_DYNVARS_046_05------------------------#'
-SELECT @@global.innodb_commit_concurrency =
-VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='innodb_commit_concurrency';
-@@global.innodb_commit_concurrency =
-VARIABLE_VALUE
-1
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='innodb_commit_concurrency';
-VARIABLE_VALUE
-0
-'#---------------------FN_DYNVARS_046_06-------------------------#'
-SET @@global.innodb_commit_concurrency = OFF;
-ERROR 42000: Incorrect argument type to variable 'innodb_commit_concurrency'
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-SET @@global.innodb_commit_concurrency = ON;
-ERROR 42000: Incorrect argument type to variable 'innodb_commit_concurrency'
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
-SET @@global.innodb_commit_concurrency = @global_start_value;
-SELECT @@global.innodb_commit_concurrency;
-@@global.innodb_commit_concurrency
-0
diff --git a/mysql-test/suite/sys_vars/r/innodb_concurrency_tickets_basic.result b/mysql-test/suite/sys_vars/r/innodb_concurrency_tickets_basic.result
deleted file mode 100644
index dd4488a97b3..00000000000
--- a/mysql-test/suite/sys_vars/r/innodb_concurrency_tickets_basic.result
+++ /dev/null
@@ -1,130 +0,0 @@
-SET @global_start_value = @@global.innodb_concurrency_tickets;
-SELECT @global_start_value;
-@global_start_value
-5000
-'#--------------------FN_DYNVARS_046_01------------------------#'
-SET @@global.innodb_concurrency_tickets = 0;
-Warnings:
-Warning 1292 Truncated incorrect innodb_concurrency_tickets value: '0'
-SET @@global.innodb_concurrency_tickets = DEFAULT;
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-5000
-'#---------------------FN_DYNVARS_046_02-------------------------#'
-SET innodb_concurrency_tickets = 1;
-ERROR HY000: Variable 'innodb_concurrency_tickets' is a GLOBAL variable and should be set with SET GLOBAL
-SELECT @@innodb_concurrency_tickets;
-@@innodb_concurrency_tickets
-5000
-SELECT local.innodb_concurrency_tickets;
-ERROR 42S02: Unknown table 'local' in field list
-SET global innodb_concurrency_tickets = 0;
-Warnings:
-Warning 1292 Truncated incorrect innodb_concurrency_tickets value: '0'
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-'#--------------------FN_DYNVARS_046_03------------------------#'
-SET @@global.innodb_concurrency_tickets = 1;
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-SET @@global.innodb_concurrency_tickets = 1000;
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1000
-SET @@global.innodb_concurrency_tickets = 4294967295;
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-4294967295
-'#--------------------FN_DYNVARS_046_04-------------------------#'
-SET @@global.innodb_concurrency_tickets = 4294967296;
-SELECT @@global.innodb_concurrency_tickets IN (4294967296,4294967295);
-@@global.innodb_concurrency_tickets IN (4294967296,4294967295)
-1
-SET @@global.innodb_concurrency_tickets = 12345678901;
-SELECT @@global.innodb_concurrency_tickets IN (12345678901,4294967295);
-@@global.innodb_concurrency_tickets IN (12345678901,4294967295)
-1
-SET @@global.innodb_concurrency_tickets = 18446744073709551615;
-SELECT @@global.innodb_concurrency_tickets IN (18446744073709551615,4294967295);
-@@global.innodb_concurrency_tickets IN (18446744073709551615,4294967295)
-1
-'#--------------------FN_DYNVARS_046_05-------------------------#'
-SET @@global.innodb_concurrency_tickets = -1;
-Warnings:
-Warning 1292 Truncated incorrect innodb_concurrency_tickets value: '-1'
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-SET @@global.innodb_concurrency_tickets = -1024;
-Warnings:
-Warning 1292 Truncated incorrect innodb_concurrency_tickets value: '-1024'
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-SET @@global.innodb_concurrency_tickets = "T";
-ERROR 42000: Incorrect argument type to variable 'innodb_concurrency_tickets'
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-SET @@global.innodb_concurrency_tickets = "Y";
-ERROR 42000: Incorrect argument type to variable 'innodb_concurrency_tickets'
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-SET @@global.innodb_concurrency_tickets = 1.1;
-ERROR 42000: Incorrect argument type to variable 'innodb_concurrency_tickets'
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-SET @@global.innodb_concurrency_tickets = " ";
-ERROR 42000: Incorrect argument type to variable 'innodb_concurrency_tickets'
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-SET @@global.innodb_concurrency_tickets = ' ';
-ERROR 42000: Incorrect argument type to variable 'innodb_concurrency_tickets'
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-'#----------------------FN_DYNVARS_046_06------------------------#'
-SELECT @@global.innodb_concurrency_tickets =
-VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='innodb_concurrency_tickets';
-@@global.innodb_concurrency_tickets =
-VARIABLE_VALUE
-1
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='innodb_concurrency_tickets';
-VARIABLE_VALUE
-1
-'#---------------------FN_DYNVARS_046_07-------------------------#'
-SET @@global.innodb_concurrency_tickets = OFF;
-ERROR 42000: Incorrect argument type to variable 'innodb_concurrency_tickets'
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-SET @@global.innodb_concurrency_tickets = ON;
-ERROR 42000: Incorrect argument type to variable 'innodb_concurrency_tickets'
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-'#---------------------FN_DYNVARS_046_08----------------------#'
-SET @@global.innodb_concurrency_tickets = TRUE;
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-SET @@global.innodb_concurrency_tickets = FALSE;
-Warnings:
-Warning 1292 Truncated incorrect innodb_concurrency_tickets value: '0'
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-1
-SET @@global.innodb_concurrency_tickets = @global_start_value;
-SELECT @@global.innodb_concurrency_tickets;
-@@global.innodb_concurrency_tickets
-5000
diff --git a/mysql-test/suite/sys_vars/r/innodb_replication_delay_basic.result b/mysql-test/suite/sys_vars/r/innodb_replication_delay_basic.result
deleted file mode 100644
index 5e0fb425f6b..00000000000
--- a/mysql-test/suite/sys_vars/r/innodb_replication_delay_basic.result
+++ /dev/null
@@ -1,100 +0,0 @@
-SET @start_global_value = @@global.innodb_replication_delay;
-SELECT @start_global_value;
-@start_global_value
-0
-Valid values are zero or above
-select @@global.innodb_replication_delay >=0;
-@@global.innodb_replication_delay >=0
-1
-select @@global.innodb_replication_delay;
-@@global.innodb_replication_delay
-0
-select @@session.innodb_replication_delay;
-ERROR HY000: Variable 'innodb_replication_delay' is a GLOBAL variable
-show global variables like 'innodb_replication_delay';
-Variable_name Value
-innodb_replication_delay 0
-show session variables like 'innodb_replication_delay';
-Variable_name Value
-innodb_replication_delay 0
-select * from information_schema.global_variables where variable_name='innodb_replication_delay';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_REPLICATION_DELAY 0
-select * from information_schema.session_variables where variable_name='innodb_replication_delay';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_REPLICATION_DELAY 0
-set global innodb_replication_delay=10;
-select @@global.innodb_replication_delay;
-@@global.innodb_replication_delay
-10
-select * from information_schema.global_variables where variable_name='innodb_replication_delay';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_REPLICATION_DELAY 10
-select * from information_schema.session_variables where variable_name='innodb_replication_delay';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_REPLICATION_DELAY 10
-set session innodb_replication_delay=1;
-ERROR HY000: Variable 'innodb_replication_delay' is a GLOBAL variable and should be set with SET GLOBAL
-set global innodb_replication_delay=DEFAULT;
-select @@global.innodb_replication_delay;
-@@global.innodb_replication_delay
-0
-set global innodb_replication_delay=0;
-select @@global.innodb_replication_delay;
-@@global.innodb_replication_delay
-0
-set global innodb_replication_delay=65535;
-select @@global.innodb_replication_delay;
-@@global.innodb_replication_delay
-65535
-set global innodb_replication_delay=4294967295;
-select @@global.innodb_replication_delay;
-@@global.innodb_replication_delay
-4294967295
-set global innodb_replication_delay=1.1;
-ERROR 42000: Incorrect argument type to variable 'innodb_replication_delay'
-set global innodb_replication_delay=1e1;
-ERROR 42000: Incorrect argument type to variable 'innodb_replication_delay'
-set global innodb_replication_delay="foo";
-ERROR 42000: Incorrect argument type to variable 'innodb_replication_delay'
-set global innodb_replication_delay=' ';
-ERROR 42000: Incorrect argument type to variable 'innodb_replication_delay'
-select @@global.innodb_replication_delay;
-@@global.innodb_replication_delay
-4294967295
-set global innodb_replication_delay=" ";
-ERROR 42000: Incorrect argument type to variable 'innodb_replication_delay'
-select @@global.innodb_replication_delay;
-@@global.innodb_replication_delay
-4294967295
-set global innodb_replication_delay=-7;
-Warnings:
-Warning 1292 Truncated incorrect innodb_replication_delay value: '-7'
-select @@global.innodb_replication_delay;
-@@global.innodb_replication_delay
-0
-set global innodb_replication_delay=-1024;
-Warnings:
-Warning 1292 Truncated incorrect innodb_replication_delay value: '-1024'
-select @@global.innodb_replication_delay;
-@@global.innodb_replication_delay
-0
-select * from information_schema.global_variables where variable_name='innodb_replication_delay';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_REPLICATION_DELAY 0
-SET @@global.innodb_replication_delay = 4294967296;
-SELECT @@global.innodb_replication_delay IN (4294967296,4294967295);
-@@global.innodb_replication_delay IN (4294967296,4294967295)
-1
-SET @@global.innodb_replication_delay = 12345678901;
-SELECT @@global.innodb_replication_delay IN (12345678901,4294967295);
-@@global.innodb_replication_delay IN (12345678901,4294967295)
-1
-SET @@global.innodb_replication_delay = 18446744073709551615;
-SELECT @@global.innodb_replication_delay IN (18446744073709551615,4294967295);
-@@global.innodb_replication_delay IN (18446744073709551615,4294967295)
-1
-SET @@global.innodb_replication_delay = @start_global_value;
-SELECT @@global.innodb_replication_delay;
-@@global.innodb_replication_delay
-0
diff --git a/mysql-test/suite/sys_vars/r/innodb_thread_concurrency_basic.result b/mysql-test/suite/sys_vars/r/innodb_thread_concurrency_basic.result
deleted file mode 100644
index ca3c253604a..00000000000
--- a/mysql-test/suite/sys_vars/r/innodb_thread_concurrency_basic.result
+++ /dev/null
@@ -1,111 +0,0 @@
-SET @global_start_value = @@global.innodb_thread_concurrency;
-SELECT @global_start_value;
-@global_start_value
-0
-'#--------------------FN_DYNVARS_046_01------------------------#'
-SET @@global.innodb_thread_concurrency = 0;
-SET @@global.innodb_thread_concurrency = DEFAULT;
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-0
-'#---------------------FN_DYNVARS_046_02-------------------------#'
-SET innodb_thread_concurrency = 1;
-ERROR HY000: Variable 'innodb_thread_concurrency' is a GLOBAL variable and should be set with SET GLOBAL
-SELECT @@innodb_thread_concurrency;
-@@innodb_thread_concurrency
-0
-SELECT local.innodb_thread_concurrency;
-ERROR 42S02: Unknown table 'local' in field list
-SET global innodb_thread_concurrency = 0;
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-0
-'#--------------------FN_DYNVARS_046_03------------------------#'
-SET @@global.innodb_thread_concurrency = 0;
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-0
-SET @@global.innodb_thread_concurrency = 1;
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-1
-SET @@global.innodb_thread_concurrency = 1000;
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-1000
-'#--------------------FN_DYNVARS_046_04-------------------------#'
-SET @@global.innodb_thread_concurrency = -1;
-Warnings:
-Warning 1292 Truncated incorrect innodb_thread_concurrency value: '-1'
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-0
-SET @@global.innodb_thread_concurrency = "T";
-ERROR 42000: Incorrect argument type to variable 'innodb_thread_concurrency'
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-0
-SET @@global.innodb_thread_concurrency = "Y";
-ERROR 42000: Incorrect argument type to variable 'innodb_thread_concurrency'
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-0
-SET @@global.innodb_thread_concurrency = ' ';
-ERROR 42000: Incorrect argument type to variable 'innodb_thread_concurrency'
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-0
-SET @@global.innodb_thread_concurrency = " ";
-ERROR 42000: Incorrect argument type to variable 'innodb_thread_concurrency'
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-0
-SET @@global.innodb_thread_concurrency = 1001;
-Warnings:
-Warning 1292 Truncated incorrect innodb_thread_concurrency value: '1001'
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-1000
-SET @@global.innodb_thread_concurrency = 255.01;
-ERROR 42000: Incorrect argument type to variable 'innodb_thread_concurrency'
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-1000
-'#----------------------FN_DYNVARS_046_05------------------------#'
-SELECT @@global.innodb_thread_concurrency =
-VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='innodb_thread_concurrency';
-@@global.innodb_thread_concurrency =
-VARIABLE_VALUE
-1
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-1000
-SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='innodb_thread_concurrency';
-VARIABLE_VALUE
-1000
-'#---------------------FN_DYNVARS_046_06-------------------------#'
-SET @@global.innodb_thread_concurrency = OFF;
-ERROR 42000: Incorrect argument type to variable 'innodb_thread_concurrency'
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-1000
-SET @@global.innodb_thread_concurrency = ON;
-ERROR 42000: Incorrect argument type to variable 'innodb_thread_concurrency'
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-1000
-'#---------------------FN_DYNVARS_046_07----------------------#'
-SET @@global.innodb_thread_concurrency = TRUE;
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-1
-SET @@global.innodb_thread_concurrency = FALSE;
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-0
-SET @@global.innodb_thread_concurrency = @global_start_value;
-SELECT @@global.innodb_thread_concurrency;
-@@global.innodb_thread_concurrency
-0
diff --git a/mysql-test/suite/sys_vars/r/innodb_thread_sleep_delay_basic.result b/mysql-test/suite/sys_vars/r/innodb_thread_sleep_delay_basic.result
deleted file mode 100644
index c2017ee0b66..00000000000
--- a/mysql-test/suite/sys_vars/r/innodb_thread_sleep_delay_basic.result
+++ /dev/null
@@ -1,88 +0,0 @@
-SET @start_global_value = @@global.innodb_thread_sleep_delay;
-SELECT @start_global_value;
-@start_global_value
-10000
-Valid values are zero or above
-select @@global.innodb_thread_sleep_delay >=0;
-@@global.innodb_thread_sleep_delay >=0
-1
-select @@global.innodb_thread_sleep_delay;
-@@global.innodb_thread_sleep_delay
-10000
-select @@session.innodb_thread_sleep_delay;
-ERROR HY000: Variable 'innodb_thread_sleep_delay' is a GLOBAL variable
-show global variables like 'innodb_thread_sleep_delay';
-Variable_name Value
-innodb_thread_sleep_delay 10000
-show session variables like 'innodb_thread_sleep_delay';
-Variable_name Value
-innodb_thread_sleep_delay 10000
-select * from information_schema.global_variables where variable_name='innodb_thread_sleep_delay';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_THREAD_SLEEP_DELAY 10000
-select * from information_schema.session_variables where variable_name='innodb_thread_sleep_delay';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_THREAD_SLEEP_DELAY 10000
-set global innodb_thread_sleep_delay=10;
-select @@global.innodb_thread_sleep_delay;
-@@global.innodb_thread_sleep_delay
-10
-select * from information_schema.global_variables where variable_name='innodb_thread_sleep_delay';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_THREAD_SLEEP_DELAY 10
-select * from information_schema.session_variables where variable_name='innodb_thread_sleep_delay';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_THREAD_SLEEP_DELAY 10
-set session innodb_thread_sleep_delay=1;
-ERROR HY000: Variable 'innodb_thread_sleep_delay' is a GLOBAL variable and should be set with SET GLOBAL
-set global innodb_thread_sleep_delay=1.1;
-ERROR 42000: Incorrect argument type to variable 'innodb_thread_sleep_delay'
-set global innodb_thread_sleep_delay=1e1;
-ERROR 42000: Incorrect argument type to variable 'innodb_thread_sleep_delay'
-set global innodb_thread_sleep_delay="foo";
-ERROR 42000: Incorrect argument type to variable 'innodb_thread_sleep_delay'
-set global innodb_thread_sleep_delay=18446744073709551616;
-Warnings:
-Warning 1916 Got overflow when converting '18446744073709551616' to INT. Value truncated
-Warning 1292 Truncated incorrect innodb_thread_sleep_delay value: '9223372036854775807'
-set global innodb_thread_sleep_delay=-7;
-Warnings:
-Warning 1292 Truncated incorrect innodb_thread_sleep_delay value: '-7'
-select @@global.innodb_thread_sleep_delay;
-@@global.innodb_thread_sleep_delay
-0
-select * from information_schema.global_variables where variable_name='innodb_thread_sleep_delay';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_THREAD_SLEEP_DELAY 0
-set global innodb_thread_sleep_delay=0;
-select @@global.innodb_thread_sleep_delay;
-@@global.innodb_thread_sleep_delay
-0
-set global innodb_thread_sleep_delay=1000;
-select @@global.innodb_thread_sleep_delay;
-@@global.innodb_thread_sleep_delay
-1000
-set global innodb_thread_sleep_delay=1000000;
-select @@global.innodb_thread_sleep_delay;
-@@global.innodb_thread_sleep_delay
-1000000
-set global innodb_thread_sleep_delay=1000001;
-Warnings:
-Warning 1292 Truncated incorrect innodb_thread_sleep_delay value: '1000001'
-select @@global.innodb_thread_sleep_delay;
-@@global.innodb_thread_sleep_delay
-1000000
-set global innodb_thread_sleep_delay=4294967295;
-Warnings:
-Warning 1292 Truncated incorrect innodb_thread_sleep_delay value: '4294967295'
-select @@global.innodb_thread_sleep_delay;
-@@global.innodb_thread_sleep_delay
-1000000
-set global innodb_thread_sleep_delay=555;
-select @@global.innodb_thread_sleep_delay;
-@@global.innodb_thread_sleep_delay
-555
-SET @@global.innodb_thread_sleep_delay = @start_global_value;
-SELECT @@global.innodb_thread_sleep_delay;
-@@global.innodb_thread_sleep_delay
-10000
diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff b/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff
index 84aecf2ce36..2f39a472b99 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff
+++ b/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff
@@ -9,15 +9,6 @@
VARIABLE_COMMENT Number of InnoDB Adaptive Hash Index Partitions (default 8)
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 512
-@@ -61,7 +61,7 @@
- SESSION_VALUE NULL
- DEFAULT_VALUE 150000
- VARIABLE_SCOPE GLOBAL
--VARIABLE_TYPE BIGINT UNSIGNED
-+VARIABLE_TYPE INT UNSIGNED
- VARIABLE_COMMENT The upper limit of the sleep delay in usec. Value of 0 disables it.
- NUMERIC_MIN_VALUE 0
- NUMERIC_MAX_VALUE 1000000
@@ -73,7 +73,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 64
@@ -76,16 +67,7 @@
VARIABLE_COMMENT A number between [0, 100] that tells how oftern buffer pool dump status in percentages should be printed. E.g. 10 means that buffer pool dump status is printed when every 10% of number of buffer pool pages are dumped. Default is 0 (only start and end status is printed).
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 100
-@@ -373,7 +373,7 @@
- SESSION_VALUE NULL
- DEFAULT_VALUE 0
- VARIABLE_SCOPE GLOBAL
--VARIABLE_TYPE BIGINT UNSIGNED
-+VARIABLE_TYPE INT UNSIGNED
- VARIABLE_COMMENT Helps in performance tuning in heavily concurrent environments.
- NUMERIC_MIN_VALUE 0
- NUMERIC_MAX_VALUE 1000
-@@ -409,7 +409,7 @@
+@@ -421,7 +421,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 5
VARIABLE_SCOPE GLOBAL
@@ -94,7 +76,7 @@
VARIABLE_COMMENT If the compression failure rate of a table is greater than this number more padding is added to the pages to reduce the failures. A value of zero implies no padding
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 100
-@@ -433,7 +433,7 @@
+@@ -445,7 +445,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 50
VARIABLE_SCOPE GLOBAL
@@ -103,20 +85,7 @@
VARIABLE_COMMENT Percentage of empty space on a data page that can be reserved to make the page compressible.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 75
-@@ -445,10 +445,10 @@
- SESSION_VALUE NULL
- DEFAULT_VALUE 5000
- VARIABLE_SCOPE GLOBAL
--VARIABLE_TYPE BIGINT UNSIGNED
-+VARIABLE_TYPE INT UNSIGNED
- VARIABLE_COMMENT Number of times a thread is allowed to enter InnoDB within the same SQL query after it has once got the ticket
- NUMERIC_MIN_VALUE 1
--NUMERIC_MAX_VALUE 18446744073709551615
-+NUMERIC_MAX_VALUE 4294967295
- NUMERIC_BLOCK_SIZE 0
- ENUM_VALUE_LIST NULL
- READ_ONLY NO
-@@ -673,7 +673,7 @@
+@@ -661,7 +661,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 120
VARIABLE_SCOPE GLOBAL
@@ -125,7 +94,7 @@
VARIABLE_COMMENT Number of pages reserved in doublewrite buffer for batch flushing
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 127
-@@ -769,7 +769,7 @@
+@@ -757,7 +757,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 600
VARIABLE_SCOPE GLOBAL
@@ -134,7 +103,7 @@
VARIABLE_COMMENT Maximum number of seconds that semaphore times out in InnoDB.
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 4294967295
-@@ -817,7 +817,7 @@
+@@ -805,7 +805,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
@@ -143,7 +112,7 @@
VARIABLE_COMMENT Make the first page of the given tablespace dirty.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 4294967295
-@@ -829,7 +829,7 @@
+@@ -817,7 +817,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 30
VARIABLE_SCOPE GLOBAL
@@ -152,7 +121,7 @@
VARIABLE_COMMENT Number of iterations over which the background flushing is averaged.
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 1000
-@@ -853,7 +853,7 @@
+@@ -841,7 +841,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 1
VARIABLE_SCOPE GLOBAL
@@ -161,7 +130,7 @@
VARIABLE_COMMENT Controls the durability/speed trade-off for commits. Set to 0 (write and flush redo log to disk only once per second), 1 (flush to disk at each commit), 2 (write to log at commit but flush to disk only once per second) or 3 (flush to disk at prepare and at commit, slower and usually redundant). 1 and 3 guarantees that after a crash, committed transactions will not be lost and will be consistent with the binlog and other transactional engines. 2 can get inconsistent and lose transactions if there is a power failure or kernel crash but not if mysqld crashes. 0 has no guarantees in case of crash. 0 and 2 can be faster than 1 or 3.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 3
-@@ -877,7 +877,7 @@
+@@ -865,7 +865,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 1
VARIABLE_SCOPE GLOBAL
@@ -170,7 +139,7 @@
VARIABLE_COMMENT Set to 0 (don't flush neighbors from buffer pool), 1 (flush contiguous neighbors from buffer pool) or 2 (flush neighbors from buffer pool), when flushing a block
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 2
-@@ -925,7 +925,7 @@
+@@ -913,7 +913,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
@@ -179,7 +148,7 @@
VARIABLE_COMMENT Helps to save your data in case the disk image of the database becomes corrupt. Value 5 can return bogus data, and 6 can permanently corrupt data.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 6
-@@ -949,7 +949,7 @@
+@@ -937,7 +937,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 8000000
VARIABLE_SCOPE GLOBAL
@@ -188,7 +157,7 @@
VARIABLE_COMMENT InnoDB Fulltext search cache size in bytes
NUMERIC_MIN_VALUE 1600000
NUMERIC_MAX_VALUE 80000000
-@@ -985,7 +985,7 @@
+@@ -973,7 +973,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 84
VARIABLE_SCOPE GLOBAL
@@ -197,7 +166,7 @@
VARIABLE_COMMENT InnoDB Fulltext search maximum token size in characters
NUMERIC_MIN_VALUE 10
NUMERIC_MAX_VALUE 84
-@@ -997,7 +997,7 @@
+@@ -985,7 +985,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 3
VARIABLE_SCOPE GLOBAL
@@ -206,7 +175,7 @@
VARIABLE_COMMENT InnoDB Fulltext search minimum token size in characters
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 16
-@@ -1009,7 +1009,7 @@
+@@ -997,7 +997,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 2000
VARIABLE_SCOPE GLOBAL
@@ -215,7 +184,7 @@
VARIABLE_COMMENT InnoDB Fulltext search number of words to optimize for each optimize table call
NUMERIC_MIN_VALUE 1000
NUMERIC_MAX_VALUE 10000
-@@ -1021,10 +1021,10 @@
+@@ -1009,10 +1009,10 @@
SESSION_VALUE NULL
DEFAULT_VALUE 2000000000
VARIABLE_SCOPE GLOBAL
@@ -228,7 +197,7 @@
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
READ_ONLY NO
-@@ -1045,7 +1045,7 @@
+@@ -1033,7 +1033,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 2
VARIABLE_SCOPE GLOBAL
@@ -237,7 +206,7 @@
VARIABLE_COMMENT InnoDB Fulltext search parallel sort degree, will round up to nearest power of 2 number
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 16
-@@ -1057,7 +1057,7 @@
+@@ -1045,7 +1045,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 640000000
VARIABLE_SCOPE GLOBAL
@@ -246,7 +215,7 @@
VARIABLE_COMMENT Total memory allocated for InnoDB Fulltext Search cache
NUMERIC_MIN_VALUE 32000000
NUMERIC_MAX_VALUE 1600000000
-@@ -1081,7 +1081,7 @@
+@@ -1069,7 +1069,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 100
VARIABLE_SCOPE GLOBAL
@@ -373,14 +342,14 @@
READ_ONLY YES
@@ -1489,7 +1489,7 @@
SESSION_VALUE NULL
- DEFAULT_VALUE 4
+ DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
-VARIABLE_TYPE BIGINT UNSIGNED
+VARIABLE_TYPE INT UNSIGNED
VARIABLE_COMMENT Deprecated parameter with no effect.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 64
-@@ -1525,7 +1525,7 @@
+@@ -1513,7 +1513,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 16384
VARIABLE_SCOPE GLOBAL
@@ -389,7 +358,7 @@
VARIABLE_COMMENT Page size to use for all InnoDB tablespaces.
NUMERIC_MIN_VALUE 4096
NUMERIC_MAX_VALUE 65536
-@@ -1561,7 +1561,7 @@
+@@ -1549,7 +1549,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 300
VARIABLE_SCOPE GLOBAL
@@ -398,7 +367,7 @@
VARIABLE_COMMENT Number of UNDO log pages to purge in one batch from the history list.
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 5000
-@@ -1573,7 +1573,7 @@
+@@ -1561,7 +1561,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 128
VARIABLE_SCOPE GLOBAL
@@ -407,7 +376,7 @@
VARIABLE_COMMENT Dictates rate at which UNDO records are purged. Value N means purge rollback segment(s) on every Nth iteration of purge invocation
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 128
-@@ -1609,7 +1609,7 @@
+@@ -1597,7 +1597,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 56
VARIABLE_SCOPE GLOBAL
@@ -416,7 +385,7 @@
VARIABLE_COMMENT Number of pages that must be accessed sequentially for InnoDB to trigger a readahead.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 64
-@@ -1621,7 +1621,7 @@
+@@ -1609,7 +1609,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 4
VARIABLE_SCOPE GLOBAL
@@ -425,20 +394,7 @@
VARIABLE_COMMENT Number of background read I/O threads in InnoDB.
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 64
-@@ -1645,10 +1645,10 @@
- SESSION_VALUE NULL
- DEFAULT_VALUE 0
- VARIABLE_SCOPE GLOBAL
--VARIABLE_TYPE BIGINT UNSIGNED
-+VARIABLE_TYPE INT UNSIGNED
- VARIABLE_COMMENT Replication thread delay (ms) on the slave server if innodb_thread_concurrency is reached (0 by default)
- NUMERIC_MIN_VALUE 0
--NUMERIC_MAX_VALUE 18446744073709551615
-+NUMERIC_MAX_VALUE 4294967295
- NUMERIC_BLOCK_SIZE 0
- ENUM_VALUE_LIST NULL
- READ_ONLY NO
-@@ -1669,7 +1669,7 @@
+@@ -1657,7 +1657,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
@@ -447,7 +403,7 @@
VARIABLE_COMMENT An InnoDB page number.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 4294967295
-@@ -1717,7 +1717,7 @@
+@@ -1705,7 +1705,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 1048576
VARIABLE_SCOPE GLOBAL
@@ -456,7 +412,7 @@
VARIABLE_COMMENT Memory buffer size for index creation
NUMERIC_MIN_VALUE 65536
NUMERIC_MAX_VALUE 67108864
-@@ -1885,7 +1885,7 @@
+@@ -1873,7 +1873,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 1
VARIABLE_SCOPE GLOBAL
@@ -465,7 +421,7 @@
VARIABLE_COMMENT Size of the mutex/lock wait array.
NUMERIC_MIN_VALUE 1
NUMERIC_MAX_VALUE 1024
-@@ -1909,10 +1909,10 @@
+@@ -1897,10 +1897,10 @@
SESSION_VALUE NULL
DEFAULT_VALUE 30
VARIABLE_SCOPE GLOBAL
@@ -478,25 +434,7 @@
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
READ_ONLY NO
-@@ -1945,7 +1945,7 @@
- SESSION_VALUE NULL
- DEFAULT_VALUE 0
- VARIABLE_SCOPE GLOBAL
--VARIABLE_TYPE BIGINT UNSIGNED
-+VARIABLE_TYPE INT UNSIGNED
- VARIABLE_COMMENT Helps in performance tuning in heavily concurrent environments. Sets the maximum number of threads allowed inside InnoDB. Value 0 will disable the thread throttling.
- NUMERIC_MIN_VALUE 0
- NUMERIC_MAX_VALUE 1000
-@@ -1957,7 +1957,7 @@
- SESSION_VALUE NULL
- DEFAULT_VALUE 10000
- VARIABLE_SCOPE GLOBAL
--VARIABLE_TYPE BIGINT UNSIGNED
-+VARIABLE_TYPE INT UNSIGNED
- VARIABLE_COMMENT Time of innodb thread sleeping before joining InnoDB queue (usec). Value 0 disable a sleep
- NUMERIC_MIN_VALUE 0
- NUMERIC_MAX_VALUE 1000000
-@@ -2017,7 +2017,7 @@
+@@ -2005,7 +2005,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 128
VARIABLE_SCOPE GLOBAL
@@ -505,7 +443,7 @@
VARIABLE_COMMENT Deprecated parameter with no effect.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 128
-@@ -2041,7 +2041,7 @@
+@@ -2029,7 +2029,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
@@ -514,7 +452,7 @@
VARIABLE_COMMENT Number of undo tablespaces to use.
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 127
-@@ -2065,7 +2065,7 @@
+@@ -2053,7 +2053,7 @@
SESSION_VALUE NULL
DEFAULT_VALUE 4
VARIABLE_SCOPE GLOBAL
diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
index 4d062995b1e..aca20cee96a 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result
+++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
@@ -59,15 +59,15 @@ READ_ONLY YES
COMMAND_LINE_ARGUMENT OPTIONAL
VARIABLE_NAME INNODB_ADAPTIVE_MAX_SLEEP_DELAY
SESSION_VALUE NULL
-DEFAULT_VALUE 150000
+DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
-VARIABLE_TYPE BIGINT UNSIGNED
-VARIABLE_COMMENT The upper limit of the sleep delay in usec. Value of 0 disables it.
+VARIABLE_TYPE INT UNSIGNED
+VARIABLE_COMMENT Deprecated parameter with no effect.
NUMERIC_MIN_VALUE 0
-NUMERIC_MAX_VALUE 1000000
+NUMERIC_MAX_VALUE 0
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
-READ_ONLY NO
+READ_ONLY YES
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME INNODB_AUTOEXTEND_INCREMENT
SESSION_VALUE NULL
@@ -385,13 +385,13 @@ VARIABLE_NAME INNODB_COMMIT_CONCURRENCY
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
-VARIABLE_TYPE BIGINT UNSIGNED
-VARIABLE_COMMENT Helps in performance tuning in heavily concurrent environments.
+VARIABLE_TYPE INT UNSIGNED
+VARIABLE_COMMENT Deprecated parameter with no effect.
NUMERIC_MIN_VALUE 0
-NUMERIC_MAX_VALUE 1000
+NUMERIC_MAX_VALUE 0
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
-READ_ONLY NO
+READ_ONLY YES
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME INNODB_COMPRESSION_ALGORITHM
SESSION_VALUE NULL
@@ -455,15 +455,15 @@ READ_ONLY NO
COMMAND_LINE_ARGUMENT OPTIONAL
VARIABLE_NAME INNODB_CONCURRENCY_TICKETS
SESSION_VALUE NULL
-DEFAULT_VALUE 5000
+DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
-VARIABLE_TYPE BIGINT UNSIGNED
-VARIABLE_COMMENT Number of times a thread is allowed to enter InnoDB within the same SQL query after it has once got the ticket
-NUMERIC_MIN_VALUE 1
-NUMERIC_MAX_VALUE 18446744073709551615
+VARIABLE_TYPE INT UNSIGNED
+VARIABLE_COMMENT Deprecated parameter with no effect.
+NUMERIC_MIN_VALUE 0
+NUMERIC_MAX_VALUE 0
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
-READ_ONLY NO
+READ_ONLY YES
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME INNODB_DATA_FILE_PATH
SESSION_VALUE NULL
@@ -1633,13 +1633,13 @@ VARIABLE_NAME INNODB_REPLICATION_DELAY
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
-VARIABLE_TYPE BIGINT UNSIGNED
-VARIABLE_COMMENT Replication thread delay (ms) on the slave server if innodb_thread_concurrency is reached (0 by default)
+VARIABLE_TYPE INT UNSIGNED
+VARIABLE_COMMENT Deprecated parameter with no effect.
NUMERIC_MIN_VALUE 0
-NUMERIC_MAX_VALUE 18446744073709551615
+NUMERIC_MAX_VALUE 0
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
-READ_ONLY NO
+READ_ONLY YES
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME INNODB_ROLLBACK_ON_TIMEOUT
SESSION_VALUE NULL
@@ -1933,25 +1933,25 @@ VARIABLE_NAME INNODB_THREAD_CONCURRENCY
SESSION_VALUE NULL
DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
-VARIABLE_TYPE BIGINT UNSIGNED
-VARIABLE_COMMENT Helps in performance tuning in heavily concurrent environments. Sets the maximum number of threads allowed inside InnoDB. Value 0 will disable the thread throttling.
+VARIABLE_TYPE INT UNSIGNED
+VARIABLE_COMMENT Deprecated parameter with no effect.
NUMERIC_MIN_VALUE 0
-NUMERIC_MAX_VALUE 1000
+NUMERIC_MAX_VALUE 0
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
-READ_ONLY NO
+READ_ONLY YES
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME INNODB_THREAD_SLEEP_DELAY
SESSION_VALUE NULL
-DEFAULT_VALUE 10000
+DEFAULT_VALUE 0
VARIABLE_SCOPE GLOBAL
-VARIABLE_TYPE BIGINT UNSIGNED
-VARIABLE_COMMENT Time of innodb thread sleeping before joining InnoDB queue (usec). Value 0 disable a sleep
+VARIABLE_TYPE INT UNSIGNED
+VARIABLE_COMMENT Deprecated parameter with no effect.
NUMERIC_MIN_VALUE 0
-NUMERIC_MAX_VALUE 1000000
+NUMERIC_MAX_VALUE 0
NUMERIC_BLOCK_SIZE 0
ENUM_VALUE_LIST NULL
-READ_ONLY NO
+READ_ONLY YES
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME INNODB_TMPDIR
SESSION_VALUE
diff --git a/mysql-test/suite/sys_vars/t/innodb_adaptive_max_sleep_delay_basic.test b/mysql-test/suite/sys_vars/t/innodb_adaptive_max_sleep_delay_basic.test
deleted file mode 100644
index 49349d86713..00000000000
--- a/mysql-test/suite/sys_vars/t/innodb_adaptive_max_sleep_delay_basic.test
+++ /dev/null
@@ -1,93 +0,0 @@
-################## mysql-test/t/innodb_adaptive_max_sleep_delay.test ##########
-# #
-# Variable Name: innodb_adaptive_max_sleep_delay #
-# Scope: Global #
-# Access Type: Dynamic #
-# Data Type: numeric #
-# #
-# Note: This variable is only defined if innodb_have_atomic_builtins=ON #
-# #
-# Creation Date: 2011-08-17 #
-# Author : Sunny Bains #
-# #
-# #
-# Description: Dynamic config global variable innodb_adaptive_max_sleep_delay #
-# * Value check #
-# * Scope check #
-# #
-###############################################################################
-
---source include/have_innodb.inc
-
-# Check if builtins are enabled
-if (`SELECT LOWER(VARIABLE_VALUE)='off' FROM INFORMATION_SCHEMA.GLOBAL_STATUS
- WHERE LOWER(variable_name) = 'innodb_have_atomic_builtins'`) {
- --skip Test requires InnoDB atomic builtins
-}
-
-# Display default value
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
---echo 150000 Expected
-
-# Check if value can be set
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=100;
-
-# Check for valid values
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=0;
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=100000;
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=1000000;
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
-
-# Check for out of bounds
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=1000001;
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
---echo 1000000 Expected
-
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=4294967295;
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
---echo 1000000 Expected
-
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=-1;
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
---echo 0 Expected
-
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=-1024;
-SELECT @@GLOBAL.innodb_adaptive_max_sleep_delay;
---echo 0 Expected
-
-SELECT COUNT(@@GLOBAL.innodb_adaptive_max_sleep_delay);
---echo 1 Expected
-
-# Check if the value in GLOBAL table matches value in variable
---disable_warnings
-SELECT VARIABLE_VALUE
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
-WHERE VARIABLE_NAME='innodb_adaptive_max_sleep_delay';
---enable_warnings
---echo 100 Expected
-
-# Check if accessing variable with and without GLOBAL point to same
-# variable
-SELECT @@innodb_adaptive_max_sleep_delay = @@GLOBAL.innodb_adaptive_max_sleep_delay;
---echo 1000000 Expected
-
-# Check if innodb_adaptive_max_sleep_delay can be accessed with and
-# without @@ sign.
-SELECT COUNT(@@innodb_adaptive_max_sleep_delay);
---echo 1 Expected
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@local.innodb_adaptive_max_sleep_delay);
---echo Expected error 'Variable is a GLOBAL variable'
-
---Error ER_INCORRECT_GLOBAL_LOCAL_VAR
-SELECT COUNT(@@SESSION.innodb_adaptive_max_sleep_delay);
---echo Expected error 'Variable is a GLOBAL variable'
-
---Error ER_BAD_FIELD_ERROR
-SELECT innodb_adaptive_max_sleep_delay = @@SESSION.innodb_adaptive_max_sleep_delay;
-
-# Reset the default
-SET @@GLOBAL.innodb_adaptive_max_sleep_delay=150000;
diff --git a/mysql-test/suite/sys_vars/t/innodb_commit_concurrency_basic.test b/mysql-test/suite/sys_vars/t/innodb_commit_concurrency_basic.test
deleted file mode 100644
index 4ed706b372b..00000000000
--- a/mysql-test/suite/sys_vars/t/innodb_commit_concurrency_basic.test
+++ /dev/null
@@ -1,144 +0,0 @@
-################# mysql-test\t\innodb_commit_concurrency_basic.test ###########
-# #
-# Variable Name: innodb_commit_concurrency #
-# Scope: GLOBAL #
-# Access Type: Dynamic #
-# Data Type: Numeric #
-# Default Value: 0 #
-# Range: 0-1000 #
-# #
-# #
-# Creation Date: 2008-02-07 #
-# Author: Rizwan #
-# #
-#Description:Test Cases of Dynamic System Variable innodb_commit_concurrency #
-# that checks the behavior of this variable in the following ways #
-# * Default Value #
-# * Valid & Invalid values #
-# * Scope & Access method #
-# * Data Integrity #
-# #
-# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
-# server-system-variables.html #
-# #
-###############################################################################
-
---source include/have_innodb.inc
---source include/load_sysvars.inc
-
-########################################################################
-# START OF innodb_commit_concurrency TESTS #
-########################################################################
-
-
-##############################################################################
-# Saving initial value of innodb_commit_concurrency in a temporary variable#
-##############################################################################
-
-SET @global_start_value = @@global.innodb_commit_concurrency;
-SELECT @global_start_value;
-
---echo '#--------------------FN_DYNVARS_046_01------------------------#'
-########################################################################
-# Display the DEFAULT value of innodb_commit_concurrency #
-########################################################################
-
-SET @@global.innodb_commit_concurrency = 0;
-SET @@global.innodb_commit_concurrency = DEFAULT;
-SELECT @@global.innodb_commit_concurrency;
-
---echo '#---------------------FN_DYNVARS_046_02-------------------------#'
-################################################################################
-# Check if innodb_commit_concurrency can be accessed with and without @@ sign#
-################################################################################
-
---Error ER_GLOBAL_VARIABLE
-SET innodb_commit_concurrency = 1;
-SELECT @@innodb_commit_concurrency;
-
-
---Error ER_UNKNOWN_TABLE
-SELECT local.innodb_commit_concurrency;
-
-SET global innodb_commit_concurrency = 0;
-
-SELECT @@global.innodb_commit_concurrency;
-
-
---echo '#--------------------FN_DYNVARS_046_03------------------------#'
-##########################################################################
-# change the value of innodb_commit_concurrency to a valid value #
-##########################################################################
-
-
-SET @@global.innodb_commit_concurrency = 0;
-SELECT @@global.innodb_commit_concurrency;
-
---echo '#--------------------FN_DYNVARS_046_04-------------------------#'
-###########################################################################
-# Change the value of innodb_commit_concurrency to invalid value #
-###########################################################################
-
-#
-# InnoDB doesn't allow innodb_commit_concurrency to change from
-# zero to non-zero or vice versa
-#
---Error ER_WRONG_VALUE_FOR_VAR
-SET @@global.innodb_commit_concurrency = 1;
-SELECT @@global.innodb_commit_concurrency;
---Error ER_WRONG_VALUE_FOR_VAR
-SET @@global.innodb_commit_concurrency = -1;
-SELECT @@global.innodb_commit_concurrency;
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_commit_concurrency = "T";
-SELECT @@global.innodb_commit_concurrency;
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_commit_concurrency = "Y";
-SELECT @@global.innodb_commit_concurrency;
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_commit_concurrency = 1.1;
-SELECT @@global.innodb_commit_concurrency;
---Error ER_WRONG_VALUE_FOR_VAR
-SET @@global.innodb_commit_concurrency = 1001;
-SELECT @@global.innodb_commit_concurrency;
-
-
-
---echo '#----------------------FN_DYNVARS_046_05------------------------#'
-#########################################################################
-# Check if the value in GLOBAL Table matches value in variable #
-#########################################################################
-
---disable_warnings
-SELECT @@global.innodb_commit_concurrency =
- VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
- WHERE VARIABLE_NAME='innodb_commit_concurrency';
-SELECT @@global.innodb_commit_concurrency;
-SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
- WHERE VARIABLE_NAME='innodb_commit_concurrency';
---enable_warnings
-
---echo '#---------------------FN_DYNVARS_046_06-------------------------#'
-###################################################################
-# Check if ON and OFF values can be used on variable #
-###################################################################
-
---ERROR ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_commit_concurrency = OFF;
-SELECT @@global.innodb_commit_concurrency;
-
---ERROR ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_commit_concurrency = ON;
-SELECT @@global.innodb_commit_concurrency;
-
-##############################
-# Restore initial value #
-##############################
-
-
-SET @@global.innodb_commit_concurrency = @global_start_value;
-SELECT @@global.innodb_commit_concurrency;
-
-###############################################################
-# END OF innodb_commit_concurrency TESTS #
-###############################################################
diff --git a/mysql-test/suite/sys_vars/t/innodb_concurrency_tickets_basic.test b/mysql-test/suite/sys_vars/t/innodb_concurrency_tickets_basic.test
deleted file mode 100644
index d753b8bc344..00000000000
--- a/mysql-test/suite/sys_vars/t/innodb_concurrency_tickets_basic.test
+++ /dev/null
@@ -1,181 +0,0 @@
-################# mysql-test\t\innodb_concurrency_tickets_basic.test ##########
-# #
-# Variable Name: innodb_concurrency_tickets #
-# Scope: GLOBAL #
-# Access Type: Dynamic #
-# Data Type: Numeric #
-# Default Value: 5000 #
-# Range: 1-4294967295 #
-# #
-# #
-# Creation Date: 2008-02-07 #
-# Author: Rizwan #
-# #
-#Description:Test Cases of Dynamic System Variable innodb_concurrency_tickets #
-# that checks the behavior of this variable in the following ways #
-# * Default Value #
-# * Valid & Invalid values #
-# * Scope & Access method #
-# * Data Integrity #
-# #
-# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
-# server-system-variables.html #
-# #
-###############################################################################
-
---source include/have_innodb.inc
---source include/load_sysvars.inc
-
-########################################################################
-# START OF innodb_concurrency_tickets TESTS #
-########################################################################
-
-
-################################################################################
-# Saving initial value of innodb_concurrency_tickets in a temporary variable #
-################################################################################
-
-SET @global_start_value = @@global.innodb_concurrency_tickets;
-SELECT @global_start_value;
-
---echo '#--------------------FN_DYNVARS_046_01------------------------#'
-########################################################################
-# Display the DEFAULT value of innodb_concurrency_tickets #
-########################################################################
-
-SET @@global.innodb_concurrency_tickets = 0;
-SET @@global.innodb_concurrency_tickets = DEFAULT;
-SELECT @@global.innodb_concurrency_tickets;
-
---echo '#---------------------FN_DYNVARS_046_02-------------------------#'
-################################################################################
-# Check if innodb_concurrency_tickets can be accessed with and without @@ sign #
-################################################################################
-
---Error ER_GLOBAL_VARIABLE
-SET innodb_concurrency_tickets = 1;
-SELECT @@innodb_concurrency_tickets;
-
---Error ER_UNKNOWN_TABLE
-SELECT local.innodb_concurrency_tickets;
-
-SET global innodb_concurrency_tickets = 0;
-SELECT @@global.innodb_concurrency_tickets;
-
-
---echo '#--------------------FN_DYNVARS_046_03------------------------#'
-##########################################################################
-# change the value of innodb_concurrency_tickets to a valid value #
-##########################################################################
-
-SET @@global.innodb_concurrency_tickets = 1;
-SELECT @@global.innodb_concurrency_tickets;
-
-SET @@global.innodb_concurrency_tickets = 1000;
-SELECT @@global.innodb_concurrency_tickets;
-
-SET @@global.innodb_concurrency_tickets = 4294967295;
-SELECT @@global.innodb_concurrency_tickets;
-
---echo '#--------------------FN_DYNVARS_046_04-------------------------#'
-###########################################################################
-# Check the value of innodb_concurrency_tickets for out of bounds #
-###########################################################################
-
-# With a 64 bit mysqld:18446744073709551615,with a 32 bit mysqld: 4294967295
---disable_warnings
-SET @@global.innodb_concurrency_tickets = 4294967296;
---enable_warnings
-SELECT @@global.innodb_concurrency_tickets IN (4294967296,4294967295);
-
---disable_warnings
-SET @@global.innodb_concurrency_tickets = 12345678901;
---enable_warnings
-SELECT @@global.innodb_concurrency_tickets IN (12345678901,4294967295);
-
---disable_warnings
-SET @@global.innodb_concurrency_tickets = 18446744073709551615;
---enable_warnings
-SELECT @@global.innodb_concurrency_tickets IN (18446744073709551615,4294967295);
-
---echo '#--------------------FN_DYNVARS_046_05-------------------------#'
-###########################################################################
-# Change the value of innodb_concurrency_tickets to invalid value #
-###########################################################################
-
-SET @@global.innodb_concurrency_tickets = -1;
-SELECT @@global.innodb_concurrency_tickets;
-
-SET @@global.innodb_concurrency_tickets = -1024;
-SELECT @@global.innodb_concurrency_tickets;
-
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_concurrency_tickets = "T";
-SELECT @@global.innodb_concurrency_tickets;
-
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_concurrency_tickets = "Y";
-SELECT @@global.innodb_concurrency_tickets;
-
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_concurrency_tickets = 1.1;
-SELECT @@global.innodb_concurrency_tickets;
-
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_concurrency_tickets = " ";
-SELECT @@global.innodb_concurrency_tickets;
-
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_concurrency_tickets = ' ';
-SELECT @@global.innodb_concurrency_tickets;
-
---echo '#----------------------FN_DYNVARS_046_06------------------------#'
-#########################################################################
-# Check if the value in GLOBAL Table matches value in variable #
-#########################################################################
-
---disable_warnings
-SELECT @@global.innodb_concurrency_tickets =
- VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
- WHERE VARIABLE_NAME='innodb_concurrency_tickets';
---enable_warnings
-SELECT @@global.innodb_concurrency_tickets;
---disable_warnings
-SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
- WHERE VARIABLE_NAME='innodb_concurrency_tickets';
---enable_warnings
-
---echo '#---------------------FN_DYNVARS_046_07-------------------------#'
-###################################################################
-# Check if ON and OFF values can be used on variable #
-###################################################################
-
---ERROR ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_concurrency_tickets = OFF;
-SELECT @@global.innodb_concurrency_tickets;
-
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_concurrency_tickets = ON;
-SELECT @@global.innodb_concurrency_tickets;
-
---echo '#---------------------FN_DYNVARS_046_08----------------------#'
-###################################################################
-# Check if TRUE and FALSE values can be used on variable #
-###################################################################
-
-SET @@global.innodb_concurrency_tickets = TRUE;
-SELECT @@global.innodb_concurrency_tickets;
-SET @@global.innodb_concurrency_tickets = FALSE;
-SELECT @@global.innodb_concurrency_tickets;
-
-##############################
-# Restore initial value #
-##############################
-
-SET @@global.innodb_concurrency_tickets = @global_start_value;
-SELECT @@global.innodb_concurrency_tickets;
-
-###############################################################
-# END OF innodb_concurrency_tickets TESTS #
-###############################################################
-
diff --git a/mysql-test/suite/sys_vars/t/innodb_replication_delay_basic.test b/mysql-test/suite/sys_vars/t/innodb_replication_delay_basic.test
deleted file mode 100644
index c85cc85e78c..00000000000
--- a/mysql-test/suite/sys_vars/t/innodb_replication_delay_basic.test
+++ /dev/null
@@ -1,102 +0,0 @@
-
-#
-# 2010-01-27 - Added
-#
-
---source include/have_innodb.inc
-
-SET @start_global_value = @@global.innodb_replication_delay;
-SELECT @start_global_value;
-
-#
-# exists as global only
-#
---echo Valid values are zero or above
-select @@global.innodb_replication_delay >=0;
-select @@global.innodb_replication_delay;
---error ER_INCORRECT_GLOBAL_LOCAL_VAR
-select @@session.innodb_replication_delay;
-show global variables like 'innodb_replication_delay';
-show session variables like 'innodb_replication_delay';
---disable_warnings
-select * from information_schema.global_variables where variable_name='innodb_replication_delay';
-select * from information_schema.session_variables where variable_name='innodb_replication_delay';
---enable_warnings
-
-#
-# show that it's writable
-#
-set global innodb_replication_delay=10;
-select @@global.innodb_replication_delay;
---disable_warnings
-select * from information_schema.global_variables where variable_name='innodb_replication_delay';
-select * from information_schema.session_variables where variable_name='innodb_replication_delay';
---enable_warnings
---error ER_GLOBAL_VARIABLE
-set session innodb_replication_delay=1;
-
-#
-# check the default value
-#
-set global innodb_replication_delay=DEFAULT;
-select @@global.innodb_replication_delay;
-
-#
-# valid values
-#
-
-set global innodb_replication_delay=0;
-select @@global.innodb_replication_delay;
-set global innodb_replication_delay=65535;
-select @@global.innodb_replication_delay;
-set global innodb_replication_delay=4294967295;
-select @@global.innodb_replication_delay;
-
-#
-# incorrect types
-#
---error ER_WRONG_TYPE_FOR_VAR
-set global innodb_replication_delay=1.1;
---error ER_WRONG_TYPE_FOR_VAR
-set global innodb_replication_delay=1e1;
---error ER_WRONG_TYPE_FOR_VAR
-set global innodb_replication_delay="foo";
---error ER_WRONG_TYPE_FOR_VAR
-set global innodb_replication_delay=' ';
-select @@global.innodb_replication_delay;
---error ER_WRONG_TYPE_FOR_VAR
-set global innodb_replication_delay=" ";
-select @@global.innodb_replication_delay;
-set global innodb_replication_delay=-7;
-select @@global.innodb_replication_delay;
-set global innodb_replication_delay=-1024;
-select @@global.innodb_replication_delay;
---disable_warnings
-select * from information_schema.global_variables where variable_name='innodb_replication_delay';
---enable_warnings
-
-#
-# Check for out of bounds
-#
-
-# With a 64 bit mysqld:18446744073709551615,with a 32 bit mysqld: 4294967295
---disable_warnings
-SET @@global.innodb_replication_delay = 4294967296;
---enable_warnings
-SELECT @@global.innodb_replication_delay IN (4294967296,4294967295);
-
---disable_warnings
-SET @@global.innodb_replication_delay = 12345678901;
---enable_warnings
-SELECT @@global.innodb_replication_delay IN (12345678901,4294967295);
-
---disable_warnings
-SET @@global.innodb_replication_delay = 18446744073709551615;
---enable_warnings
-SELECT @@global.innodb_replication_delay IN (18446744073709551615,4294967295);
-
-#
-# cleanup
-#
-SET @@global.innodb_replication_delay = @start_global_value;
-SELECT @@global.innodb_replication_delay;
diff --git a/mysql-test/suite/sys_vars/t/innodb_thread_concurrency_basic.test b/mysql-test/suite/sys_vars/t/innodb_thread_concurrency_basic.test
deleted file mode 100644
index 0be32543d26..00000000000
--- a/mysql-test/suite/sys_vars/t/innodb_thread_concurrency_basic.test
+++ /dev/null
@@ -1,164 +0,0 @@
-################# mysql-test\t\innodb_thread_concurrency_basic.test ###########
-# #
-# Variable Name: innodb_thread_concurrency #
-# Scope: GLOBAL #
-# Access Type: Dynamic #
-# Data Type: Numeric #
-# Default Value: 0 #
-# Range: 0-1000 #
-# #
-# #
-# Creation Date: 2008-02-07 #
-# Author: Rizwan #
-# #
-#Description:Test Cases of Dynamic System Variable innodb_thread_concurrency #
-# that checks the behavior of this variable in the following ways #
-# * Default Value #
-# * Valid & Invalid values #
-# * Scope & Access method #
-# * Data Integrity #
-# #
-# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
-# server-system-variables.html #
-# #
-###############################################################################
-
---source include/have_innodb.inc
---source include/load_sysvars.inc
-
-########################################################################
-# START OF innodb_thread_concurrency TESTS #
-########################################################################
-
-
-################################################################################
-# Saving initial value of innodb_thread_concurrency in a temporary variable #
-################################################################################
-
-
-SET @global_start_value = @@global.innodb_thread_concurrency;
-SELECT @global_start_value;
-
-
-
---echo '#--------------------FN_DYNVARS_046_01------------------------#'
-########################################################################
-# Display the DEFAULT value of innodb_thread_concurrency #
-########################################################################
-
-
-
-SET @@global.innodb_thread_concurrency = 0;
-SET @@global.innodb_thread_concurrency = DEFAULT;
-SELECT @@global.innodb_thread_concurrency;
-
---echo '#---------------------FN_DYNVARS_046_02-------------------------#'
-###############################################################################
-# Check if innodb_thread_concurrency can be accessed with and without @@ sign #
-###############################################################################
-
---Error ER_GLOBAL_VARIABLE
-SET innodb_thread_concurrency = 1;
-SELECT @@innodb_thread_concurrency;
-
-
---Error ER_UNKNOWN_TABLE
-SELECT local.innodb_thread_concurrency;
-
-
-SET global innodb_thread_concurrency = 0;
-SELECT @@global.innodb_thread_concurrency;
-
-
---echo '#--------------------FN_DYNVARS_046_03------------------------#'
-##########################################################################
-# change the value of innodb_thread_concurrency to a valid value #
-##########################################################################
-
-
-SET @@global.innodb_thread_concurrency = 0;
-SELECT @@global.innodb_thread_concurrency;
-
-SET @@global.innodb_thread_concurrency = 1;
-SELECT @@global.innodb_thread_concurrency;
-SET @@global.innodb_thread_concurrency = 1000;
-SELECT @@global.innodb_thread_concurrency;
-
---echo '#--------------------FN_DYNVARS_046_04-------------------------#'
-###########################################################################
-# Change the value of innodb_thread_concurrency to invalid value #
-###########################################################################
-
-SET @@global.innodb_thread_concurrency = -1;
-SELECT @@global.innodb_thread_concurrency;
-
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_thread_concurrency = "T";
-SELECT @@global.innodb_thread_concurrency;
-
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_thread_concurrency = "Y";
-SELECT @@global.innodb_thread_concurrency;
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_thread_concurrency = ' ';
-SELECT @@global.innodb_thread_concurrency;
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_thread_concurrency = " ";
-SELECT @@global.innodb_thread_concurrency;
-
-SET @@global.innodb_thread_concurrency = 1001;
-SELECT @@global.innodb_thread_concurrency;
-
---Error ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_thread_concurrency = 255.01;
-SELECT @@global.innodb_thread_concurrency;
-
---echo '#----------------------FN_DYNVARS_046_05------------------------#'
-#########################################################################
-# Check if the value in GLOBAL Table matches value in variable #
-#########################################################################
-
---disable_warnings
-SELECT @@global.innodb_thread_concurrency =
- VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
- WHERE VARIABLE_NAME='innodb_thread_concurrency';
---enable_warnings
-SELECT @@global.innodb_thread_concurrency;
---disable_warnings
-SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
- WHERE VARIABLE_NAME='innodb_thread_concurrency';
---enable_warnings
-
---echo '#---------------------FN_DYNVARS_046_06-------------------------#'
-###################################################################
-# Check if ON and OFF values can be used on variable #
-###################################################################
-
---ERROR ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_thread_concurrency = OFF;
-SELECT @@global.innodb_thread_concurrency;
-
---ERROR ER_WRONG_TYPE_FOR_VAR
-SET @@global.innodb_thread_concurrency = ON;
-SELECT @@global.innodb_thread_concurrency;
-
---echo '#---------------------FN_DYNVARS_046_07----------------------#'
-###################################################################
-# Check if TRUE and FALSE values can be used on variable #
-###################################################################
-
-SET @@global.innodb_thread_concurrency = TRUE;
-SELECT @@global.innodb_thread_concurrency;
-SET @@global.innodb_thread_concurrency = FALSE;
-SELECT @@global.innodb_thread_concurrency;
-
-##############################
-# Restore initial value #
-##############################
-
-SET @@global.innodb_thread_concurrency = @global_start_value;
-SELECT @@global.innodb_thread_concurrency;
-
-###############################################################
-# END OF innodb_thread_concurrency TESTS #
-###############################################################
diff --git a/mysql-test/suite/sys_vars/t/innodb_thread_sleep_delay_basic.test b/mysql-test/suite/sys_vars/t/innodb_thread_sleep_delay_basic.test
deleted file mode 100644
index bc4efdd1d6f..00000000000
--- a/mysql-test/suite/sys_vars/t/innodb_thread_sleep_delay_basic.test
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# 2010-01-27 - Added
-#
-
---source include/have_innodb.inc
-
-SET @start_global_value = @@global.innodb_thread_sleep_delay;
-SELECT @start_global_value;
-
-#
-# exists as global only
-#
---echo Valid values are zero or above
-select @@global.innodb_thread_sleep_delay >=0;
-select @@global.innodb_thread_sleep_delay;
---error ER_INCORRECT_GLOBAL_LOCAL_VAR
-select @@session.innodb_thread_sleep_delay;
-show global variables like 'innodb_thread_sleep_delay';
-show session variables like 'innodb_thread_sleep_delay';
-select * from information_schema.global_variables where variable_name='innodb_thread_sleep_delay';
-select * from information_schema.session_variables where variable_name='innodb_thread_sleep_delay';
-
-#
-# show that it's writable
-#
-set global innodb_thread_sleep_delay=10;
-select @@global.innodb_thread_sleep_delay;
-select * from information_schema.global_variables where variable_name='innodb_thread_sleep_delay';
-select * from information_schema.session_variables where variable_name='innodb_thread_sleep_delay';
---error ER_GLOBAL_VARIABLE
-set session innodb_thread_sleep_delay=1;
-
-#
-# incorrect types
-#
---error ER_WRONG_TYPE_FOR_VAR
-set global innodb_thread_sleep_delay=1.1;
---error ER_WRONG_TYPE_FOR_VAR
-set global innodb_thread_sleep_delay=1e1;
---error ER_WRONG_TYPE_FOR_VAR
-set global innodb_thread_sleep_delay="foo";
-
-set global innodb_thread_sleep_delay=18446744073709551616;
-
-set global innodb_thread_sleep_delay=-7;
-select @@global.innodb_thread_sleep_delay;
-select * from information_schema.global_variables where variable_name='innodb_thread_sleep_delay';
-
-#
-# correct/overflowed values
-#
-set global innodb_thread_sleep_delay=0;
-select @@global.innodb_thread_sleep_delay;
-set global innodb_thread_sleep_delay=1000;
-select @@global.innodb_thread_sleep_delay;
-set global innodb_thread_sleep_delay=1000000;
-select @@global.innodb_thread_sleep_delay;
-set global innodb_thread_sleep_delay=1000001;
-select @@global.innodb_thread_sleep_delay;
-set global innodb_thread_sleep_delay=4294967295;
-select @@global.innodb_thread_sleep_delay;
-set global innodb_thread_sleep_delay=555;
-select @@global.innodb_thread_sleep_delay;
-
-#
-# cleanup
-#
-SET @@global.innodb_thread_sleep_delay = @start_global_value;
-SELECT @@global.innodb_thread_sleep_delay;
diff --git a/storage/innobase/CMakeLists.txt b/storage/innobase/CMakeLists.txt
index b6ea78115e9..0547674a4dd 100644
--- a/storage/innobase/CMakeLists.txt
+++ b/storage/innobase/CMakeLists.txt
@@ -235,7 +235,6 @@ SET(INNOBASE_SOURCES
include/row0upd.h
include/row0upd.ic
include/row0vers.h
- include/srv0conc.h
include/srv0mon.h
include/srv0mon.ic
include/srv0srv.h
@@ -328,7 +327,6 @@ SET(INNOBASE_SOURCES
row/row0upd.cc
row/row0quiesce.cc
row/row0vers.cc
- srv/srv0conc.cc
srv/srv0mon.cc
srv/srv0srv.cc
srv/srv0start.cc
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index 1db3d73c027..0eec60d4492 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -157,9 +157,6 @@ void close_thread_tables(THD* thd);
#endif /* WITH_WSREP */
/** to force correct commit order in binlog */
-static ulong commit_threads = 0;
-static mysql_cond_t commit_cond;
-static mysql_mutex_t commit_cond_m;
static mysql_mutex_t pending_checkpoint_mutex;
#define INSIDE_HA_INNOBASE_CC
@@ -174,7 +171,6 @@ static const long AUTOINC_NO_LOCKING = 2;
static ulong innobase_open_files;
static long innobase_autoinc_lock_mode;
-static ulong innobase_commit_concurrency;
static ulonglong innobase_buffer_pool_size;
@@ -1184,20 +1180,6 @@ innobase_release_savepoint(
static void innobase_checkpoint_request(handlerton *hton, void *cookie);
-/** @brief Initialize the default value of innodb_commit_concurrency.
-
-Once InnoDB is running, the innodb_commit_concurrency must not change
-from zero to nonzero. (Bug #42101)
-
-The initial default value is 0, and without this extra initialization,
-SET GLOBAL innodb_commit_concurrency=DEFAULT would set the parameter
-to 0, even if it was initially set to nonzero at the command line
-or configuration file. */
-static
-void
-innobase_commit_concurrency_init_default();
-/*=======================================*/
-
/** @brief Adjust some InnoDB startup parameters based on file contents
or innodb_page_size. */
static
@@ -1377,36 +1359,6 @@ innobase_fts_store_docid(
}
#endif
-/*************************************************************//**
-Check for a valid value of innobase_commit_concurrency.
-@return 0 for valid innodb_commit_concurrency */
-static
-int
-innobase_commit_concurrency_validate(
-/*=================================*/
- THD*, st_mysql_sys_var*,
- void* save, /*!< out: immediate result
- for update function */
- struct st_mysql_value* value) /*!< in: incoming string */
-{
- long long intbuf;
- ulong commit_concurrency;
-
- DBUG_ENTER("innobase_commit_concurrency_validate");
-
- if (value->val_int(value, &intbuf)) {
- /* The value is NULL. That is invalid. */
- DBUG_RETURN(1);
- }
-
- *reinterpret_cast<ulong*>(save) = commit_concurrency
- = static_cast<ulong>(intbuf);
-
- /* Allow the value to be updated, as long as it remains zero
- or nonzero. */
- DBUG_RETURN(!(!commit_concurrency == !innobase_commit_concurrency));
-}
-
/*******************************************************************//**
Function for constructing an InnoDB table handler instance. */
static
@@ -1449,10 +1401,7 @@ innodb_page_size_validate(
/******************************************************************//**
Returns true if the thread is the replication thread on the slave
-server. Used in srv_conc_enter_innodb() to determine if the thread
-should be allowed to enter InnoDB - the replication thread is treated
-differently than other threads. Also used in
-srv_conc_force_exit_innodb().
+server.
@return true if thd is the replication thread */
ibool
thd_is_replication_slave_thread(
@@ -1541,77 +1490,6 @@ thd_trx_is_auto_commit(
&& thd_is_select(thd));
}
-/** Enter InnoDB engine after checking the max number of user threads
-allowed, else the thread is put into sleep.
-@param[in,out] prebuilt row prebuilt handler */
-static inline void innobase_srv_conc_enter_innodb(row_prebuilt_t *prebuilt)
-{
- trx_t* trx = prebuilt->trx;
-
-#ifdef WITH_WSREP
- if (trx->is_wsrep() && wsrep_thd_is_BF(trx->mysql_thd, FALSE)) return;
-#endif /* WITH_WSREP */
-
- if (srv_thread_concurrency) {
- if (trx->n_tickets_to_enter_innodb > 0) {
-
- /* If trx has 'free tickets' to enter the engine left,
- then use one such ticket */
-
- --trx->n_tickets_to_enter_innodb;
-
- } else if (trx->mysql_thd != NULL
- && thd_is_replication_slave_thread(trx->mysql_thd)) {
- const ulonglong end = my_interval_timer()
- + ulonglong(srv_replication_delay) * 1000000;
- while ((srv_conc_get_active_threads()
- >= srv_thread_concurrency)
- && my_interval_timer() < end) {
- os_thread_sleep(2000 /* 2 ms */);
- }
- } else {
- srv_conc_enter_innodb(prebuilt);
- }
- }
-}
-
-/** Note that the thread wants to leave InnoDB only if it doesn't have
-any spare tickets.
-@param[in,out] m_prebuilt row prebuilt handler */
-static inline void innobase_srv_conc_exit_innodb(row_prebuilt_t *prebuilt)
-{
- ut_ad(!sync_check_iterate(sync_check()));
-
- trx_t* trx = prebuilt->trx;
-
-#ifdef WITH_WSREP
- if (trx->is_wsrep() && wsrep_thd_is_BF(trx->mysql_thd, FALSE)) return;
-#endif /* WITH_WSREP */
-
- /* This is to avoid making an unnecessary function call. */
- if (trx->declared_to_be_inside_innodb
- && trx->n_tickets_to_enter_innodb == 0) {
-
- srv_conc_force_exit_innodb(trx);
- }
-}
-
-/******************************************************************//**
-Force a thread to leave InnoDB even if it has spare tickets. */
-static inline
-void
-innobase_srv_conc_force_exit_innodb(
-/*================================*/
- trx_t* trx) /*!< in: transaction handle */
-{
- ut_ad(!sync_check_iterate(sync_check()));
-
- /* This is to avoid making an unnecessary function call. */
- if (trx->declared_to_be_inside_innodb) {
- srv_conc_force_exit_innodb(trx);
- }
-}
-
/******************************************************************//**
Returns the NUL terminated value of glob_hostname.
@return pointer to glob_hostname. */
@@ -2905,8 +2783,6 @@ innobase_query_caching_of_table_permitted(
return(false);
}
- innobase_srv_conc_force_exit_innodb(trx);
-
if (!thd_test_options(thd, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)
&& trx->n_mysql_tables_in_use == 0) {
/* We are going to retrieve the query result from the query
@@ -3204,8 +3080,6 @@ ha_innobase::init_table_handle_for_HANDLER(void)
/* Initialize the m_prebuilt struct much like it would be inited in
external_lock */
- innobase_srv_conc_force_exit_innodb(m_prebuilt->trx);
-
/* If the transaction is not started yet, start it */
trx_start_if_not_started_xa(m_prebuilt->trx, false);
@@ -3388,6 +3262,13 @@ static uint innodb_background_scrub_data_interval;
static const char* innodb_background_scrub_data_interval_msg
= "The parameter innodb_background_scrub_data_interval is deprecated and"
" has no effect.";
+
+uint replication_delay;
+uint thread_concurrency;
+uint commit_concurrency;
+uint concurrency_tickets;
+uint adaptive_max_sleep_delay;
+uint thread_sleep_delay;
} // namespace deprecated
/** Initialize, validate and normalize the InnoDB startup parameters.
@@ -3774,8 +3655,6 @@ static int innodb_init_params()
data_mysql_default_charset_coll = (ulint) default_charset_info->number;
- innobase_commit_concurrency_init_default();
-
srv_use_atomic_writes
= innobase_use_atomic_writes && my_may_have_atomic_write;
if (srv_use_atomic_writes && !srv_file_per_table)
@@ -3986,9 +3865,6 @@ static int innodb_init(void* p)
ibuf_max_size_update(srv_change_buffer_max_size);
- mysql_mutex_init(commit_cond_mutex_key,
- &commit_cond_m, MY_MUTEX_INIT_FAST);
- mysql_cond_init(commit_cond_key, &commit_cond, 0);
mysql_mutex_init(pending_checkpoint_mutex_key,
&pending_checkpoint_mutex,
MY_MUTEX_INIT_FAST);
@@ -4058,8 +3934,6 @@ innobase_end(handlerton*, ha_panic_function)
innodb_shutdown();
innobase_space_shutdown();
- mysql_mutex_destroy(&commit_cond_m);
- mysql_cond_destroy(&commit_cond);
mysql_mutex_destroy(&pending_checkpoint_mutex);
}
@@ -4127,8 +4001,6 @@ innobase_start_trx_and_assign_read_view(
trx_t* trx = check_trx_exists(thd);
- innobase_srv_conc_force_exit_innodb(trx);
-
/* The transaction should not be active yet, start it */
ut_ad(!trx_is_started(trx));
@@ -4168,30 +4040,9 @@ innobase_commit_ordered_2(
{
DBUG_ENTER("innobase_commit_ordered_2");
- bool read_only = trx->read_only || trx->id == 0;
+ const bool read_only = trx->read_only || trx->id == 0;
if (!read_only) {
-
- while (innobase_commit_concurrency > 0) {
-
- mysql_mutex_lock(&commit_cond_m);
-
- ++commit_threads;
-
- if (commit_threads
- <= innobase_commit_concurrency) {
-
- mysql_mutex_unlock(&commit_cond_m);
- break;
- }
-
- --commit_threads;
-
- mysql_cond_wait(&commit_cond, &commit_cond_m);
-
- mysql_mutex_unlock(&commit_cond_m);
- }
-
/* The following call reads the binary log position of
the transaction being committed.
@@ -4225,18 +4076,6 @@ innobase_commit_ordered_2(
if (!read_only) {
trx->mysql_log_file_name = NULL;
trx->flush_log_later = false;
-
- if (innobase_commit_concurrency > 0) {
-
- mysql_mutex_lock(&commit_cond_m);
-
- ut_ad(commit_threads > 0);
- --commit_threads;
-
- mysql_cond_signal(&commit_cond);
-
- mysql_mutex_unlock(&commit_cond_m);
- }
}
DBUG_VOID_RETURN;
@@ -4377,8 +4216,6 @@ innobase_commit(
/* This is a statement level variable. */
trx->fts_next_doc_id = 0;
- innobase_srv_conc_force_exit_innodb(trx);
-
DBUG_RETURN(0);
}
@@ -4406,8 +4243,6 @@ innobase_rollback(
ut_ad(trx->dict_operation_lock_mode == 0);
ut_ad(trx->dict_operation == TRX_DICT_OP_NONE);
- innobase_srv_conc_force_exit_innodb(trx);
-
/* Reset the number AUTO-INC rows required */
trx->n_autoinc_rows = 0;
@@ -4458,8 +4293,6 @@ innobase_rollback_trx(
DBUG_ENTER("innobase_rollback_trx");
DBUG_PRINT("trans", ("aborting transaction"));
- innobase_srv_conc_force_exit_innodb(trx);
-
/* If we had reserved the auto-inc lock for some table (if
we come here to roll back the latest SQL statement) we
release it now before a possibly lengthy rollback */
@@ -4630,8 +4463,6 @@ innobase_rollback_to_savepoint(
trx_t* trx = check_trx_exists(thd);
- innobase_srv_conc_force_exit_innodb(trx);
-
/* TODO: use provided savepoint data area to store savepoint data */
char name[64];
@@ -4736,8 +4567,6 @@ innobase_savepoint(
trx_t* trx = check_trx_exists(thd);
- innobase_srv_conc_force_exit_innodb(trx);
-
/* Cannot happen outside of transaction */
DBUG_ASSERT(trx_is_registered_for_2pc(trx));
@@ -7683,8 +7512,6 @@ ha_innobase::write_row(
build_template(true);
}
- innobase_srv_conc_enter_innodb(m_prebuilt);
-
vers_set_fields = table->versioned_write(VERS_TRX_ID) ?
ROW_INS_VERSIONED : ROW_INS_NORMAL;
@@ -7754,8 +7581,6 @@ ha_innobase::write_row(
wsrep_thd_query(m_user_thd));
error= DB_SUCCESS;
wsrep_thd_self_abort(m_user_thd);
- innobase_srv_conc_exit_innodb(
- m_prebuilt);
/* jump straight to func exit over
* later wsrep hooks */
goto func_exit;
@@ -7823,8 +7648,6 @@ set_max_autoinc:
}
}
- innobase_srv_conc_exit_innodb(m_prebuilt);
-
report_error:
/* Cleanup and exit. */
if (error == DB_TABLESPACE_DELETED) {
@@ -8476,8 +8299,6 @@ ha_innobase::update_row(
? VERSIONED_DELETE
: NO_DELETE;
- innobase_srv_conc_enter_innodb(m_prebuilt);
-
error = row_update_for_mysql(m_prebuilt);
if (error == DB_SUCCESS && vers_ins_row
@@ -8530,8 +8351,6 @@ ha_innobase::update_row(
}
}
- innobase_srv_conc_exit_innodb(m_prebuilt);
-
func_exit:
if (error == DB_FTS_INVALID_DOCID) {
err = HA_FTS_INVALID_DOCID;
@@ -8596,12 +8415,8 @@ ha_innobase::delete_row(
? VERSIONED_DELETE
: PLAIN_DELETE;
- innobase_srv_conc_enter_innodb(m_prebuilt);
-
error = row_update_for_mysql(m_prebuilt);
- innobase_srv_conc_exit_innodb(m_prebuilt);
-
#ifdef WITH_WSREP
if (error == DB_SUCCESS && trx->is_wsrep()
&& wsrep_thd_is_local(m_user_thd)
@@ -8902,20 +8717,8 @@ ha_innobase::index_read(
m_last_match_mode = (uint) match_mode;
- dberr_t ret;
-
- if (mode != PAGE_CUR_UNSUPP) {
-
- innobase_srv_conc_enter_innodb(m_prebuilt);
-
- ret = row_search_mvcc(
- buf, mode, m_prebuilt, match_mode, 0);
-
- innobase_srv_conc_exit_innodb(m_prebuilt);
- } else {
-
- ret = DB_UNSUPPORTED;
- }
+ dberr_t ret = mode == PAGE_CUR_UNSUPP ? DB_UNSUPPORTED
+ : row_search_mvcc(buf, mode, m_prebuilt, match_mode, 0);
DBUG_EXECUTE_IF("ib_select_query_failure", ret = DB_ERROR;);
@@ -9171,16 +8974,10 @@ ha_innobase::general_fetch(
: HA_ERR_NO_SUCH_TABLE);
}
- innobase_srv_conc_enter_innodb(m_prebuilt);
-
- dberr_t ret = row_search_mvcc(
- buf, PAGE_CUR_UNSUPP, m_prebuilt, match_mode, direction);
-
- innobase_srv_conc_exit_innodb(m_prebuilt);
-
int error;
- switch (ret) {
+ switch (dberr_t ret = row_search_mvcc(buf, PAGE_CUR_UNSUPP, m_prebuilt,
+ match_mode, direction)) {
case DB_SUCCESS:
error = 0;
table->status = 0;
@@ -9691,16 +9488,11 @@ next_record:
tuple. */
innobase_fts_create_doc_id_key(tuple, index, &search_doc_id);
- innobase_srv_conc_enter_innodb(m_prebuilt);
-
- dberr_t ret = row_search_for_mysql(
- (byte*) buf, PAGE_CUR_GE, m_prebuilt, ROW_SEL_EXACT, 0);
-
- innobase_srv_conc_exit_innodb(m_prebuilt);
-
int error;
- switch (ret) {
+ switch (dberr_t ret = row_search_for_mysql(buf, PAGE_CUR_GE,
+ m_prebuilt,
+ ROW_SEL_EXACT, 0)) {
case DB_SUCCESS:
error = 0;
table->status = 0;
@@ -15640,8 +15432,6 @@ ha_innobase::start_stmt(
trx = m_prebuilt->trx;
- innobase_srv_conc_force_exit_innodb(trx);
-
/* Reset the AUTOINC statement level counter for multi-row INSERTs. */
trx->n_autoinc_rows = 0;
@@ -15947,8 +15737,6 @@ ha_innobase::external_lock(
trx->n_mysql_tables_in_use--;
m_mysql_has_locked = false;
- innobase_srv_conc_force_exit_innodb(trx);
-
/* If the MySQL lock count drops to zero we know that the current SQL
statement has ended */
@@ -16023,10 +15811,6 @@ innodb_show_status(
srv_wake_purge_thread_if_not_active();
- trx_t* trx = check_trx_exists(thd);
-
- innobase_srv_conc_force_exit_innodb(trx);
-
/* We let the InnoDB Monitor to output at most MAX_STATUS_SIZE
bytes of text. */
@@ -17139,8 +16923,6 @@ innobase_xa_prepare(
thd_get_xid(thd, (MYSQL_XID*) trx->xid);
- innobase_srv_conc_force_exit_innodb(trx);
-
if (!trx_is_registered_for_2pc(trx) && trx_is_started(trx)) {
sql_print_error("Transaction not registered for MariaDB 2PC,"
@@ -19029,7 +18811,6 @@ wsrep_abort_transaction(
victim_trx, signal);
trx_mutex_exit(victim_trx);
lock_mutex_exit();
- wsrep_srv_conc_cancel_wait(victim_trx);
DBUG_RETURN(rcode);
} else {
wsrep_thd_bf_abort(bf_thd, victim_thd, signal);
@@ -19386,11 +19167,9 @@ static MYSQL_SYSVAR_ULONG(adaptive_hash_index_parts, btr_ahi_parts,
NULL, NULL, 8, 1, 512, 0);
#endif /* BTR_CUR_HASH_ADAPT */
-static MYSQL_SYSVAR_ULONG(replication_delay, srv_replication_delay,
- PLUGIN_VAR_RQCMDARG,
- "Replication thread delay (ms) on the slave server if"
- " innodb_thread_concurrency is reached (0 by default)",
- NULL, NULL, 0, 0, ~0UL, 0);
+static MYSQL_SYSVAR_UINT(replication_delay, deprecated::replication_delay,
+ PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
+ innodb_deprecated_ignored, nullptr, nullptr, 0, 0, 0, 0);
static MYSQL_SYSVAR_UINT(compression_level, page_zip_level,
PLUGIN_VAR_RQCMDARG,
@@ -19586,15 +19365,13 @@ static MYSQL_SYSVAR_ULONG(flush_neighbors, srv_flush_neighbors,
" when flushing a block",
NULL, NULL, 1, 0, 2, 0);
-static MYSQL_SYSVAR_ULONG(commit_concurrency, innobase_commit_concurrency,
- PLUGIN_VAR_RQCMDARG,
- "Helps in performance tuning in heavily concurrent environments.",
- innobase_commit_concurrency_validate, NULL, 0, 0, 1000, 0);
+static MYSQL_SYSVAR_UINT(commit_concurrency, deprecated::commit_concurrency,
+ PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
+ innodb_deprecated_ignored, nullptr, nullptr, 0, 0, 0, 0);
-static MYSQL_SYSVAR_ULONG(concurrency_tickets, srv_n_free_tickets_to_enter,
- PLUGIN_VAR_RQCMDARG,
- "Number of times a thread is allowed to enter InnoDB within the same SQL query after it has once got the ticket",
- NULL, NULL, 5000L, 1L, ~0UL, 0);
+static MYSQL_SYSVAR_UINT(concurrency_tickets, deprecated::concurrency_tickets,
+ PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
+ innodb_deprecated_ignored, nullptr, nullptr, 0, 0, 0, 0);
static MYSQL_SYSVAR_BOOL(deadlock_detect, innobase_deadlock_detect,
PLUGIN_VAR_NOCMDARG,
@@ -19743,19 +19520,14 @@ static MYSQL_SYSVAR_UINT(spin_wait_delay, srv_spin_wait_delay,
"Maximum delay between polling for a spin lock (4 by default)",
NULL, NULL, 4, 0, 6000, 0);
-static MYSQL_SYSVAR_ULONG(thread_concurrency, srv_thread_concurrency,
- PLUGIN_VAR_RQCMDARG,
- "Helps in performance tuning in heavily concurrent environments. Sets the maximum number of threads allowed inside InnoDB. Value 0 will disable the thread throttling.",
- NULL, NULL, 0, 0, 1000, 0);
+static MYSQL_SYSVAR_UINT(thread_concurrency, deprecated::thread_concurrency,
+ PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
+ innodb_deprecated_ignored, nullptr, nullptr, 0, 0, 0, 0);
-static MYSQL_SYSVAR_ULONG(
- adaptive_max_sleep_delay, srv_adaptive_max_sleep_delay,
- PLUGIN_VAR_RQCMDARG,
- "The upper limit of the sleep delay in usec. Value of 0 disables it.",
- NULL, NULL,
- 150000, /* Default setting */
- 0, /* Minimum value */
- 1000000, 0); /* Maximum value */
+static MYSQL_SYSVAR_UINT(
+ adaptive_max_sleep_delay, deprecated::adaptive_max_sleep_delay,
+ PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
+ innodb_deprecated_ignored, nullptr, nullptr, 0, 0, 0, 0);
static MYSQL_SYSVAR_BOOL(prefix_index_cluster_optimization,
srv_prefix_index_cluster_optimization,
@@ -19763,14 +19535,9 @@ static MYSQL_SYSVAR_BOOL(prefix_index_cluster_optimization,
"Enable prefix optimization to sometimes avoid cluster index lookups.",
NULL, NULL, FALSE);
-static MYSQL_SYSVAR_ULONG(thread_sleep_delay, srv_thread_sleep_delay,
- PLUGIN_VAR_RQCMDARG,
- "Time of innodb thread sleeping before joining InnoDB queue (usec)."
- " Value 0 disable a sleep",
- NULL, NULL,
- 10000L,
- 0L,
- 1000000L, 0);
+static MYSQL_SYSVAR_UINT(thread_sleep_delay, deprecated::thread_sleep_delay,
+ PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
+ innodb_deprecated_ignored, nullptr, nullptr, 0, 0, 0, 0);
static MYSQL_SYSVAR_STR(data_file_path, innobase_data_file_path,
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
@@ -20443,24 +20210,6 @@ i_s_innodb_sys_semaphore_waits,
i_s_innodb_tablespaces_encryption
maria_declare_plugin_end;
-/** @brief Initialize the default value of innodb_commit_concurrency.
-
-Once InnoDB is running, the innodb_commit_concurrency must not change
-from zero to nonzero. (Bug #42101)
-
-The initial default value is 0, and without this extra initialization,
-SET GLOBAL innodb_commit_concurrency=DEFAULT would set the parameter
-to 0, even if it was initially set to nonzero at the command line
-or configuration file. */
-static
-void
-innobase_commit_concurrency_init_default()
-/*======================================*/
-{
- MYSQL_SYSVAR_NAME(commit_concurrency).def_val
- = innobase_commit_concurrency;
-}
-
/** @brief Adjust some InnoDB startup parameters based on file contents
or innodb_page_size. */
static
diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc
index 255bc889205..897bda85d9b 100644
--- a/storage/innobase/handler/i_s.cc
+++ b/storage/innobase/handler/i_s.cc
@@ -470,8 +470,7 @@ fill_innodb_trx_from_cache(
row->trx_rows_modified, true));
/* trx_concurrency_tickets */
- OK(fields[IDX_TRX_CONNCURRENCY_TICKETS]->store(
- row->trx_concurrency_tickets, true));
+ OK(fields[IDX_TRX_CONNCURRENCY_TICKETS]->store(0, true));
/* trx_isolation_level */
OK(fields[IDX_TRX_ISOLATION_LEVEL]->store(
diff --git a/storage/innobase/include/ha_prototypes.h b/storage/innobase/include/ha_prototypes.h
index ef1174c95dd..0632c0c5140 100644
--- a/storage/innobase/include/ha_prototypes.h
+++ b/storage/innobase/include/ha_prototypes.h
@@ -110,10 +110,7 @@ innobase_convert_name(
/******************************************************************//**
Returns true if the thread is the replication thread on the slave
-server. Used in srv_conc_enter_innodb() to determine if the thread
-should be allowed to enter InnoDB - the replication thread is treated
-differently than other threads. Also used in
-srv_conc_force_exit_innodb().
+server.
@return true if thd is the replication thread */
ibool
thd_is_replication_slave_thread(
diff --git a/storage/innobase/include/que0types.h b/storage/innobase/include/que0types.h
index d9005095d3c..38f6e380a30 100644
--- a/storage/innobase/include/que0types.h
+++ b/storage/innobase/include/que0types.h
@@ -35,6 +35,7 @@ typedef void que_node_t;
/* Query graph root is a fork node */
typedef struct que_fork_t que_t;
+struct row_prebuilt_t;
struct que_thr_t;
/* Query graph node types */
diff --git a/storage/innobase/include/srv0conc.h b/storage/innobase/include/srv0conc.h
deleted file mode 100644
index d24107735ed..00000000000
--- a/storage/innobase/include/srv0conc.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*****************************************************************************
-
-Copyright (c) 2011, 2014, Oracle and/or its affiliates. All Rights Reserved.
-Copyright (c) 2018, MariaDB Corporation.
-
-Portions of this file contain modifications contributed and copyrighted by
-Google, Inc. Those modifications are gratefully acknowledged and are described
-briefly in the InnoDB documentation. The contributions by Google are
-incorporated with their permission, and subject to the conditions contained in
-the file COPYING.Google.
-
-Portions of this file contain modifications contributed and copyrighted
-by Percona Inc.. Those modifications are
-gratefully acknowledged and are described briefly in the InnoDB
-documentation. The contributions by Percona Inc. are incorporated with
-their permission, and subject to the conditions contained in the file
-COPYING.Percona.
-
-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, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
-
-*****************************************************************************/
-
-/**************************************************//**
-@file srv/srv0conc.h
-
-InnoDB concurrency manager header file
-
-Created 2011/04/18 Sunny Bains
-*******************************************************/
-
-#ifndef srv_conc_h
-#define srv_conc_h
-
-/** We are prepared for a situation that we have this many threads waiting for
-a semaphore inside InnoDB. srv_start() sets the value. */
-extern ulint srv_max_n_threads;
-
-/** The following controls how many threads we let inside InnoDB concurrently:
-threads waiting for locks are not counted into the number because otherwise
-we could get a deadlock. Value of 0 will disable the concurrency check. */
-
-extern ulong srv_thread_concurrency;
-
-struct row_prebuilt_t;
-/*********************************************************************//**
-Puts an OS thread to wait if there are too many concurrent threads
-(>= srv_thread_concurrency) inside InnoDB. The threads wait in a FIFO queue.
-@param[in,out] prebuilt row prebuilt handler */
-void
-srv_conc_enter_innodb(
- row_prebuilt_t* prebuilt);
-
-/*********************************************************************//**
-This lets a thread enter InnoDB regardless of the number of threads inside
-InnoDB. This must be called when a thread ends a lock wait. */
-void
-srv_conc_force_enter_innodb(
-/*========================*/
- trx_t* trx); /*!< in: transaction object associated with
- the thread */
-
-/*********************************************************************//**
-This must be called when a thread exits InnoDB in a lock wait or at the
-end of an SQL statement. */
-void
-srv_conc_force_exit_innodb(
-/*=======================*/
- trx_t* trx); /*!< in: transaction object associated with
- the thread */
-
-/*********************************************************************//**
-Get the count of threads waiting inside InnoDB. */
-ulint
-srv_conc_get_waiting_threads(void);
-/*==============================*/
-
-/*********************************************************************//**
-Get the count of threads active inside InnoDB. */
-ulint
-srv_conc_get_active_threads(void);
-/*==============================*/
-
-#endif /* srv_conc_h */
diff --git a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h
index 9cad1497b85..57542b32719 100644
--- a/storage/innobase/include/srv0srv.h
+++ b/storage/innobase/include/srv0srv.h
@@ -39,14 +39,12 @@ The server main program
Created 10/10/1995 Heikki Tuuri
*******************************************************/
-#ifndef srv0srv_h
-#define srv0srv_h
+#pragma once
#include "log0log.h"
#include "os0event.h"
#include "que0types.h"
#include "trx0types.h"
-#include "srv0conc.h"
#include "fil0fil.h"
#include "mysql/psi/mysql_stage.h"
@@ -198,6 +196,10 @@ struct srv_stats_t
ulint_ctr_1_t lock_deadlock_count;
};
+/** We are prepared for a situation that we have this many threads waiting for
+a semaphore inside InnoDB. srv_start() sets the value. */
+extern ulint srv_max_n_threads;
+
extern const char* srv_main_thread_op_info;
/** Prefix used by MySQL to indicate pre-5.1 table name encoding */
@@ -246,10 +248,6 @@ extern my_bool high_level_read_only;
/** store to its own file each table created by an user; data
dictionary tables are in the system tablespace 0 */
extern my_bool srv_file_per_table;
-/** Sleep delay for threads waiting to enter InnoDB. In micro-seconds. */
-extern ulong srv_thread_sleep_delay;
-/** Maximum sleep delay (in micro-seconds), value of 0 disables it.*/
-extern ulong srv_adaptive_max_sleep_delay;
/** Sort buffer size in index creation */
extern ulong srv_sort_buf_size;
@@ -423,8 +421,6 @@ extern double srv_max_buf_pool_modified_pct;
extern ulong srv_max_purge_lag;
extern ulong srv_max_purge_lag_delay;
-extern ulong srv_replication_delay;
-
extern my_bool innodb_encrypt_temporary_tables;
extern my_bool srv_immediate_scrub_data_uncompressed;
@@ -455,8 +451,6 @@ extern bool srv_monitor_active;
extern ulong srv_n_spin_wait_rounds;
-extern ulong srv_n_free_tickets_to_enter;
-extern ulong srv_thread_sleep_delay;
extern uint srv_spin_wait_delay;
extern ulint srv_truncated_status_writes;
@@ -942,14 +936,3 @@ static inline void srv_start_periodic_timer(std::unique_ptr<tpool::timer>& t,
void srv_thread_pool_init();
void srv_thread_pool_end();
-
-#ifdef WITH_WSREP
-UNIV_INTERN
-void
-wsrep_srv_conc_cancel_wait(
-/*==================*/
- trx_t* trx); /*!< in: transaction object associated with the
- thread */
-#endif /* WITH_WSREP */
-
-#endif
diff --git a/storage/innobase/include/srv0start.h b/storage/innobase/include/srv0start.h
index 596f6d4f5ab..23dc8347129 100644
--- a/storage/innobase/include/srv0start.h
+++ b/storage/innobase/include/srv0start.h
@@ -24,8 +24,7 @@ Starts the Innobase database server
Created 10/10/1995 Heikki Tuuri
*******************************************************/
-#ifndef srv0start_h
-#define srv0start_h
+#pragma once
#include "log0log.h"
#include "ut0byte.h"
@@ -133,4 +132,3 @@ extern enum srv_shutdown_t srv_shutdown_state;
/** Files comprising the system tablespace */
extern pfs_os_file_t files[1000];
-#endif
diff --git a/storage/innobase/include/trx0i_s.h b/storage/innobase/include/trx0i_s.h
index 4eab97c0b02..892ee3cfe18 100644
--- a/storage/innobase/include/trx0i_s.h
+++ b/storage/innobase/include/trx0i_s.h
@@ -1,7 +1,7 @@
/*****************************************************************************
Copyright (c) 2007, 2015, Oracle and/or its affiliates. All Rights Reserved.
-Copyright (c) 2017, 2019, MariaDB Corporation.
+Copyright (c) 2017, 2020, MariaDB Corporation.
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
@@ -141,9 +141,6 @@ struct i_s_trx_row_t {
trx->lock_heap) */
ulint trx_rows_locked;/*!< lock_number_of_rows_locked() */
uintmax_t trx_rows_modified;/*!< trx_t::undo_no */
- ulint trx_concurrency_tickets;
- /*!< n_tickets_to_enter_innodb in
- trx_t */
uint trx_isolation_level;
/*!< trx_t::isolation_level */
bool trx_unique_checks;
diff --git a/storage/innobase/include/trx0trx.h b/storage/innobase/include/trx0trx.h
index 034552fc62e..20043a6c4a4 100644
--- a/storage/innobase/include/trx0trx.h
+++ b/storage/innobase/include/trx0trx.h
@@ -864,17 +864,6 @@ public:
ulint duplicates; /*!< TRX_DUP_IGNORE | TRX_DUP_REPLACE */
trx_dict_op_t dict_operation; /**< @see enum trx_dict_op_t */
- /* Fields protected by the srv_conc_mutex. */
- bool declared_to_be_inside_innodb;
- /*!< this is TRUE if we have declared
- this transaction in
- srv_conc_enter_innodb to be inside the
- InnoDB engine */
- ib_uint32_t n_tickets_to_enter_innodb;
- /*!< this can be > 0 only when
- declared_to_... is TRUE; when we come
- to srv_conc_innodb_enter, if the value
- here is > 0, we decrement this by 1 */
ib_uint32_t dict_operation_lock_mode;
/*!< 0, RW_S_LATCH, or RW_X_LATCH:
the latch mode trx currently holds
@@ -1018,10 +1007,6 @@ public:
/*!< Total table lock wait time
up to this moment. */
-#ifdef WITH_WSREP
- os_event_t wsrep_event; /* event waited for in srv_conc_slot */
-#endif /* WITH_WSREP */
-
rw_trx_hash_element_t *rw_trx_hash_element;
LF_PINS *rw_trx_hash_pins;
ulint magic_n;
diff --git a/storage/innobase/lock/lock0wait.cc b/storage/innobase/lock/lock0wait.cc
index 7b184495aa3..6b6e2c04659 100644
--- a/storage/innobase/lock/lock0wait.cc
+++ b/storage/innobase/lock/lock0wait.cc
@@ -234,7 +234,6 @@ lock_wait_suspend_thread(
{
srv_slot_t* slot;
trx_t* trx;
- ibool was_declared_inside_innodb;
ulong lock_wait_timeout;
ut_a(lock_sys.timeout_timer.get());
@@ -329,16 +328,6 @@ lock_wait_suspend_thread(
/* Suspend this thread and wait for the event. */
- was_declared_inside_innodb = trx->declared_to_be_inside_innodb;
-
- if (was_declared_inside_innodb) {
- /* We must declare this OS thread to exit InnoDB, since a
- possible other thread holding a lock which this thread waits
- for must be allowed to enter, sooner or later */
-
- srv_conc_force_exit_innodb(trx);
- }
-
/* Unknown is also treated like a record lock */
if (lock_type == ULINT_UNDEFINED || lock_type == LOCK_REC) {
thd_wait_begin(trx->mysql_thd, THD_WAIT_ROW_LOCK);
@@ -354,13 +343,6 @@ lock_wait_suspend_thread(
/* After resuming, reacquire the data dictionary latch if
necessary. */
- if (was_declared_inside_innodb) {
-
- /* Return back inside InnoDB */
-
- srv_conc_force_enter_innodb(trx);
- }
-
if (had_dict_lock) {
row_mysql_freeze_data_dictionary(trx);
diff --git a/storage/innobase/log/log0log.cc b/storage/innobase/log/log0log.cc
index 0fe480ca660..62de68790ed 100644
--- a/storage/innobase/log/log0log.cc
+++ b/storage/innobase/log/log0log.cc
@@ -448,7 +448,7 @@ log_set_capacity(ulonglong file_size)
by single query steps: running out of free log space is a serious
system error which requires rebooting the database. */
- free = LOG_CHECKPOINT_FREE_PER_THREAD * (10 + srv_thread_concurrency)
+ free = LOG_CHECKPOINT_FREE_PER_THREAD * 10
+ LOG_CHECKPOINT_EXTRA_FREE;
if (free >= smallest_capacity / 2) {
ib::error() << "Cannot continue operation because log file is "
diff --git a/storage/innobase/srv/srv0conc.cc b/storage/innobase/srv/srv0conc.cc
deleted file mode 100644
index 07e0299dc98..00000000000
--- a/storage/innobase/srv/srv0conc.cc
+++ /dev/null
@@ -1,327 +0,0 @@
-/*****************************************************************************
-
-Copyright (c) 2011, 2015, Oracle and/or its affiliates. All Rights Reserved.
-Copyright (c) 2015, 2020, MariaDB Corporation.
-
-Portions of this file contain modifications contributed and copyrighted by
-Google, Inc. Those modifications are gratefully acknowledged and are described
-briefly in the InnoDB documentation. The contributions by Google are
-incorporated with their permission, and subject to the conditions contained in
-the file COPYING.Google.
-
-Portions of this file contain modifications contributed and copyrighted
-by Percona Inc.. Those modifications are
-gratefully acknowledged and are described briefly in the InnoDB
-documentation. The contributions by Percona Inc. are incorporated with
-their permission, and subject to the conditions contained in the file
-COPYING.Percona.
-
-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, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
-
-*****************************************************************************/
-
-/**************************************************//**
-@file srv/srv0conc.cc
-
-InnoDB concurrency manager
-
-Created 2011/04/18 Sunny Bains
-*******************************************************/
-
-#include "srv0srv.h"
-#include "trx0trx.h"
-#include "row0mysql.h"
-#include "dict0dict.h"
-#include <mysql/service_thd_wait.h>
-#include <mysql/service_wsrep.h>
-
-/** Number of times a thread is allowed to enter InnoDB within the same
-SQL query after it has once got the ticket. */
-ulong srv_n_free_tickets_to_enter = 500;
-
-/** Maximum sleep delay (in micro-seconds), value of 0 disables it. */
-ulong srv_adaptive_max_sleep_delay = 150000;
-
-ulong srv_thread_sleep_delay = 10000;
-
-
-/** We are prepared for a situation that we have this many threads waiting for
-a semaphore inside InnoDB. srv_start() sets the value. */
-ulint srv_max_n_threads;
-
-/** The following controls how many threads we let inside InnoDB concurrently:
-threads waiting for locks are not counted into the number because otherwise
-we could get a deadlock. Value of 0 will disable the concurrency check. */
-
-ulong srv_thread_concurrency = 0;
-
-/** Variables tracking the active and waiting threads. */
-struct srv_conc_t {
- /** Number of transactions that have declared_to_be_inside_innodb */
- MY_ALIGNED(CPU_LEVEL1_DCACHE_LINESIZE) Atomic_counter<ulint> n_active;
-
- /** Number of OS threads waiting in the FIFO for permission to
- enter InnoDB */
- MY_ALIGNED(CPU_LEVEL1_DCACHE_LINESIZE) Atomic_counter<ulint> n_waiting;
-};
-
-/* Control variables for tracking concurrency. */
-static srv_conc_t srv_conc;
-
-/*********************************************************************//**
-Note that a user thread is entering InnoDB. */
-static
-void
-srv_enter_innodb_with_tickets(
-/*==========================*/
- trx_t* trx) /*!< in/out: transaction that wants
- to enter InnoDB */
-{
- trx->declared_to_be_inside_innodb = TRUE;
- trx->n_tickets_to_enter_innodb = static_cast<uint32_t>(
- srv_n_free_tickets_to_enter);
-}
-
-/*********************************************************************//**
-Handle the scheduling of a user thread that wants to enter InnoDB. Setting
-srv_adaptive_max_sleep_delay > 0 switches the adaptive sleep calibration to
-ON. When set, we want to wait in the queue for as little time as possible.
-However, very short waits will result in a lot of context switches and that
-is also not desirable. When threads need to sleep multiple times we increment
-os_thread_sleep_delay by one. When we see threads getting a slot without
-waiting and there are no other threads waiting in the queue, we try and reduce
-the wait as much as we can. Currently we reduce it by half each time. If the
-thread only had to wait for one turn before it was able to enter InnoDB we
-decrement it by one. This is to try and keep the sleep time stable around the
-"optimum" sleep time. */
-static
-void
-srv_conc_enter_innodb_with_atomics(
-/*===============================*/
- trx_t* trx) /*!< in/out: transaction that wants
- to enter InnoDB */
-{
- ulint n_sleeps = 0;
- ibool notified_mysql = FALSE;
-
- ut_a(!trx->declared_to_be_inside_innodb);
-
- for (;;) {
- ulint sleep_in_us;
-#ifdef WITH_WSREP
- if (trx->is_wsrep() && wsrep_thd_is_aborting(trx->mysql_thd)) {
- if (UNIV_UNLIKELY(wsrep_debug)) {
- ib::info() <<
- "srv_conc_enter due to MUST_ABORT";
- }
- srv_conc_force_enter_innodb(trx);
- return;
- }
-#endif /* WITH_WSREP */
-
- if (srv_thread_concurrency == 0) {
- if (notified_mysql) {
- srv_conc.n_waiting--;
- thd_wait_end(trx->mysql_thd);
- }
-
- return;
- }
-
- if (srv_conc.n_active < srv_thread_concurrency) {
-
- /* Check if there are any free tickets. */
- if (srv_conc.n_active++ < srv_thread_concurrency) {
-
- srv_enter_innodb_with_tickets(trx);
-
- if (notified_mysql) {
- srv_conc.n_waiting--;
- thd_wait_end(trx->mysql_thd);
- }
-
- if (srv_adaptive_max_sleep_delay > 0) {
- if (srv_thread_sleep_delay > 20
- && n_sleeps == 1) {
-
- --srv_thread_sleep_delay;
- }
-
- if (srv_conc.n_waiting == 0) {
- srv_thread_sleep_delay >>= 1;
- }
- }
-
- return;
- }
-
- /* Since there were no free seats, we relinquish
- the overbooked ticket. */
-
- srv_conc.n_active--;
- }
-
- if (!notified_mysql) {
- srv_conc.n_waiting++;
-
- thd_wait_begin(trx->mysql_thd, THD_WAIT_USER_LOCK);
-
- notified_mysql = TRUE;
- }
-
- DEBUG_SYNC_C("user_thread_waiting");
- trx->op_info = "sleeping before entering InnoDB";
-
- sleep_in_us = srv_thread_sleep_delay;
-
- /* Guard against overflow when adaptive sleep delay is on. */
-
- if (srv_adaptive_max_sleep_delay > 0
- && sleep_in_us > srv_adaptive_max_sleep_delay) {
-
- sleep_in_us = srv_adaptive_max_sleep_delay;
- srv_thread_sleep_delay = static_cast<ulong>(sleep_in_us);
- }
-
- os_thread_sleep(sleep_in_us);
-
- trx->op_info = "";
-
- ++n_sleeps;
-
- if (srv_adaptive_max_sleep_delay > 0 && n_sleeps > 1) {
- ++srv_thread_sleep_delay;
- }
- }
-}
-
-/*********************************************************************//**
-Note that a user thread is leaving InnoDB code. */
-static
-void
-srv_conc_exit_innodb_with_atomics(
-/*==============================*/
- trx_t* trx) /*!< in/out: transaction */
-{
- trx->n_tickets_to_enter_innodb = 0;
- trx->declared_to_be_inside_innodb = FALSE;
-
- srv_conc.n_active--;
-}
-
-/*********************************************************************//**
-Puts an OS thread to wait if there are too many concurrent threads
-(>= srv_thread_concurrency) inside InnoDB. The threads wait in a FIFO queue.
-@param[in,out] prebuilt row prebuilt handler */
-void
-srv_conc_enter_innodb(
- row_prebuilt_t* prebuilt)
-{
- trx_t* trx = prebuilt->trx;
-
- ut_ad(!sync_check_iterate(sync_check()));
-
- srv_conc_enter_innodb_with_atomics(trx);
-}
-
-/*********************************************************************//**
-This lets a thread enter InnoDB regardless of the number of threads inside
-InnoDB. This must be called when a thread ends a lock wait. */
-void
-srv_conc_force_enter_innodb(
-/*========================*/
- trx_t* trx) /*!< in: transaction object associated with the
- thread */
-{
- ut_ad(!sync_check_iterate(sync_check()));
-
- if (!srv_thread_concurrency) {
-
- return;
- }
-
- srv_conc.n_active++;
-
- trx->n_tickets_to_enter_innodb = 1;
- trx->declared_to_be_inside_innodb = TRUE;
-}
-
-/*********************************************************************//**
-This must be called when a thread exits InnoDB in a lock wait or at the
-end of an SQL statement. */
-void
-srv_conc_force_exit_innodb(
-/*=======================*/
- trx_t* trx) /*!< in: transaction object associated with the
- thread */
-{
- if ((trx->mysql_thd != NULL
- && thd_is_replication_slave_thread(trx->mysql_thd))
- || trx->declared_to_be_inside_innodb == FALSE) {
-
- return;
- }
-
- srv_conc_exit_innodb_with_atomics(trx);
-
- ut_ad(!sync_check_iterate(sync_check()));
-}
-
-/*********************************************************************//**
-Get the count of threads waiting inside InnoDB. */
-ulint
-srv_conc_get_waiting_threads(void)
-/*==============================*/
-{
- return(srv_conc.n_waiting);
-}
-
-/*********************************************************************//**
-Get the count of threads active inside InnoDB. */
-ulint
-srv_conc_get_active_threads(void)
-/*==============================*/
-{
- return(srv_conc.n_active);
-}
-
-#ifdef WITH_WSREP
-UNIV_INTERN
-void
-wsrep_srv_conc_cancel_wait(
-/*=======================*/
- trx_t* trx) /*!< in: transaction object associated with the
- thread */
-{
-#ifdef HAVE_ATOMIC_BUILTINS
- /* aborting transactions will enter innodb by force in
- srv_conc_enter_innodb_with_atomics(). No need to cancel here,
- thr will wake up after os_sleep and let to enter innodb
- */
- if (UNIV_UNLIKELY(wsrep_debug)) {
- ib::info() << "WSREP: conc slot cancel, no atomics";
- }
-#else
- // JAN: TODO: MySQL 5.7
- //os_fast_mutex_lock(&srv_conc_mutex);
- if (trx->wsrep_event) {
- if (UNIV_UNLIKELY(wsrep_debug)) {
- ib::info() << "WSREP: conc slot cancel";
- }
- os_event_set(trx->wsrep_event);
- }
- //os_fast_mutex_unlock(&srv_conc_mutex);
-#endif
-}
-#endif /* WITH_WSREP */
-
diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc
index 09cdf6fe0c1..aa8a5ea2d14 100644
--- a/storage/innobase/srv/srv0srv.cc
+++ b/storage/innobase/srv/srv0srv.cc
@@ -348,9 +348,6 @@ number of pages to use in LRU and flush_list batch flushing.
The rest of the doublewrite buffer is used for single-page flushing. */
ulong srv_doublewrite_batch_size = 120;
-/** innodb_replication_delay */
-ulong srv_replication_delay;
-
/** innodb_sync_spin_loops */
ulong srv_n_spin_wait_rounds;
/** innodb_spin_wait_delay */
@@ -1006,12 +1003,6 @@ srv_printf_innodb_monitor(
fputs("--------------\n"
"ROW OPERATIONS\n"
"--------------\n", file);
- fprintf(file,
- ULINTPF " queries inside InnoDB, "
- ULINTPF " queries in queue\n",
- srv_conc_get_active_threads(),
- srv_conc_get_waiting_threads());
-
fprintf(file, ULINTPF " read views open inside InnoDB\n",
trx_sys.view_count());
diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc
index 60fc333c4ba..85fc90a8e0c 100644
--- a/storage/innobase/srv/srv0start.cc
+++ b/storage/innobase/srv/srv0start.cc
@@ -101,6 +101,10 @@ Created 2/16/1996 Heikki Tuuri
#include "zlib.h"
#include "ut0crc32.h"
+/** We are prepared for a situation that we have this many threads waiting for
+a semaphore inside InnoDB. srv_start() sets the value. */
+ulint srv_max_n_threads;
+
/** Log sequence number at shutdown */
lsn_t srv_shutdown_lsn;
@@ -1196,9 +1200,7 @@ dberr_t srv_start(bool create_new_db)
static_cast<int>(UT_ARR_SIZE(srv_stages)));
/* Set the maximum number of threads which can wait for a semaphore
- inside InnoDB: this is the 'sync wait array' size, as well as the
- maximum number of threads that can wait in the 'srv_conc array' for
- their time to enter InnoDB. */
+ inside InnoDB: this is the 'sync wait array' size */
srv_max_n_threads = 1 /* io_ibuf_thread */
+ 1 /* io_log_thread */
@@ -2096,12 +2098,6 @@ void innodb_shutdown()
case SRV_OPERATION_NORMAL:
/* Shut down the persistent files. */
logs_empty_and_mark_files_at_shutdown();
-
- if (ulint n_threads = srv_conc_get_active_threads()) {
- ib::warn() << "Query counter shows "
- << n_threads << " queries still"
- " inside InnoDB at shutdown";
- }
}
os_aio_free();
diff --git a/storage/innobase/trx/trx0i_s.cc b/storage/innobase/trx/trx0i_s.cc
index 8e46057f654..2736dbd285f 100644
--- a/storage/innobase/trx/trx0i_s.cc
+++ b/storage/innobase/trx/trx0i_s.cc
@@ -499,8 +499,6 @@ thd_done:
row->trx_rows_modified = trx->undo_no;
- row->trx_concurrency_tickets = trx->n_tickets_to_enter_innodb;
-
row->trx_isolation_level = trx->isolation_level;
row->trx_unique_checks = (ibool) trx->check_unique_secondary;
diff --git a/storage/innobase/trx/trx0trx.cc b/storage/innobase/trx/trx0trx.cc
index ac9fc7d22c2..a9ba8cd7786 100644
--- a/storage/innobase/trx/trx0trx.cc
+++ b/storage/innobase/trx/trx0trx.cc
@@ -377,10 +377,6 @@ trx_t *trx_create()
ut_ad(trx->lock.rec_cached == 0);
ut_ad(UT_LIST_GET_LEN(trx->lock.evicted_tables) == 0);
-#ifdef WITH_WSREP
- trx->wsrep_event= NULL;
-#endif /* WITH_WSREP */
-
trx_sys.register_trx(trx);
return(trx);
@@ -392,25 +388,11 @@ trx_t *trx_create()
*/
void trx_free(trx_t*& trx)
{
- ut_ad(!trx->declared_to_be_inside_innodb);
ut_ad(!trx->n_mysql_tables_in_use);
ut_ad(!trx->mysql_n_tables_locked);
ut_ad(!trx->internal);
ut_ad(!trx->mysql_log_file_name);
- if (UNIV_UNLIKELY(trx->declared_to_be_inside_innodb)) {
- ib::error() << "Freeing a trx ("
- << trx_get_id_for_print(trx) << ") which is declared"
- " to be processing inside InnoDB";
-
- trx_print(stderr, trx, 600);
- putc('\n', stderr);
-
- /* This is an error but not a fatal error. We must keep
- the counters like srv_conc.n_active accurate. */
- srv_conc_force_exit_innodb(trx);
- }
-
if (trx->n_mysql_tables_in_use != 0
|| trx->mysql_n_tables_locked != 0) {
@@ -1824,11 +1806,6 @@ state_ok:
fputs(" recovered trx", f);
}
- if (trx->declared_to_be_inside_innodb) {
- fprintf(f, ", thread declared inside InnoDB %lu",
- (ulong) trx->n_tickets_to_enter_innodb);
- }
-
putc('\n', f);
if (trx->n_mysql_tables_in_use > 0 || trx->mysql_n_tables_locked > 0) {