[SERVER-67412] Remove support for parsing $v:1 oplog entries in change streams Created: 21/Jun/22 Updated: 29/Oct/23 Resolved: 04/Feb/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 6.3.0-rc0 |
| Type: | Task | Priority: | Minor - P4 |
| Reporter: | Mihai Andrei | Assignee: | Mohammad Dashti (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | query-director-triage, quick-tech-debt | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Assigned Teams: |
Query Execution
|
||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||
| Sprint: | QE 2023-02-06, QE 2023-02-20 | ||||||||
| Participants: | |||||||||
| Description |
|
Once |
| Comments |
| Comment by Githook User [ 04/Feb/23 ] |
|
Author: {'name': 'Mohammad Dashti', 'email': 'mdashti@gmail.com', 'username': 'mdashti'}Message: |
| Comment by David Storch [ 06/Jan/23 ] |
|
Dropping back in the triage queue per Bernard's latest comment above. |
| Comment by Bernard Gorman [ 22/Dec/22 ] |
|
arun.banala@mongodb.com: do you mean remove it for 7.0, since david.storch@mongodb.com seems to be talking about doing this ticket immediately? By the time we release 8.0 the 4.4 branch will be EOL anyway, so the question is somewhat moot. I think it's pretty safe to remove the code at this point; as Arun mentioned above, the only case where it could cause an issue would be if someone upgraded from 4.4 to 7.0 fast enough to leave v1 entries in the oplog, and then attempted to resume a change stream from a point in time where the node was still running 4.4. That seems extremely unlikely, but in the case where a user did find themselves in that position we'd have no way to remediate the issue except by telling them to open a new stream at a later clusterTime. kateryna.kamenieva@mongodb.com, what do you think? One thing we should definitely make sure to do whenever we remove this code, is to uassert that we're seeing a v2 entry in the change stream parser. In the edge case where change streams sees an unexpected or outdated oplog entry, our policy is that it will throw rather than risk crashing or producing undefined behaviour. |
| Comment by Arun Banala [ 21/Dec/22 ] |
|
If we remove this else if block we will remove support for changes parsing $v:1 updates. Looks like there is also some additional cleanup related $v:1 entries that Mihai mentioned above. kateryna.kamenieva@mongodb.com bernard.gorman@mongodb.com Do you think it's safe to remove change streams parsing $v:1 updates for 8.0? We have stopped logging $v:1 entries in 5.0. So we will have three releases that support reading the 4.4 $v:1 oplog entries(assuming users won't quickly upgrade from 4.4 -> 5.0 -> 6.0 -> 8.0 and open change streams on an earlier Timestamp). Or do you have to wait till 4.4 is EOL? |
| Comment by Mihai Andrei [ 16/Dec/22 ] |
|
I would be in favor of scheduling this, but I can't remember what work is actually involved here. One useful bit of information though, would be to delete the following $v: 1 handling code and see if it breaks anything |
| Comment by David Storch [ 16/Dec/22 ] |
|
Marking for re-triage. I'd be in favor of putting in the effort to strip out any old code related to $v:1 oplog entries. $v:1 has been superseded by $v:2 for some time. mihai.andrei@mongodb.com do you have an estimate for how hard this ticket is? If it's pretty straightforward, I say we just do it. |
| Comment by Ana Meza [ 05/Dec/22 ] |
|
Cancel |