Bug #88566 Contribution by Facebook: Enable Lazy Flushing in Page Cleaner
Submitted: 20 Nov 2017 19:33 Modified: 26 May 19:38
Reporter: FBContrib Admin Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:8.0 OS:Any
Assigned to: CPU Architecture:Any

[20 Nov 2017 19:33] FBContrib Admin
Description:
Background innformation provided by Facebook:
Abstract:

Repo: https://github.com/mysql/mysql-server

Patch on top of 8.0.3: https://github.com/mysql/mysql-server/commit/020025d9f277fd3283b8c75024f590857f58fbbd

Adds innodb_idle_flush_pct to enable tuning of the page flushing rate when the system is relatively idle.  We care about this, since doing extra unnecessary flash writes shortens the lifespan of the flash.

How to repeat:
See description

Suggested fix:
See contribution code attached
[20 Nov 2017 19:33] FBContrib Admin
Enable Lazy Flushing in Page Cleaner 
(*) This code is contributed under the Facebook agreement

Contribution: fb_patch_11.txt (text/plain), 8.19 KiB.

[26 May 19:38] Debarun Banerjee
Posted by developer:
 
This contribution is pushed by "WL#13115 InnoDB: Add new option to control write IOPs when idle" and is available from 8.0.18.

https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_idle_flush_pc...

commit dbde2e69a67b5baa99046ece5cce236e0ad3902d
Author: Mayank Prasad <mayank.prasad@oracle.com>
Date:   Thu Jun 27 16:54:34 2019 +0530

    wl#13115 : InnoDB: Add new option to control write IOPs when idle
    
      Added a new server variable :
      Name     : innodb_idle_flush_pct
      Default  : 100
      Scope    : global
      Dynamic  : yes
    
      Using this server variable user can configure how much dirty pages
      to be flushed during idle period. Before this WL, all the dirty
      pages were tried to be flushed.
    
      RB : 22166
      Reviewd By : yasufumi.kinoshita@oracle.com
[26 May 21:28] Omer Barnir
Thanks to Facebook for the contribution
[2 Jun 18:08] Daniel Price
Posted by developer:
 
Fixed as of the upcoming 8.0.18 release:

The new innodb_idle_flush_pct variable permits placing a limit on page
flushing during idle periods, which can help extend the life of solid
state storage devices. See Limiting Buffer Flushing During Idle Periods.

https://dev.mysql.com/doc/refman/8.0/en/innodb-buffer-pool-flushing.html

Thanks to Facebook for the contribution.