[SERVER-34314] Ensure change stream can resume between entries in applyOps entry Created: 04/Apr/18  Updated: 29/Oct/23  Resolved: 16/Apr/18

Status: Closed
Project: Core Server
Component/s: Aggregation Framework
Affects Version/s: None
Fix Version/s: 3.7.4

Type: Task Priority: Major - P3
Reporter: Charlie Swanson Assignee: Ian Boros
Resolution: Fixed Votes: 0
Labels: todo_in_code
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-33114 Unpack applyOps oplog entries in chan... Closed
depends on SERVER-34313 Change resume token format to be enco... Closed
Documented
is documented by DOCS-11760 Docs for SERVER-34314: Ensure change ... Closed
Problem/Incident
Backwards Compatibility: Fully Compatible
Sprint: Query 2018-04-23
Participants:
Linked BF Score: 0

 Description   

The current resume token format is not sufficient to impose a total ordering on all changes once we unpack operations from within an applyOps array into one change each. Changes within an applyOps can all have identical resume tokens if there are multiple updates to the same document.



 Comments   
Comment by Githook User [ 16/Apr/18 ]

Author:

{'name': 'Daniel Gottlieb', 'email': 'daniel.gottlieb@mongodb.com', 'username': 'dgottlieb'}

Message: SERVER-34314: Fix assertion codes.
Branch: master
https://github.com/mongodb/mongo/commit/5430880bfc101482718782b8146da30f73207b26

Comment by Githook User [ 16/Apr/18 ]

Author:

{'name': 'Ian Boros', 'email': 'ian.boros@10gen.com'}

Message: SERVER-34314 Ensure change stream can resume between entries in applyOps entry
Branch: master
https://github.com/mongodb/mongo/commit/9a27a0fd9668231601d4d6cdb324eece306b91d1

Comment by Charlie Swanson [ 16/Apr/18 ]

As discussed in an email chain, there needs to be some patch for this ticket before we branch for 3.7.4. We will attempt to fully resolve this ticket today, but if not we will pursue a more limited fix to allow 3.7.4->4.0.0 upgrade with resumable change streams, but generate an error if resuming a change stream with a resume token from an applyOps entry on 3.7.4, allowing all non-applyOps to continue.

Comment by Charlie Swanson [ 04/Apr/18 ]

cc david.storch and spencer, I wasn't exactly sure which epic to put this in and which fixVersion to assign, so I took my best guess.

We split this off as a separate work item from SERVER-33114, since the work for that is largely independent and we can better parallelize (pretend that's a word) work.

Generated at Thu Feb 08 04:36:15 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.