Match PALM page validations

XMLWordPrintableJSON

    • Type: Story
    • Resolution: Done
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: PALite
    • None
    • Storage Engines, Storage Engines - Foundations
    • SE Foundations - 2025-10-24
    • 5

      PALite page validation should match existing validations in PALM:

      • Handling abandoned checkpoints, e.g., after a crash, so that we can enable crash testing (see: WT-15041).
      • Verifying delta chains in plh_discard. This function calls palm_handle_verify_page, which gets the entire delta chain since the last full image, and checks:
        • Flags.
        • That the first page is a full page and the other pages are deltas.
        • If there is a tombstone, that it is the last page in the delta chain, and that there is no more than one tombstone.
        • That the base LSN of all deltas matches the LSN of the full page image.
        • That the backlink LSN points to the previous page in the chain, with special handling for tombstones, in which a tombstone is allowed to match any of the previous page in the chain.
      • Verifying delta chains in plh_get:
        • Validate that backlink LSN of a delta page points to the previous page in the chain.
        • Base LSN of a delta page points to the full page image.
        • There is no tombstone in the chain.
      • Validation in plh_put:
        • Validate that the base LSN and backlink LSN are set correctly, both for full page images and for deltas. This uses palm_handle_get_previous_lsns to determine what are the LSNs of the last full page image and the last page entry.
      • A PALite equivalent for tools/wt_palm_decode.py, so that we can inspect the contents of the database offline (e.g., when investigating data corruption).
      • Make sure that there is an extensive verbose logging mode that you can turn on to print the list of everything happening in PALI, including everything returned from plh_get.
        All these checks are based on the verify option, which defaults to true, but which we can turn off if need be for any long runs or performance runs.

        There are no Sub-Tasks for this issue.

            Assignee:
            Alex Blekhman
            Reporter:
            Alex Blekhman
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: