Skip reconciliation for pages already processed by eviction under the same checkpoint snapshot

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Checkpoints
    • Storage Engines - Persistence
    • 408.116
    • SE Persistence backlog
    • None

      When precise checkpoint is enabled and eviction uses the checkpoint snapshot as its visibility bound (see WT-17680), checkpoint can skip reconciling any page whose last reconciliation was performed by eviction under the same checkpoint snapshot and whose rec_pinned_stable_timestamp is consistent with that snapshot.

      Motivation

      Eviction and checkpoint both reconcile pages. When eviction has already reconciled a page using the same checkpoint snapshot, checkpoint would produce an identical on-disk result — the work is redundant. Detecting and skipping these pages reduces the total amount of reconciliation checkpoint must perform, lowering its I/O cost and wall-clock time, particularly under workloads with high eviction rates.

      Proposed Change

      Track whether a page was last reconciled by eviction under the active checkpoint snapshot (e.g. via a generation counter or snapshot ID stamped on the page after eviction reconciliation). During checkpoint's page walk, if a page carries that stamp and its rec_pinned_stable_timestamp matches the checkpoint's stable timestamp, checkpoint can mark the page clean and skip re-reconciling it.

      Acceptance Criteria

      • Checkpoint correctly skips pages reconciled by eviction under the matching snapshot without loss of durability.
      • No correctness regression: all data visible as of the checkpoint must be recoverable after restart.
      • Checkpoint I/O and duration decrease measurably under eviction-heavy workloads with precise checkpoint enabled.

            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: