Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-59076

Support setting a prepare timestamp at current read timestamp

    • Type: Icon: Improvement Improvement
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Engines

      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.

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            louis.williams@mongodb.com Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: