-
Type: Improvement
-
Resolution: Unresolved
-
Priority: 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:
- Create a read transaction and sleep for N seconds and then read again and validate that it sees the same data.
- 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.