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

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Critical - P2 Critical - P2
    • WT10.0.1, 4.4.9, 5.0.3, 5.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Storage Engines
    • 8
    • Storage - Ra 2021-08-09, Storage - Ra 2021-08-23
    • v5.0, v4.4

      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.

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