-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: Checkpoints
-
None
-
Storage Engines - Persistence
-
646.969
-
None
-
None
Context
Before entering the critical section, checkpoint optionally waits in checkpoint wait reduce dirty cache (src/checkpoint/checkpoint_txn.c) while eviction reduces cache dirty toward eviction checkpoint target. That loop currently has no WT VERB CHECKPOINT PROGRESS output.
Prepare and write-phase progress messages exist elsewhere, but scrub wait is silent. Reusing the write-phase helper would be misleading because write/walk/file counters are still near zero:
Checkpoint has been running for N seconds, wrote X pages (Y MB), walked Z pages and checkpointed F files
Motivation
A long scrub wait looks like a hang or a quiet write phase. Engineers diagnosing slow checkpoints need a heartbeat that identifies scrub state and whether dirty is moving toward the target.
Suggestions
- From the scrub wait loop (after each sleep), emit a scrub-specific progress message gated on WT PROGRESS MSG PERIOD.
- Add a dedicated helper (e.g. checkpoint scrub progress); do not reuse the write-phase checkpoint progress text.
- Include elapsed time, current dirty %, scrub target %, and bytes written while waiting. Suggested form:
Checkpoint scrub has been running for N seconds, cache dirty X% (target Y%), wrote Z MB while waiting
- Keep this separate from prepare and write-phase messages so the phase is obvious in the log.
Examples
Desired:
[WT_VERB_CHECKPOINT_PROGRESS]: Checkpoint scrub has been running for 40 seconds, cache dirty 28% (target 5%), wrote 120 MB while waiting