summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2021-01-13 19:11:31 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2021-01-13 19:11:31 +0200
commite4205fba7c02b119ceea251f1484730066c2dedc (patch)
tree03aea9faa402e6e0d6734b1e813f28091a5e2d24
parent2c845e0bd68a310a1ebbd63a635200416a9bfbe0 (diff)
downloadmariadb-git-e4205fba7c02b119ceea251f1484730066c2dedc.tar.gz
MDEV-24536 innodb_idle_flush_pct has no effect
The parameter innodb_idle_flush_pct that was introduced in MariaDB Server 10.1.2 by MDEV-6932 has no effect ever since the InnoDB changes from MySQL 5.7.9 were applied in commit 2e814d4702d71a04388386a9f591d14a35980bfe. Let us declare the parameter as MARIADB_REMOVED_OPTION. For earlier versions, commit ea9cd97f855fddf91f011434e8289ce5eba52528 declared the parameter deprecated.
-rw-r--r--mysql-test/suite/sys_vars/r/innodb_idle_flush_pct_basic.result77
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff9
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_innodb.result12
-rw-r--r--mysql-test/suite/sys_vars/t/innodb_idle_flush_pct_basic.test63
-rw-r--r--sql/mysqld.cc3
-rw-r--r--sql/upgrade_conf_file.cc1
-rw-r--r--storage/innobase/handler/ha_innodb.cc8
-rw-r--r--storage/innobase/include/srv0srv.h2
-rw-r--r--storage/innobase/srv/srv0srv.cc3
9 files changed, 3 insertions, 175 deletions
diff --git a/mysql-test/suite/sys_vars/r/innodb_idle_flush_pct_basic.result b/mysql-test/suite/sys_vars/r/innodb_idle_flush_pct_basic.result
deleted file mode 100644
index a2c328f38fd..00000000000
--- a/mysql-test/suite/sys_vars/r/innodb_idle_flush_pct_basic.result
+++ /dev/null
@@ -1,77 +0,0 @@
-SET @start_global_value = @@global.innodb_idle_flush_pct;
-SELECT @start_global_value;
-@start_global_value
-100
-Valid values are between 0 and 100
-select @@global.innodb_idle_flush_pct between 0 and 100;
-@@global.innodb_idle_flush_pct between 0 and 100
-1
-select @@global.innodb_idle_flush_pct;
-@@global.innodb_idle_flush_pct
-100
-select @@session.innodb_idle_flush_pct;
-ERROR HY000: Variable 'innodb_idle_flush_pct' is a GLOBAL variable
-show global variables like 'innodb_idle_flush_pct';
-Variable_name Value
-innodb_idle_flush_pct 100
-show session variables like 'innodb_idle_flush_pct';
-Variable_name Value
-innodb_idle_flush_pct 100
-select * from information_schema.global_variables where variable_name='innodb_idle_flush_pct';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_IDLE_FLUSH_PCT 100
-select * from information_schema.session_variables where variable_name='innodb_idle_flush_pct';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_IDLE_FLUSH_PCT 100
-set global innodb_idle_flush_pct=10;
-select @@global.innodb_idle_flush_pct;
-@@global.innodb_idle_flush_pct
-10
-select * from information_schema.global_variables where variable_name='innodb_idle_flush_pct';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_IDLE_FLUSH_PCT 10
-select * from information_schema.session_variables where variable_name='innodb_idle_flush_pct';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_IDLE_FLUSH_PCT 10
-set session innodb_idle_flush_pct=1;
-ERROR HY000: Variable 'innodb_idle_flush_pct' is a GLOBAL variable and should be set with SET GLOBAL
-set global innodb_idle_flush_pct=1.1;
-ERROR 42000: Incorrect argument type to variable 'innodb_idle_flush_pct'
-set global innodb_idle_flush_pct=1e1;
-ERROR 42000: Incorrect argument type to variable 'innodb_idle_flush_pct'
-set global innodb_idle_flush_pct="bar";
-ERROR 42000: Incorrect argument type to variable 'innodb_idle_flush_pct'
-set global innodb_idle_flush_pct=-7;
-Warnings:
-Warning 1292 Truncated incorrect innodb_idle_flush_pct value: '-7'
-select @@global.innodb_idle_flush_pct;
-@@global.innodb_idle_flush_pct
-0
-select * from information_schema.global_variables where variable_name='innodb_idle_flush_pct';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_IDLE_FLUSH_PCT 0
-set global innodb_idle_flush_pct=106;
-Warnings:
-Warning 1292 Truncated incorrect innodb_idle_flush_pct value: '106'
-select @@global.innodb_idle_flush_pct;
-@@global.innodb_idle_flush_pct
-100
-select * from information_schema.global_variables where variable_name='innodb_idle_flush_pct';
-VARIABLE_NAME VARIABLE_VALUE
-INNODB_IDLE_FLUSH_PCT 100
-set global innodb_idle_flush_pct=0;
-select @@global.innodb_idle_flush_pct;
-@@global.innodb_idle_flush_pct
-0
-set global innodb_idle_flush_pct=100;
-select @@global.innodb_idle_flush_pct;
-@@global.innodb_idle_flush_pct
-100
-set global innodb_idle_flush_pct=DEFAULT;
-select @@global.innodb_idle_flush_pct;
-@@global.innodb_idle_flush_pct
-100
-SET @@global.innodb_idle_flush_pct = @start_global_value;
-SELECT @@global.innodb_idle_flush_pct;
-@@global.innodb_idle_flush_pct
-100
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 ee9a1eee717..f6a9305d373 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff
+++ b/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff
@@ -188,15 +188,6 @@
VARIABLE_COMMENT Total memory allocated for InnoDB Fulltext Search cache
NUMERIC_MIN_VALUE 32000000
NUMERIC_MAX_VALUE 1600000000
-@@ -1057,7 +1057,7 @@
- SESSION_VALUE NULL
- DEFAULT_VALUE 100
- VARIABLE_SCOPE GLOBAL
--VARIABLE_TYPE BIGINT UNSIGNED
-+VARIABLE_TYPE INT UNSIGNED
- VARIABLE_COMMENT Up to what percentage of dirty pages should be flushed when innodb finds it has spare resources to do so.
- NUMERIC_MIN_VALUE 0
- NUMERIC_MAX_VALUE 100
@@ -1093,22 +1093,22 @@
SESSION_VALUE NULL
DEFAULT_VALUE 200
diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
index 2a7d7b9a246..ba4e214575c 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result
+++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
@@ -1053,18 +1053,6 @@ NUMERIC_BLOCK_SIZE NULL
ENUM_VALUE_LIST NULL
READ_ONLY NO
COMMAND_LINE_ARGUMENT OPTIONAL
-VARIABLE_NAME INNODB_IDLE_FLUSH_PCT
-SESSION_VALUE NULL
-DEFAULT_VALUE 100
-VARIABLE_SCOPE GLOBAL
-VARIABLE_TYPE BIGINT UNSIGNED
-VARIABLE_COMMENT Up to what percentage of dirty pages should be flushed when innodb finds it has spare resources to do so.
-NUMERIC_MIN_VALUE 0
-NUMERIC_MAX_VALUE 100
-NUMERIC_BLOCK_SIZE 0
-ENUM_VALUE_LIST NULL
-READ_ONLY NO
-COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME INNODB_IMMEDIATE_SCRUB_DATA_UNCOMPRESSED
SESSION_VALUE NULL
DEFAULT_VALUE OFF
diff --git a/mysql-test/suite/sys_vars/t/innodb_idle_flush_pct_basic.test b/mysql-test/suite/sys_vars/t/innodb_idle_flush_pct_basic.test
deleted file mode 100644
index 7175a59e238..00000000000
--- a/mysql-test/suite/sys_vars/t/innodb_idle_flush_pct_basic.test
+++ /dev/null
@@ -1,63 +0,0 @@
-
-#
-# 2013-04-01 - Added
-#
-
---source include/have_innodb.inc
-
-SET @start_global_value = @@global.innodb_idle_flush_pct;
-SELECT @start_global_value;
-
-#
-# exists as global only
-#
---echo Valid values are between 0 and 100
-select @@global.innodb_idle_flush_pct between 0 and 100;
-select @@global.innodb_idle_flush_pct;
---error ER_INCORRECT_GLOBAL_LOCAL_VAR
-select @@session.innodb_idle_flush_pct;
-show global variables like 'innodb_idle_flush_pct';
-show session variables like 'innodb_idle_flush_pct';
-select * from information_schema.global_variables where variable_name='innodb_idle_flush_pct';
-select * from information_schema.session_variables where variable_name='innodb_idle_flush_pct';
-
-#
-# show that it's writable
-#
-set global innodb_idle_flush_pct=10;
-select @@global.innodb_idle_flush_pct;
-select * from information_schema.global_variables where variable_name='innodb_idle_flush_pct';
-select * from information_schema.session_variables where variable_name='innodb_idle_flush_pct';
---error ER_GLOBAL_VARIABLE
-set session innodb_idle_flush_pct=1;
-
-#
-# incorrect types
-#
---error ER_WRONG_TYPE_FOR_VAR
-set global innodb_idle_flush_pct=1.1;
---error ER_WRONG_TYPE_FOR_VAR
-set global innodb_idle_flush_pct=1e1;
---error ER_WRONG_TYPE_FOR_VAR
-set global innodb_idle_flush_pct="bar";
-
-set global innodb_idle_flush_pct=-7;
-select @@global.innodb_idle_flush_pct;
-select * from information_schema.global_variables where variable_name='innodb_idle_flush_pct';
-set global innodb_idle_flush_pct=106;
-select @@global.innodb_idle_flush_pct;
-select * from information_schema.global_variables where variable_name='innodb_idle_flush_pct';
-
-#
-# min/max/DEFAULT values
-#
-set global innodb_idle_flush_pct=0;
-select @@global.innodb_idle_flush_pct;
-set global innodb_idle_flush_pct=100;
-select @@global.innodb_idle_flush_pct;
-set global innodb_idle_flush_pct=DEFAULT;
-select @@global.innodb_idle_flush_pct;
-
-
-SET @@global.innodb_idle_flush_pct = @start_global_value;
-SELECT @@global.innodb_idle_flush_pct;
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 9834d331474..c59fd970dff 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -1,5 +1,5 @@
/* Copyright (c) 2000, 2015, Oracle and/or its affiliates.
- Copyright (c) 2008, 2020, MariaDB
+ Copyright (c) 2008, 2021, MariaDB
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
@@ -4979,6 +4979,7 @@ static int init_server_components()
#if defined(__linux__)
MARIADB_REMOVED_OPTION("super-large-pages"),
#endif
+ MARIADB_REMOVED_OPTION("innodb-idle-flush-pct"),
MARIADB_REMOVED_OPTION("innodb-locks-unsafe-for-binlog"),
MARIADB_REMOVED_OPTION("innodb-rollback-segments"),
MARIADB_REMOVED_OPTION("innodb-stats-sample-pages"),
diff --git a/sql/upgrade_conf_file.cc b/sql/upgrade_conf_file.cc
index a08fd087172..e41e4dfd857 100644
--- a/sql/upgrade_conf_file.cc
+++ b/sql/upgrade_conf_file.cc
@@ -76,6 +76,7 @@ static const char *removed_variables[] =
"innodb_ibuf_accel_rate",
"innodb_ibuf_active_contract",
"innodb_ibuf_max_size",
+"innodb_idle_flush_pct",
"innodb_import_table_from_xtrabackup",
"innodb_instrument_semaphores",
"innodb_kill_idle_transaction",
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index 2a085599494..2694dbb2841 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -18892,13 +18892,6 @@ static MYSQL_SYSVAR_ULONG(io_capacity_max, srv_max_io_capacity,
SRV_MAX_IO_CAPACITY_DUMMY_DEFAULT, 100,
SRV_MAX_IO_CAPACITY_LIMIT, 0);
-static MYSQL_SYSVAR_ULONG(idle_flush_pct,
- srv_idle_flush_pct,
- PLUGIN_VAR_RQCMDARG,
- "Up to what percentage of dirty pages should be flushed when innodb "
- "finds it has spare resources to do so.",
- NULL, NULL, 100, 0, 100, 0);
-
#ifdef UNIV_DEBUG
static MYSQL_SYSVAR_BOOL(background_drop_list_empty,
innodb_background_drop_list_empty,
@@ -20057,7 +20050,6 @@ static struct st_mysql_sys_var* innobase_system_variables[]= {
MYSQL_SYSVAR(io_capacity),
MYSQL_SYSVAR(io_capacity_max),
MYSQL_SYSVAR(page_cleaners),
- MYSQL_SYSVAR(idle_flush_pct),
MYSQL_SYSVAR(monitor_enable),
MYSQL_SYSVAR(monitor_disable),
MYSQL_SYSVAR(monitor_reset),
diff --git a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h
index 8238be0ffd8..47ef62336b8 100644
--- a/storage/innobase/include/srv0srv.h
+++ b/storage/innobase/include/srv0srv.h
@@ -348,8 +348,6 @@ extern double srv_defragment_fill_factor;
extern uint srv_defragment_frequency;
extern ulonglong srv_defragment_interval;
-extern ulong srv_idle_flush_pct;
-
extern uint srv_change_buffer_max_size;
/* Number of IO operations per second the server can do */
diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc
index 402e2bdc59f..4daff1842e0 100644
--- a/storage/innobase/srv/srv0srv.cc
+++ b/storage/innobase/srv/srv0srv.cc
@@ -224,9 +224,6 @@ ulong srv_buf_pool_load_pages_abort = LONG_MAX;
/** Lock table size in bytes */
ulint srv_lock_table_size = ULINT_MAX;
-/** innodb_idle_flush_pct */
-ulong srv_idle_flush_pct;
-
/** innodb_read_io_threads */
uint srv_n_read_io_threads;
/** innodb_write_io_threads */