Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-30136

Map innodb_flush_method to new settable Booleans innodb_{log,data}_file_{buffering,write_through}




      Starting with MDEV-28766 in 10.8, O_DIRECT can be enabled on the redo log:

      SET GLOBAL innodb_log_file_buffering=OFF;

      The parameter innodb_flush_method is confusing and could not be set without restarting the server. Its allowed values are as follows:

      • fsync (0, SRV_FSYNC): the default before MDEV-24854: use file system cache and explicit fdatasync() or fsync()
      • O_DSYNC (1, SRV_O_DSYNC): O_DIRECT on data files, and enable O_DSYNC on the redo log
      • littlesync (2, SRV_LITTLESYNC): like O_DIRECT_NO_FSYNC, but using the file system cache (unsafe!)
      • nosync (3, SRV_NOSYNC): like littlesync, but do not invoke fsync() or fdatasync() on the log file
      • O_DIRECT (4, SRV_O_DIRECT): like fsync but bypassing the file system cache for data files (default)
      • O_DIRECT_NO_FSYNC (5, SRV_O_DIRECT_NO_FSYNC): like O_DIRECT, but do not call fsync() or fdatasync() on the data files (unsafe in some cases; see this comment in MDEV-24854)

      Let us deprecate the parameter innodb_flush_method and map it to 4 Boolean parameters that can be changed with SET GLOBAL while the server is running:

      • innodb_log_file_buffering (disable O_DIRECT, added by MDEV-28766 in 10.8.4, 10.9.2)
      • innodb_data_file_buffering (disable O_DIRECT on data files)
      • innodb_log_file_write_through (enable O_DSYNC on the log)
      • innodb_data_file_write_through (enable O_DSYNC on persistent data files)

      3 of the above 4 Boolean parameters would be added in this task.


        Issue Links



              marko Marko Mäkelä
              marko Marko Mäkelä
              0 Vote for this issue
              6 Start watching this issue



                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.