mirror of
https://github.com/MariaDB/server.git
synced 2026-03-18 06:18:41 +01:00
Concurrent calls to log_checkpoint_low() were possible from multiple
threads, and they could cause redundant writes of FILE_CHECKPOINT
records that refer to the same checkpoint. Let us simplify the logic
by making the dedicated buf_flush_page_cleaner() thread responsible
for checkpoints.
log_t::write_checkpoint(lsn_t end_lsn): Add the parameter checkpoint,
which will replace the data member log_sys.next_checkpoint_lsn.
log_sys.checkpoint_pending: Remove. Only the buf_flush_page_cleaner()
thread will write checkpoints or initiate page writes.
log_checkpoint_low(), log_checkpoint(): Remove the return value,
because there cannot be any concurrent log checkpoint in progress.
buf_flush_wait(): Add a parameter for waiting for a full checkpoint.
This function replaces buf_flush_wait_flushed().
log_t::checkpoint_margin(): Replaces log_checkpoint_margin().
lot_t::write_buf(): Remove a call set_check_for_checkpoint(false)
that commit
|
||
|---|---|---|
| .. | ||
| row0ext.cc | ||
| row0ftsort.cc | ||
| row0import.cc | ||
| row0ins.cc | ||
| row0log.cc | ||
| row0merge.cc | ||
| row0mysql.cc | ||
| row0purge.cc | ||
| row0quiesce.cc | ||
| row0row.cc | ||
| row0sel.cc | ||
| row0uins.cc | ||
| row0umod.cc | ||
| row0undo.cc | ||
| row0upd.cc | ||
| row0vers.cc | ||