Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.2(EOL), 10.3(EOL), 10.4(EOL)
-
None
Description
The documentation says that the thread_cache_size system variable supports auto-sizing in MariaDB 10.2 and later, and that auto-sizing is the default:
From MariaDB 10.2.0, the default is automatically set to the smaller of either 256, or the max_connections size.
|
https://mariadb.com/kb/en/library/server-system-variables/#thread_cache_size
However, this does not seem to be the case. This system variable does not support AUTO_SET, and the default is 256:
static Sys_var_ulong Sys_thread_cache_size(
|
"thread_cache_size",
|
"How many threads we should keep in a cache for reuse. These are freed after 5 minutes of idle time",
|
GLOBAL_VAR(thread_cache_size), CMD_LINE(REQUIRED_ARG),
|
VALID_RANGE(0, 16384), DEFAULT(256), BLOCK_SIZE(1));
|
https://github.com/MariaDB/server/blob/mariadb-10.4.6/sql/sys_vars.cc#L3655
The only time that this system variable appears to be auto-sized is if its configured value is greater than max_connections:
/* Ensure that some variables are not set higher than needed */
|
if (thread_cache_size > max_connections)
|
SYSVAR_AUTOSIZE(thread_cache_size, max_connections);
|
https://github.com/MariaDB/server/blob/mariadb-10.4.6/sql/mysqld.cc#L9013
Is this a documentation bug, or is the behavior of thread_cache_size incorrect?
Attachments
Issue Links
- relates to
-
MDEV-19839 refactor --autoset
- Open
-
MDEV-19895 Support "autoset" in SET GLOBAL for AUTO_SET system variables
- Open