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

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Critical - P2
    • Resolution: Fixed
    • None
    • WT10.0.1, 4.4.9, 5.0.3, 5.1.0-rc0
    • None
    • None
    • 8
    • Storage - Ra 2021-08-09, Storage - Ra 2021-08-23
    • 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

              chenhao.qu@mongodb.com Chenhao Qu
              louis.williams@mongodb.com Louis Williams
              Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: