We recently added new begin and end timestamp fields to the cells for pages (optionally). We need to review the timestamps that are being saved, and ensure the correct timestamp is being chosen in all cases.
Timestamps can come from two different places:
- Copied from a previous disk image cell
- Set by an update in memory
The start timestamp corresponds to the timestamp when the version of the value was created, or WT_TS_NONE if the value precedes all possible readers. A stop timestamp of WT_TS_MAX means all readers can see that version.
The stop timestamp isĀ WT_TS_MAX until a new version is added, then the end timestamp becomes the start timestamp for the newer version of the value.