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

Enforce prepare conflicts on secondaries

    XMLWordPrintable

    Details

    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Sprint:
      Execution Team 2019-06-03

      Description

      Once SERVER-39074 is complete, all operations default to enforcing prepare conflicts. Unfortunately, due to the problem described in SERVER-40176, this means that occasionally, prepare conflicts can be encountered when otherwise valid cursor seeks are adjacent to prepared records.

      This is only problematic for "applyOps" entries because inserts ops are converted to upserts. This means a query on a nonexistent record, which uses search_near, can land on an adjacent record that is part of a prepared transaction, introducing a prepare conflict that would not have happened on a primary.

      Transaction use "applyOps", but all inserts as part of transactions should be able to be applied as inserts instead of upserts. This also means prepare conflicts can be enforced during secondary batch application.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              louis.williams Louis Williams
              Reporter:
              louis.williams Louis Williams
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: