Skip to content

MDEV-40791 SET GLOBAL innodb_log_archive=OFF triggers full flush - #5576

Merged
dr-m merged 1 commit into
13.0from
MDEV-40791
Aug 20, 2026
Merged

MDEV-40791 SET GLOBAL innodb_log_archive=OFF triggers full flush#5576
dr-m merged 1 commit into
13.0from
MDEV-40791

Conversation

@dr-m

@dr-m dr-m commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

log_t::set_archive(): When a checkpoint needs to be forced, set a minimum target that guarantees progress, instead of flushing the entire buffer pool. Remove some duplicated reads of last_checkpoint_lsn.

When switching innodb_log_archive from OFF to ON, accurately remember whether any log records may have been written with get_sequence_bit() == 0, to ensure that a checkpoint will be waited for on a subsequent switch from ON to OFF.

log_t::set_recovered(): If innodb_log_archive=ON, only make a future set_archive(false) trigger a checkpoint if we may have recovered a server that was killed between set_archive(true) and write_checkpoint().

@dr-m
dr-m requested a review from Thirunarayanan August 20, 2026 09:28
@dr-m dr-m self-assigned this Aug 20, 2026
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@dr-m
dr-m marked this pull request as draft August 20, 2026 09:56
Comment thread storage/innobase/log/log0log.cc Outdated
log_t::set_archive(): When a checkpoint needs to be forced, set a
minimum target that guarantees progress, instead of flushing
the entire buffer pool. Remove some duplicated reads of
last_checkpoint_lsn.

When switching innodb_log_archive from OFF to ON,
accurately remember whether any log records may have been
written with get_sequence_bit() == 0, to ensure that a
checkpoint will be waited for on a subsequent switch
from ON to OFF.

log_t::set_recovered(): If innodb_log_archive=ON, only make a
future set_archive(false) trigger a checkpoint if we may have
recovered a server that was killed between set_archive(true)
and write_checkpoint().
@dr-m
dr-m marked this pull request as ready for review August 20, 2026 11:29
@dr-m
dr-m merged commit 68683b7 into 13.0 Aug 20, 2026
17 of 19 checks passed
@dr-m
dr-m deleted the MDEV-40791 branch August 20, 2026 14:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants