-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Cache and Eviction
-
Storage Engines - Transactions
-
409.245
-
SE Transactions - 2026-06-19
-
3
When precise checkpoint is enabled, eviction currently uses the oldest transaction ID as its visibility boundary. This is unnecessarily conservative — the checkpoint snapshot represents a more recent, still-consistent bound that eviction can safely use instead.
Motivation
Precise checkpoint maintains a stable snapshot of the database state at checkpoint time. When this snapshot is available, eviction can use it as its visibility horizon rather than falling back to the oldest ID. This allows eviction to consider more pages as cleanly evictable, helping it make more progress and reducing cache pressure.
Proposed Change
When precise checkpoint is active, pass the checkpoint snapshot to the eviction visibility logic instead of the oldest ID. Eviction should then be able to evict pages that are visible as of the checkpoint snapshot, even if they are not yet visible to the oldest reader.
Acceptance Criteria
- When precise checkpoint is enabled, eviction uses the checkpoint snapshot as its visibility bound.
- No regression in correctness: evicted pages must still be recoverable from the checkpoint.
- Eviction throughput improves or is neutral compared to the oldest-ID baseline under checkpoint-heavy workloads.
- is depended on by
-
WT-17681 Skip reconciliation for pages already processed by eviction under the same checkpoint snapshot
-
- Blocked
-