mirror of
https://github.com/MariaDB/server.git
synced 2025-11-02 02:53:04 +03:00
New test cases
innodb-page-cleaners
Modified test cases
innodb_page_cleaners_basic
New function buf_flush_set_page_cleaner_thread_cnt
Increase or decrease the amount of page cleaner worker threads.
In case of increase this function creates based on current
abount and requested amount how many new threads should be
created. In case of decrease this function sets up the
requested amount of threads and uses is_requested event
to signal workers. Then we wait until all new treads
are started, old threads that should exit signal
is_finished or shutdown has marked that page cleaner
should finish.
buf_flush_page_cleaner_worker
Store current thread id and thread_no and then signal
event is_finished. If number of used page cleaner threads
decrease we shut down those threads that have thread_no
greater or equal than number of page configured page
cleaners - 1 (note that there will be always page cleaner
coordinator). Before exiting we signal is_finished.
New function innodb_page_cleaners_threads_update
Update function for innodb-page-cleaners system variable.
innobase_start_or_create_for_mysql
If more than one page cleaner threads is configured
we use new function buf_flush_set_page_cleaner_thread_cnt
to set up the requested threads (-1 coordinator).
71 lines
1.9 KiB
Plaintext
71 lines
1.9 KiB
Plaintext
SELECT COUNT(@@GLOBAL.innodb_page_cleaners);
|
|
COUNT(@@GLOBAL.innodb_page_cleaners)
|
|
1
|
|
1 Expected
|
|
SELECT @@innodb_page_cleaners;
|
|
@@innodb_page_cleaners
|
|
1
|
|
1 Expected
|
|
SET @@GLOBAL.innodb_page_cleaners=2;
|
|
Expected to pass
|
|
SELECT @@innodb_page_cleaners;
|
|
@@innodb_page_cleaners
|
|
2
|
|
2 Expected
|
|
SET @@GLOBAL.innodb_page_cleaners=1;
|
|
Expected to pass
|
|
SELECT @@innodb_page_cleaners;
|
|
@@innodb_page_cleaners
|
|
1
|
|
1 Expected
|
|
SET @@GLOBAL.innodb_page_cleaners=6;
|
|
Expected to pass
|
|
SELECT @@innodb_page_cleaners;
|
|
@@innodb_page_cleaners
|
|
6
|
|
6 Expected
|
|
SET @@GLOBAL.innodb_page_cleaners=4;
|
|
Expected to pass
|
|
SELECT @@innodb_page_cleaners;
|
|
@@innodb_page_cleaners
|
|
4
|
|
4 Expected
|
|
SET @@GLOBAL.innodb_page_cleaners=0;
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect innodb_page_cleaners value: '0'
|
|
Warning expected
|
|
SELECT @@innodb_page_cleaners;
|
|
@@innodb_page_cleaners
|
|
1
|
|
1 Expected
|
|
SELECT innodb_page_cleaners = @@SESSION.innodb_page_cleaners;
|
|
ERROR 42S22: Unknown column 'innodb_page_cleaners' in 'field list'
|
|
Expected error 'Read-only variable'
|
|
SELECT @@GLOBAL.innodb_page_cleaners = VARIABLE_VALUE
|
|
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
|
WHERE VARIABLE_NAME='innodb_page_cleaners';
|
|
@@GLOBAL.innodb_page_cleaners = VARIABLE_VALUE
|
|
1
|
|
1 Expected
|
|
SELECT COUNT(VARIABLE_VALUE)
|
|
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
|
WHERE VARIABLE_NAME='innodb_page_cleaners';
|
|
COUNT(VARIABLE_VALUE)
|
|
1
|
|
1 Expected
|
|
SELECT @@innodb_page_cleaners = @@GLOBAL.innodb_page_cleaners;
|
|
@@innodb_page_cleaners = @@GLOBAL.innodb_page_cleaners
|
|
1
|
|
1 Expected
|
|
SELECT COUNT(@@local.innodb_page_cleaners);
|
|
ERROR HY000: Variable 'innodb_page_cleaners' is a GLOBAL variable
|
|
Expected error 'Variable is a GLOBAL variable'
|
|
SELECT COUNT(@@SESSION.innodb_page_cleaners);
|
|
ERROR HY000: Variable 'innodb_page_cleaners' is a GLOBAL variable
|
|
Expected error 'Variable is a GLOBAL variable'
|
|
SELECT VARIABLE_NAME, VARIABLE_VALUE
|
|
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
|
WHERE VARIABLE_NAME = 'innodb_page_cleaners';
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
INNODB_PAGE_CLEANERS 1
|