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

Preparing a transaction with multiple commit timestamps throws them away

    • Storage - Ra 2022-03-07

      It seems that if you prepare a transaction that used multiple commit timestamps, all the updates are forced to the last-set commit timestamp at prepare or commit time (haven't checked which). This seems likely to result in missed conflicts or other consistency problems.

      Note that you have to set the prepare timestamp before you set any commit timestamps, but this can easily be done with timestamp_transaction().

      I have a test that exhibits the unwanted behavior which I'll attach. It's currently set up to expect the current behavior rather than the expected behavior, but this is easily changed in the obvious way.

      Note also that currently you can set the durable timestamp to anything after the last commit timestamp set; this is ok when that's the commit timestamp used, but problematic if other updates in the transaction have later timestamps. The test exercises this as well.

        1. test_prepare18.py
          6 kB
          David Holland

            Assignee:
            haribabu.kommi@mongodb.com Haribabu Kommi
            Reporter:
            dholland+wt@sauclovia.org David Holland
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: