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

Make OpObserver check the recordPreImages option when determining where to store the pre-image for retryable findAndModify executed in an internal transaction

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • Sharding NYC 2022-04-04

      SERVER-60540 made the OpObserver ignore the 'recordPreImages' (preImageRecordingEnabledForCollection) option when determining where to store the pre-image for an update or delete executed inside a retryable internal transaction. The rationale is that the 'recordPreImages' option is supported only on standalone replica sets and we planned to support internal transactions only on sharded clusters.

      Starting in SERVER-64605, we now also support internal transactions on standalone replica sets. So OpObserver must account for the 'recordPreImages' option when determining where to store the pre-image. As a safety check, it should assert the mongod is not running in a sharded cluster if the 'recordPreImages' option is enabled since chunk migration currently cannot handle oplog entries with both a pre-image and a post-image (see this comment in SERVER-61188 for more info).

            Assignee:
            cheahuychou.mao@mongodb.com Cheahuychou Mao
            Reporter:
            cheahuychou.mao@mongodb.com Cheahuychou Mao
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: