ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Engines - Persistence
    • 255.979
    • None
    • None

      Problem

      Globally obsolete values can remain in allocated leaf images after checkpoint cleanup. Cleanup uses page-level time aggregates to identify wholly obsolete pages; pages containing non-obsolete records remain. Advancing visibility does not dirty these pages, so their obsolete values can persist until another reconciliation.

      Existing statistics do not reveal how much obsolete payload remains inside these allocated pages.

      Proposed change

      Add observability through the live B-tree statistics walk, without changing cleanup behavior. Report:

      • Globally obsolete inline value bytes.
      • The subset on pages containing non-obsolete records.
      • Affected pages, analysed pages and skipped pages.
      • Analysed image bytes, providing a matching denominator for byte proportions.

      Start with current persisted row-store leaf images. Count payload before block compression, excluding cell headers; this does not predict physical space reclamation. Use global visibility rules, including pinned readers and prepared transactions.

      Conservatively skip stale images, dictionary-copy pages, overflow-value pages and checkpoint handles. Report these diagnostic exclusions separately from pages retained by cleanup. Reuse the existing walk without forcing reconciliation.

      Acceptance criteria

      • Exact-byte tests cover mixed pages, empty survivors and visibility constraints.
      • A mixed-page test shows obsolete bytes remaining after visibility advances and checkpoint cleanup runs, then disappearing after reconciliation and image refresh remove them.
      • Repeated walks refresh gauges; fast statistics do not trigger collection.
      • Verify skipped-page coverage and measure incremental walk cost.

      Related: WT-18680, WT-18681.

            Assignee:
            Sean Watt
            Reporter:
            Sean Watt
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: