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

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 6.0.0-rc0
    • None
    • None
    • None
    • Fully Compatible
    • Sharding NYC 2022-04-04

    Description

      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).

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: