[SERVER-45980] Reduce scope of full reloads in VersionManager::checkShardVersion to the current operation Created: 05/Feb/20 Updated: 29/Oct/23 Resolved: 06/Feb/20 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | 4.3.4 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Blake Oler | Assignee: | Blake Oler |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Operating System: | ALL |
| Sprint: | Sharding 2020-02-10 |
| Participants: |
| Description |
|
In checkShardVersion, we invalidate the entire collection's targeting info if the call is authoritative. This isn't necessary – tracing back across renames, it turns out the original intent of this line is simply to refresh and retrieve the catalog cache info. If we replace this call with a call to getCollectionRoutingInfoWithRefresh, we will still get the refreshed information. As-is, this line causes all authoritative calls to checkShardVersion to stall writes to the namespace on the refresh, effectively making the per-shard invalidation efforts in PM-1633 redundant. Another call to the same function down below can be replaced with getCollectionRoutingInfoWithRefresh as well. |
| Comments |
| Comment by Githook User [ 06/Feb/20 ] |
|
Author: {'name': 'Blake Oler', 'username': 'BlakeIsBlake', 'email': 'blake.oler@mongodb.com'}Message: |