mirror of
https://github.com/MariaDB/server.git
synced 2025-11-25 17:25:02 +03:00
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.
139 lines
6.3 KiB
Plaintext
139 lines
6.3 KiB
Plaintext
################# 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;
|
|
SET GLOBAL 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 #
|
|
###########################################################################
|
|
|
|
SELECT @@global.innodb_commit_concurrency;
|
|
SELECT @@global.innodb_commit_concurrency;
|
|
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;
|
|
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 #
|
|
###############################################################
|