[SERVER-76288] While a split or merge is being committed change streams can return a hwm token that skips events on the recipient. Created: 19/Apr/23  Updated: 29/Oct/23  Resolved: 28/Apr/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 7.1.0-rc0

Type: Bug Priority: Major - P3
Reporter: Mickey Winters Assignee: Mickey Winters
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-76309 Re-enable support for high water mark... Open
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: QE 2023-05-15
Participants:

 Description   

after the donor has reached the block timestamp it won't allow any more writes so normal resume tokens from an an actual change event can't be higher than block timestamp, but it can still generate high water mark tokens above the block time stamp. if a write happens on the recipient after the commit it could be skipped if the hwmt is higher than the cluster time of that write on the recipient.

an easy solution is to disable this block https://github.com/mongodb/mongo/blob/983d4ca5e0c50d644c64be42bd59df481dee0a57/src/mongo/db/exec/collection_scan.cpp#L256-L260 to avoid returning tokens higher than the last write. This solution only works for replica sets and we will need to revisit this problem while working on sub-tenant splits and sharding support for serverless



 Comments   
Comment by Githook User [ 28/Apr/23 ]

Author:

{'name': 'Mickey. J Winters', 'email': 'mickey.winters@mongodb.com', 'username': 'mjrb'}

Message: SERVER-76288 disable high water mark tokens greater than the last operation for a tenant in serverless
Branch: master
https://github.com/mongodb/mongo/commit/49c7504d0f07819fcc7f94d522540290f2e83b26

Generated at Thu Feb 08 06:32:18 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.