1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-7035: Remove innodb_io_capacity setting depending on

setting of innodb_io_capacity_max

(a) Changed the behaviour so that if you set innodb_io_capacity to a 
value > innodb_io_capacity_max that the value is accepted AND 
that innodb_io_capacity_max = innodb_io_capacity * 2.

(b) If someone wants to reduce innodb_io_capacity_max and 
reduce it below innodb_io_capacity then innodb_io_capacity 
should be reduced to the same level as innodb_io_capacity_max.

In both cases give a warning to user.
This commit is contained in:
Jan Lindström
2014-11-13 13:24:26 +02:00
parent bff2d46bf7
commit 0f32299437
4 changed files with 73 additions and 33 deletions

View File

@ -45,27 +45,42 @@ set global innodb_io_capacity_max=1e1;
ERROR 42000: Incorrect argument type to variable 'innodb_io_capacity_max'
set global innodb_io_capacity_max="foo";
ERROR 42000: Incorrect argument type to variable 'innodb_io_capacity_max'
set global innodb_io_capacity_max=@start_innodb_capacity - 1;
set global innodb_io_capacity_max=1000;
set global innodb_io_capacity=500;
set global innodb_io_capacity_max=400;
Warnings:
Warning 1210 innodb_io_capacity_max cannot be set lower than innodb_io_capacity.
Warning 1210 Setting innodb_io_capacity_max to 200
Warning 1210 Setting innodb_io_capacity_max 400 lower than innodb_io_capacity 500.
Warning 1210 Setting innodb_io_capacity to 400
select @@global.innodb_io_capacity_max;
@@global.innodb_io_capacity_max
200
400
select @@global.innodb_io_capacity;
@@global.innodb_io_capacity
400
select * from information_schema.global_variables where variable_name='innodb_io_capacity_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_IO_CAPACITY_MAX 200
set global innodb_io_capacity_max=-7;
INNODB_IO_CAPACITY_MAX 400
select * from information_schema.global_variables where variable_name='innodb_io_capacity';
VARIABLE_NAME VARIABLE_VALUE
INNODB_IO_CAPACITY 400
set global innodb_io_capacity_max=1000;
set global innodb_io_capacity=500;
set global innodb_io_capacity=1400;
Warnings:
Warning 1292 Truncated incorrect innodb_io_capacity_max value: '-7'
Warning 1210 innodb_io_capacity_max cannot be set lower than innodb_io_capacity.
Warning 1210 Setting innodb_io_capacity_max to 200
Warning 1210 Setting innodb_io_capacity to 1400 higher than innodb_io_capacity_max 1000
Warning 1210 Setting innodb_max_io_capacity to 2800
select @@global.innodb_io_capacity_max;
@@global.innodb_io_capacity_max
200
2800
select @@global.innodb_io_capacity;
@@global.innodb_io_capacity
1400
select * from information_schema.global_variables where variable_name='innodb_io_capacity_max';
VARIABLE_NAME VARIABLE_VALUE
INNODB_IO_CAPACITY_MAX 200
INNODB_IO_CAPACITY_MAX 2800
select * from information_schema.global_variables where variable_name='innodb_io_capacity';
VARIABLE_NAME VARIABLE_VALUE
INNODB_IO_CAPACITY 1400
set global innodb_io_capacity=100;
set global innodb_io_capacity_max=100;
select @@global.innodb_io_capacity_max;

View File

@ -25,7 +25,7 @@ select * from information_schema.global_variables where variable_name='innodb_io
select * from information_schema.session_variables where variable_name='innodb_io_capacity_max';
#
# show that it's writable. Allowed value cannot be lower than innodb_io_capacity
# show that it's writable.
#
set global innodb_io_capacity_max=@start_innodb_capacity + 1;
select @@global.innodb_io_capacity_max;
@ -45,15 +45,26 @@ set global innodb_io_capacity_max=1e1;
set global innodb_io_capacity_max="foo";
#
# can't set it below innodb_io_capacity
# Setting io_capacity_max lower than io_capacity affects also io_capacity
#
set global innodb_io_capacity_max=@start_innodb_capacity - 1;
select @@global.innodb_io_capacity_max;
select * from information_schema.global_variables where variable_name='innodb_io_capacity_max';
set global innodb_io_capacity_max=-7;
set global innodb_io_capacity_max=1000;
set global innodb_io_capacity=500;
set global innodb_io_capacity_max=400;
select @@global.innodb_io_capacity_max;
select @@global.innodb_io_capacity;
select * from information_schema.global_variables where variable_name='innodb_io_capacity_max';
select * from information_schema.global_variables where variable_name='innodb_io_capacity';
#
# Setting io_capacity higher than io_capacity_max affects also io_capacity_max
#
set global innodb_io_capacity_max=1000;
set global innodb_io_capacity=500;
set global innodb_io_capacity=1400;
select @@global.innodb_io_capacity_max;
select @@global.innodb_io_capacity;
select * from information_schema.global_variables where variable_name='innodb_io_capacity_max';
select * from information_schema.global_variables where variable_name='innodb_io_capacity';
#
# min/max values
#