[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: SERVER-45980 Restrict scope of full loads to current operation in VersionManager::checkShardVersion()
Branch: master
https://github.com/mongodb/mongo/commit/552dd0f1ac0c9bf820de5b56a058fbe212221746

Generated at Thu Feb 08 05:10:12 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.