[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: |
|
||||
| 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: |