ExportXMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Engines - Transactions
    • 120.177
    • SE Transactions - 2026-10-23
    • 3

      Issue Summary

      Update time aggregate verification so a partially deleted or mixed child is not rejected solely because its stop-durable timestamp exceeds the parent's page-stop aggregate. This is needed for WT-13076 downgrade compatibility while preserving checkpoint cleanup's ability to distinguish internal pages with fully deleted descendants.

      Context

      • WT-13076 changes the aggregate semantics: newest_page_stop_durable_ts tracks fully deleted pages, while newest_durable_ts covers all modifications.
      • Older verification requires a child's newest_stop_durable_ts to be no greater than the parent's newest_stop_durable_ts. That comparison can fail when the child contains partial deletes but the parent has no fully deleted child.
      • The child stop value remains bounded by the parent's overall durable aggregate; the strict stop-to-stop comparison is meaningful when the child is fully deleted.
      • Keep this as a validation change: do not repurpose reserved cell bits, add a secondary flags byte, or introduce a new on-disk format version.
      • Related: WT-13076.

      Proposed Solution

      • On develop, adjust time aggregate parent/child validation to compare the child's stop aggregate against the parent's stop aggregate when the child is fully deleted.
      • For children that are not fully deleted, avoid rejecting them based only on the parent stop aggregate; retain a check against the parent's overall durable bound.
      • Use the aggregate's full-deletion invariant for this decision. Do not use WT_TIME_AGGREGATE_HAS_STOP, which indicates that some content has a stop, not that the entire child is deleted.
      • Add regression coverage for a partially deleted child, a fully deleted child, and mixed siblings where a fully deleted child has an older timestamp than a live child.
      • After the develop change is reviewed and landed, backport the corresponding validation change and tests to mongodb-9.0 so its verifier accepts files produced by WT-13076.

      Acceptance Criteria

      • Mixed or partially deleted children do not fail verification solely because their stop durable value exceeds the parent's page-stop value.
      • Fully deleted children remain checked against the parent's stop aggregate.
      • The relaxed case remains bounded by the parent's overall durable aggregate.
      • Existing timestamp, transaction, and prepared-state validation remains intact.
      • No on-disk encoding, descriptor bits, flags bytes, or B-tree format version are changed.
      • Upgrade/downgrade tests verify mongodb-9.0 can verify, read, modify, checkpoint, and finally verify the mixed-deletion data after the backport.

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

              Created:
              Updated: