[SERVER-40706] AutoGetCollectionForRead invariant should permit kNoOverlap read source Created: 18/Apr/19  Updated: 29/Oct/23  Resolved: 23/Apr/19

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 4.1.11

Type: Bug Priority: Major - P3
Reporter: William Schultz (Inactive) Assignee: William Schultz (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Repl 2019-04-22, Repl 2019-05-06
Participants:
Linked BF Score: 53

 Description   

The AutoGetCollectionForRead constructor has an invariant ensuring that either we are reading from the lastApplied timestamp or we have a kMajorityCommitted read source. This invariant can only be reached if there are conflicting catalog changes on the collection that is being read from. Speculative majority change stream reads utilize the kNoOverlap read source, so they will not choose to explicitly read from the lastApplied timestamp, since the no-overlap read source already handles the selection of a proper read timestamp. If there are conflicting catalog changes, though, they will violate the invariant since they are not using a kMajorityCommitted read source. We should extend the invariant to permit the kNoOverlap read source.



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

Author:

{'email': 'william.schultz@mongodb.com', 'name': 'William Schultz', 'username': 'will62794'}

Message: SERVER-40706 AutoGetCollectionForRead invariant should permit kNoOverlap read source when there are conflicting catalog changes
Branch: master
https://github.com/mongodb/mongo/commit/75aac812bfce0419d68c65d48233f94c06aaeafd

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