Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-9443

Implement a basic repeatable reads checker in the CppSuite

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • 5
    • StorEng - Defined Pipeline

      Summary

      Similar to what exists in test format we should implement a basic repeatable reads checker in the test suite.

      Motivation
      This should increase the testing coverage by providing snapshot isolation validation.

      Suggested Solution

      The CppSuite is flexible so hard to say what the best way of implementing this is however one way would be to implement a new repeatable_read_operation in the standard operation class this operation could:

      1. Create a read transaction and sleep for N seconds and then read again and validate that it sees the same data.
      2. Create a read timestamp transaction and rollback and restart that transaction at a later time.

      In the timestamp case there will be some difficulty around guaranteeing that the timestamp still exists, i.e. that it is newer than the oldest. Additionally logic may need to be added to avoid forcing the rollback of commit transactions as was seen in: WT-9400.

      If it is too much work to do both snapshot and timestamp verification in one ticket we could split them into separate tickets.

      Acceptance Criteria (Definition of Done)

      • Design and implement a repeateable reads operation or component.
      • Update the basic tests to use it in some way, for more complex tests it should be left to the original authors to decide if they want to add it to their testing.

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            luke.pearson@mongodb.com Luke Pearson
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: