Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
Description
Currently, if the parameters of the redo log change, InnoDB in the MariaDB Community Server will rebuild the redo log at server startup.
MariaDB Enterprise Server 10.5 and 10.6 allow dynamic tuning of the redo log parameters, rebuilding the redo log in a crash-safe manner without restarting the server.
SET GLOBAL innodb_log_file_size=…; |
Before MDEV-14425 changed the redo log file format in 10.8, we were be unable to enable or disable innodb_encrypt_log without server restart, because starting with MDEV-12041 in MariaDB 10.4, the encrypted redo log blocks will have 4 bytes less payload per 512-byte log block.
Log resizing is tied to checkpoints. We can start writing a second redo log ib_logfile101 with the requested new size, starting from something close to the last written log sequence number. On log checkpoint completion, we can switch files, provided that the checkpoint LSN was not earlier than the start LSN of the resized log file. When resizing to a small log file during a heavy write workload, multiple checkpoints may be necessary.
While technically it would be possible to rebuild the log for changing innodb_encrypt_log, this task does not implement it, because it would require a non-trivial transformation between the log record streams that are being written to the current log file (ib_logfile0) and the future log file (ib_logfile101 that will replace ib_logfile0).
Rebuilding the log file will obviously cause disruption to mariadb-backup --backup, because the old log file will stop receiving writes once the server has switched to another log file. This could be addressed in MDEV-14992 by letting the server provide a log record stream directly.
Attachments
Issue Links
- causes
-
MDEV-31311 The test innodb.log_file_size_online occasionally hangs
- Closed
-
MDEV-33361 Excessive delays in SET GLOBAL innodb_log_file_size
- Closed
-
MDEV-34446 SIGSEGV on SET GLOBAL innodb_log_file_size with memory-mapped log file
- Closed
-
MDEV-34909 DDL during SET GLOBAL innodb_log_file_size may hang when using PMEM
- Closed
- is part of
-
MDEV-28112 prepare 10.9.0 preview releases
- Closed
- relates to
-
MDEV-21870 Deprecate and ignore innodb_scrub_log and innodb_scrub_log_speed
- Closed
-
MDEV-34875 provide mechanism to monitor the status of dynamic redo log resize operation
- Open
-
MDEV-14425 Change the InnoDB redo log format to reduce write amplification
- Closed
-
MDEV-14992 BACKUP: in-server backup
- Open
-
MDEV-27199 Require ib_logfile0 to exist unless innodb_force_recovery=6
- Closed
-
MDEV-27772 Performance regression with default configuration in 10.6
- Open
- mentioned in
-
Page Loading...