Match PALM page validations

XMLWordPrintableJSON

    • Type: Story
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: PALite
    • None

      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.

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

              Created:
              Updated: