Run a background repeated-read snapshot verifier in all test/format configurations

XMLWordPrintableJSON

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

      WT-18204 added follower-side reader threads to test/format that hold a snapshot transaction open and verify repeated scans and point lookups return identical rows, catching snapshot-isolation violations across disaggregated checkpoint pickups.

      The verification only relies on snapshot isolation, nothing disaggregated-specific: any snapshot transaction must see stable keys and values for its whole lifetime. Generalize it into a background thread that runs in every test/format configuration (standalone, leader, follower), opening a snapshot transaction and re-reading the same rows for a few seconds before moving to a new position.

      Notes:

      • The worker threads' own repeatable-read checks (snap.c) cover reads within operational transactions; the background verifier adds long-lived read-only transactions that overlap checkpoints, eviction, compaction and (on followers) checkpoint pickups.
      • Reads without a read timestamp exercise the strictest form of the invariant; timestamped variants could be added for configurations without timestamps.
      • Suggested by Siddhartha Sankaran in the review of the WT-18204 stress test (PR #14320).

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

              Created:
              Updated: