Description:
For transactions whose binlog payload exceeds `binlog_cache_size`, MySQL today
spills the binlog cache to a temporary file on disk. At commit time, this
temporary file is read back into memory and written out into the active binary
log file. For large transactions (multi-GB DDL, large bulk loads,
INSERT ... SELECT, etc.) this means the same data is written to disk twice and
hold the LOCK_log mutex long time. It generates significant disk and
page-cache pressure and stalling all other writes for the duration of the copy.
This feature replaces that read-then-write cycle with a single rename. It
renames the binlog cache file of large transaction to a binlog file directly
. With this optimization, the commit of large transactions will be very fast, it
will not stall other writes.
It has been contributed to MariaDB. For detail please check: https://mariadb.com/resources/blog/binlog-commit-optimization-for-large-transaction/
How to repeat:
Not applicable to a Feature Request.