Use checkpoint snapshot for eviction when precise checkpoint is enabled

XMLWordPrintableJSON

    • 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.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Chenhao Qu
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: