• Type: Investigation
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Tools and Replicator
    • 0

      Original Downstream Change Summary

      This change writes an additional field allowEndOfTransaction into the final applyOps oplog entry of a replica set transaction.
      The field is defined as an optional boolean.
      It will be set to true if the feature flag featureFlagChangeStreamEndOfTransactionEventSynthesis is enabled and the server parameter allowEndOfTransaction is set.
      In all other cases, the field will not be set (i.e. it will be missing from the applyOps oplog entry).
      The new field will be used later by change streams to generate a final endOfTransaction change event for SPM-4826.

      The applyOps oplog entry IDL struct is strict:false, so older versions (e.g. 9.0 should still be able to read the applyOps entry and simply ignore the field they do not know about.

      Description of Linked Ticket

      This change writes an allowEndOfTransaction flag into the final applyOps oplog entry of replica set transactions if the server parameter allowEndOfTransactions is enabled.

      This allows change streams to unambiguously determine the final applyOps entry in a non-sharded transaction and if the parameter was enabled at commit time.

      Sharded transaction oplog augmentation will follow in a separate commit.

      This work is part of SPM-4826.

            Assignee:
            Unassigned
            Reporter:
            Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: