summaryrefslogtreecommitdiff
path: root/man/mysql_config.1
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2022-06-14 17:46:47 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2022-06-14 17:46:47 +0300
commit4c0cd953abffea841271f3a5cce1712d5e6c5633 (patch)
treec7e3267c9fb6d40dd1d93502e6d19e92f2f14605 /man/mysql_config.1
parent813986a6473b23485654d50d3593f1c9aa3658d8 (diff)
downloadmariadb-git-4c0cd953abffea841271f3a5cce1712d5e6c5633.tar.gz
MDEV-28766: SET GLOBAL innodb_log_file_buffering
In commit c4c88307091cb16886562e9e7b77f5fd077d34b5 (MDEV-28111) we disabled the file system cache on the InnoDB write-ahead log file (ib_logfile0) by default on Linux. It turns out that especially with innodb_flush_trx_log_at_commit=2, writing to the log via the file system cache typically improves throughput, especially on slow storage or at a small number of concurrent transactions. For other values of innodb_flush_log_at_trx_commit, direct writes were observed to be mostly but not always faster. Whether it pays off to disable the file system cache on the log may depend on the type of storage, the workload, and the operating system kernel version. On Linux and Microsoft Windows, we will introduce the settable Boolean global variable innodb_log_file_buffering that indicates whether the file system cache on the redo log file is enabled. The default value is innodb_log_file_buffering=OFF. If the server is started up with innodb_flush_log_at_trx_commit=2, the value will be changed to innodb_log_file_buffering=ON. When a persistent memory interface is being used for the log, the value cannot be changed from innodb_log_file_buffering=OFF. On Linux, when the physical block size cannot be determined to be a power of 2 between 64 and 4096 bytes, the file system cache cannot be disabled, and innodb_log_file_buffering=ON cannot be changed. Server log messages will indicate whether the file system cache is enabled for the redo log: [Note] InnoDB: Buffered log writes (block size=512 bytes) [Note] InnoDB: File system buffers for log disabled (block size=512 bytes) After this change, the startup parameter innodb_flush_method will no longer control whether O_DIRECT will be set on the redo log on Linux. On other operating systems that support O_DIRECT, no interface has been implemented for controlling the file system cache for the redo log. The innodb_flush_method values O_DIRECT, O_DIRECT_NO_FSYNC, O_DSYNC will enable O_DIRECT for data files, not the log. Tested by: Matthias Leich, Axel Schwenke
Diffstat (limited to 'man/mysql_config.1')
0 files changed, 0 insertions, 0 deletions