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

TransactionParticipant generates applyOps entry information for unprepared transactions rather than delegating to OpObserverImpl

    XMLWordPrintableJSON

Details

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 7.1.0-rc0
    • None
    • None
    • None
    • Fully Compatible
    • Execution NAMR Team 2023-07-10, Execution NAMR Team 2023-07-24

    Description

      OpObserverImpl::onUnpreparedTransactionCommit() currently [generates the applyOps oplog entry information||https://github.com/mongodb/mongo/blob/f9a49ec48ad035ca2f6701f5f458aef57dd70438/src/mongo/db/op_observer/op_observer_impl.cpp#L1760] internally for writing the unprepared applyOps entries to the oplog and pass to the change streams pre-image helper. We also reserve the oplog slots within this function.

      Doing both of these operations within the OpObserverImpl method makes it inconvenient for us to extract the change streams pre-image logic into a separate OpObserver implementation in SERVER-78310. We should consider generating the applyOps info at the callsite in TransactionParticipant and pass it into the OpObserver interface.

      Attachments

        Activity

          People

            benety.goh@mongodb.com Benety Goh
            benety.goh@mongodb.com Benety Goh
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: