ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Duplicate
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Checkpoint Cleanup
    • None
    • Storage Engines - Persistence
    • 255.37
    • None
    • None

      Problem

      Large, globally obsolete values can remain in leaf images alongside small live values. Checkpoint cleanup cannot discard these mixed pages, and advancing visibility does not dirty them. Their obsolete payload can therefore persist until an application update triggers reconciliation, keeping large blocks allocated unnecessarily.

      Options to explore

      • Page layout: When a large inline value takes a page beyond leaf_page_max, should small values share that page? Explore separating large values so small survivors cannot keep their obsolete payload allocated. Assess the effects on page count, space utilization and read/write performance.
      • Forced reconciliation: Should users have a way to force reconciliation of clean pages without changing records? Consider the operation's scope, operational cost and usefulness for reclaiming existing retained payload.
      • Checkpoint cleanup: Can cleanup identify and reclaim obsolete payload within mixed pages with acceptable performance overhead? Consider candidate discovery, cold pages, and limits on inspection and rewrite work.

      Expected outcome

      Compare these options using the mixed-page reproducer (test_cc07.py) and representative workloads. Distinguish approaches that prevent future retention from those that reclaim existing retained payload.

      Recommend an approach or combination based on space reclamation, read I/O, write amplification, cache pressure and foreground latency. Identify visibility and concurrency requirements, including pinned readers and prepared transactions. This ticket investigates the trade-offs rather than committing to an implementation.

      Related: WT-18679: obsolete-byte observability.

        1. test_cc07.py
          7 kB
          Sean Watt

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

              Created:
              Updated:
              Resolved: