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

Have no-op writes for recording pre/post image documents be a side transaction

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Storage
    • Storage Execution
    • Execution Team 2020-12-14, Execution Team 2020-12-28, Execution Team 2021-01-11, Execution Team 2021-03-22, Execution Team 2021-10-04, Execution Team 2021-10-18, Execution Team 2021-11-01, Sharding 2022-05-02

      There are some types of requests that in a single storage transaction write multiple oplog entries. Because each oplog entry sets a different WT timestamp, there's risk that any data writes correlate with the wrong oplog entry.

      There's a category of these cases where one of the oplog writes is a no-op write for recording pre/post images that get linked to a following oplog entry. Because the no-op entries themselves do not represent any data writes, it would be safer to write these no-oplog entries in their own storage transaction.

      E.g:

      Usages that will go away with SERVER-59443 and we can omit "fixing":

            Assignee:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            daniel.gottlieb@mongodb.com Daniel Gottlieb (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            14 Start watching this issue

              Created:
              Updated: