mirror of
https://github.com/MariaDB/server.git
synced 2025-06-09 06:14:44 +02:00
65 lines
2 KiB
Text
65 lines
2 KiB
Text
--source include/have_innodb.inc
|
|
--source include/have_sequence.inc
|
|
|
|
SET @save_pct= @@GLOBAL.innodb_max_dirty_pages_pct;
|
|
SET @save_pct_lwm= @@GLOBAL.innodb_max_dirty_pages_pct_lwm;
|
|
|
|
SET GLOBAL innodb_max_dirty_pages_pct_lwm=0.0;
|
|
SET GLOBAL innodb_max_dirty_pages_pct=0.0;
|
|
|
|
CREATE TABLE t(a INT) ENGINE=InnoDB STATS_PERSISTENT=0;
|
|
--connect (prevent_purge,localhost,root)
|
|
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
|
--connection default
|
|
SET GLOBAL innodb_max_purge_lag_wait=0;
|
|
|
|
let $wait_condition =
|
|
SELECT variable_value = 0
|
|
FROM information_schema.global_status
|
|
WHERE variable_name = 'INNODB_BUFFER_POOL_PAGES_DIRTY';
|
|
--source include/wait_condition.inc
|
|
|
|
SET GLOBAL innodb_max_dirty_pages_pct=90.0;
|
|
--disable_cursor_protocol
|
|
select variable_value into @innodb_async_writes_total_count_before
|
|
from information_schema.global_status
|
|
where variable_name='innodb_async_writes_total_count';
|
|
--enable_cursor_protocol
|
|
|
|
--disable_cursor_protocol
|
|
SELECT variable_value INTO @log_writes FROM information_schema.global_status
|
|
WHERE variable_name='innodb_log_writes';
|
|
--enable_cursor_protocol
|
|
|
|
BEGIN;
|
|
--disable_query_log
|
|
let $N=500;
|
|
while ($N) {
|
|
INSERT INTO t SELECT * FROM seq_1_to_10;
|
|
dec $N;
|
|
}
|
|
--enable_query_log
|
|
ROLLBACK;
|
|
|
|
SELECT if(variable_value-@log_writes<500,'ok',variable_value-@log_writes)
|
|
FROM information_schema.global_status WHERE variable_name='innodb_log_writes';
|
|
--disconnect prevent_purge
|
|
|
|
SELECT variable_value>0 FROM information_schema.global_status
|
|
WHERE variable_name = 'INNODB_BUFFER_POOL_PAGES_DIRTY';
|
|
|
|
SET GLOBAL innodb_max_dirty_pages_pct=0.0;
|
|
|
|
# Without the MDEV-24917 fix, we would time out here.
|
|
--source include/wait_condition.inc
|
|
|
|
select (cast(variable_value as unsigned) >
|
|
cast(@innodb_async_writes_total_count_before as unsigned))
|
|
as innodb_async_writes_grow
|
|
from information_schema.global_status
|
|
where variable_name='innodb_async_writes_total_count';
|
|
|
|
DROP TABLE t;
|
|
|
|
SET GLOBAL innodb_max_dirty_pages_pct = @save_pct;
|
|
SET GLOBAL innodb_max_dirty_pages_pct_lwm = @save_pct_lwm;
|