[SERVER-85290] The catalog::forEachCollectionFromDb helper method should access collection metadata through a consistent readTimestamp Created: 17/Jan/24 Updated: 25/Jan/24 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | 7.0.0, 7.1.0, 7.3.0-rc0, 7.2.0 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Paolo Polato | Assignee: | Backlog - Catalog and Routing |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||
| Assigned Teams: |
Catalog and Routing
|
||||
| Operating System: | ALL | ||||
| Participants: | |||||
| Linked BF Score: | 144 | ||||
| Story Points: | 2 | ||||
| Description |
|
Today, the catalog::forEachCollectionFromDb() iterates through the database collections using the lookupNSSByUUID() primitive, which does not guarantee alignment between the in-memory catalog cache and the metadata persisted in WiredTiger if ReadConcernArgs is set on the opCtx. This would cause the following scenario to occur:
The usage of establishConsistentCollection/s() methods would on the other hand guarantee a more robust behaviour against concurrent creation of new database collections. |