WL#13115: InnoDB: Add new option to control write IOPs when idle
Affects: Server-8.0
—
Status: Complete
Some users wants to reduce write IO as less as possible, for longer life of the flash storage. Currently, InnoDB does write IO in 100% of innodb_io_capacity when InnoDB is idle. This behavior is not so urgent and just reduces the lifespan of the flash storage. But lower innodb_io_capacity should cause lower performance. The some users need to control idle-time write IOPs separated from not-idle IOPs. 1: Implementing new option innodb_idle_flush_pct to control write IOPs when idle * based on BUG#88566 : CONTRIBUTION BY FACEBOOK: ENABLE LAZY FLUSHING IN PAGE CLEANER
Functional requirements: F-1: A new server variable added : Name : innodb_idle_flush_pct Default value : 100 (existing behavior) Scope : global F-2: User can control idle write IOPs based on innodb_io_capacity by specifying percentage to new option innodb_idle_flush_pct. F-3: innodb_idle_flush_pct default value is 100 and this means same to current behavior. Non-Functional requirements: NF-1: innodb_idle_flush_pct should not affect to the other InnoDB behavior
Changes to the interface specification: I-1: No new files I-2: New syntax SET GLOBAL VARIABLE innodb_idle_flush_pct=[0~100] I-3: No new commands I-4: No new tools I-5: No impact on existing functionality
changing the following part to the variable. storage/innodb/buf/buf0flu.cc: buf_flush_page_coordinator_thread() } else if (ret_sleep == OS_SYNC_TIME_EXCEEDED) { /* no activity, slept enough */ buf_flush_lists(PCT_IO(100), LSN_MAX, &n_flushed); ~~~<-this value
Copyright (c) 2000, 2024, Oracle Corporation and/or its affiliates. All rights reserved.