mirror of
https://github.com/MariaDB/server.git
synced 2025-05-08 15:01:49 +03:00
To allow it, change minimum of thread_pool_stall_limit to be 10 milliseconds. Also introduce a new parameter to oversubscribe a group . Number of threads running in parallel would be higher than it normally should, leading to thrashing, but it may improving preemptiveness, which is useful for the described corner case.
44 lines
1.3 KiB
Plaintext
44 lines
1.3 KiB
Plaintext
# uint global
|
|
--source include/not_windows.inc
|
|
--source include/not_embedded.inc
|
|
SET @start_global_value = @@global.thread_pool_oversubscribe;
|
|
|
|
#
|
|
# exists as global only
|
|
#
|
|
select @@global.thread_pool_oversubscribe;
|
|
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
|
select @@session.thread_pool_oversubscribe;
|
|
show global variables like 'thread_pool_oversubscribe';
|
|
show session variables like 'thread_pool_oversubscribe';
|
|
select * from information_schema.global_variables where variable_name='thread_pool_oversubscribe';
|
|
select * from information_schema.session_variables where variable_name='thread_pool_oversubscribe';
|
|
|
|
#
|
|
# show that it's writable
|
|
#
|
|
set global thread_pool_oversubscribe=60;
|
|
select @@global.thread_pool_oversubscribe;
|
|
set global thread_pool_oversubscribe=1000;
|
|
select @@global.thread_pool_oversubscribe;
|
|
--error ER_GLOBAL_VARIABLE
|
|
set session thread_pool_oversubscribe=1;
|
|
|
|
#
|
|
# incorrect types
|
|
#
|
|
--error ER_WRONG_TYPE_FOR_VAR
|
|
set global thread_pool_oversubscribe=1.1;
|
|
--error ER_WRONG_TYPE_FOR_VAR
|
|
set global thread_pool_oversubscribe=1e1;
|
|
--error ER_WRONG_TYPE_FOR_VAR
|
|
set global thread_pool_oversubscribe="foo";
|
|
|
|
|
|
set global thread_pool_oversubscribe=-1;
|
|
select @@global.thread_pool_oversubscribe;
|
|
set global thread_pool_oversubscribe=10000000000;
|
|
select @@global.thread_pool_oversubscribe;
|
|
|
|
set @@global.thread_pool_oversubscribe = @start_global_value;
|