Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-7918

Allow setting the prepare timestamp smaller than or equal to the latest active read timestamp with roundup prepare config

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Critical - P2
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT10.0.1, 4.4.9, 5.0.3, 5.1.0-rc0
    • Component/s: None
    • Labels:
      None
    • Story Points:
      8
    • Sprint:
      Storage - Ra 2021-08-09, Storage - Ra 2021-08-23
    • Backport Requested:
      v5.0, v4.4

      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 use a read timestamp equal 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 exercises the following assertion: "prepare timestamp X must be greater than the latest active read timestamp Y".

      The simplest solution we can think of is to bypass this assertion. Daniel Gottlieb proposed a behavior change that would allow the configuration "roundup_timestamps=(prepared=true)" to bypass this assertion. We already set this flag when recovering prepared transactions on startup.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              chenhao.qu Chenhao Qu
              Reporter:
              louis.williams Louis Williams
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: