[SERVER-59076] Support setting a prepare timestamp at current read timestamp Created: 03/Aug/21  Updated: 06/Dec/22  Resolved: 03/Aug/21

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Louis Williams Assignee: Backlog - Storage Engines Team
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates WT-7918 Allow setting the prepare timestamp s... Closed
Assigned Teams:
Storage Engines
Participants:

 Description   

There is a bug in MongoDB with reconstructing prepared transactions at startup (see SERVER-58409 for details). We discovered that the simplest solution would be to have MongoDB set the read timestamp to the prepare timestamp on startup to ensure that the first write into the RecordStore does not re-use a RecordId for a deleted record.

The proposed MongoDB change, however, exercises the following assertion: "prepare timestamp X must be greater than the latest active read timestamp Y".

We would like some API to bypass this assertion. daniel.gottlieb proposed an API change that would allow the configuration "roundup_timestamps=(prepared=true)" to bypass this assertion. We set this flag already when we recover prepared transactions on startup.



 Comments   
Comment by Louis Williams [ 03/Aug/21 ]

I accidentally opened this on the SERVER project and duplicated the same issue in WT-7918.

Generated at Thu Feb 08 05:46:17 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.