1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-27 05:41:41 +03:00

MDEV-23379 Deprecate&ignore InnoDB concurrency throttling parameters

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. 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.

Hence, enabling any concurrency throttling for InnoDB actually makes
things worse. We have seen many customers mistakenly setting this to a
small value like 16 or 64 and then complaining the server was slow.

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.
This commit is contained in:
Marko Mäkelä
2020-08-04 06:59:29 +03:00
parent 7438fc4f73
commit bbd70fcc43
39 changed files with 345 additions and 1170 deletions

View File

@@ -24,33 +24,43 @@ select * from information_schema.session_variables where variable_name='innodb_r
VARIABLE_NAME VARIABLE_VALUE
INNODB_REPLICATION_DELAY 0
set global innodb_replication_delay=10;
Warnings:
Warning 138 The parameter innodb_replication_delay is deprecated and has no effect.
select @@global.innodb_replication_delay;
@@global.innodb_replication_delay
10
0
select * from information_schema.global_variables where variable_name='innodb_replication_delay';
VARIABLE_NAME VARIABLE_VALUE
INNODB_REPLICATION_DELAY 10
INNODB_REPLICATION_DELAY 0
select * from information_schema.session_variables where variable_name='innodb_replication_delay';
VARIABLE_NAME VARIABLE_VALUE
INNODB_REPLICATION_DELAY 10
INNODB_REPLICATION_DELAY 0
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;
Warnings:
Warning 138 The parameter innodb_replication_delay is deprecated and has no effect.
select @@global.innodb_replication_delay;
@@global.innodb_replication_delay
0
set global innodb_replication_delay=0;
Warnings:
Warning 138 The parameter innodb_replication_delay is deprecated and has no effect.
select @@global.innodb_replication_delay;
@@global.innodb_replication_delay
0
set global innodb_replication_delay=65535;
Warnings:
Warning 138 The parameter innodb_replication_delay is deprecated and has no effect.
select @@global.innodb_replication_delay;
@@global.innodb_replication_delay
65535
0
set global innodb_replication_delay=4294967295;
Warnings:
Warning 138 The parameter innodb_replication_delay is deprecated and has no effect.
select @@global.innodb_replication_delay;
@@global.innodb_replication_delay
4294967295
0
set global innodb_replication_delay=1.1;
ERROR 42000: Incorrect argument type to variable 'innodb_replication_delay'
set global innodb_replication_delay=1e1;
@@ -61,21 +71,23 @@ 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
0
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
0
set global innodb_replication_delay=-7;
Warnings:
Warning 1292 Truncated incorrect innodb_replication_delay value: '-7'
Warning 138 The parameter innodb_replication_delay is deprecated and has no effect.
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'
Warning 138 The parameter innodb_replication_delay is deprecated and has no effect.
select @@global.innodb_replication_delay;
@@global.innodb_replication_delay
0
@@ -85,16 +97,18 @@ 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
0
SET @@global.innodb_replication_delay = 12345678901;
SELECT @@global.innodb_replication_delay IN (12345678901,4294967295);
@@global.innodb_replication_delay IN (12345678901,4294967295)
1
0
SET @@global.innodb_replication_delay = 18446744073709551615;
SELECT @@global.innodb_replication_delay IN (18446744073709551615,4294967295);
@@global.innodb_replication_delay IN (18446744073709551615,4294967295)
1
0
SET @@global.innodb_replication_delay = @start_global_value;
Warnings:
Warning 138 The parameter innodb_replication_delay is deprecated and has no effect.
SELECT @@global.innodb_replication_delay;
@@global.innodb_replication_delay
0