Reduce scope of full reloads in VersionManager::checkShardVersion to the current operation

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 4.3.4
    • Affects Version/s: None
    • Component/s: Sharding
    • None
    • Fully Compatible
    • ALL
    • Sharding 2020-02-10
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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.

            Assignee:
            Blake Oler
            Reporter:
            Blake Oler
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: