-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Storage 2017-10-23, Storage 2017-11-13, Storage 2017-12-04, Storage 2017-12-18, Storage 2018-01-01, Storage 2018-01-15
daniel.gottlieb asked me a question I couldn't fully answer yesterday and we need to both fully test and understand what WiredTiger does and should do in this case. Consider successive transactions that operate on the same key/value data. What happens if txn1 commit updates the data D using timestamp T and then txn2 commit updates the data D+1 with no timestamp?
- What happens to D+1 data on rollback to timestamp to, say, T-1?
- What happens if a checkpoint occurs immediately after txn2 commits? Does D+1 end up on disk?
- If D+1 depends on D, is it user error to mix timestamp usage?
- How does anything change if the timestamp usage is on a table that is logged versus not-logged?
We need to figure out what the behavior should be and write a test or two to verify we're doing the right thing.