Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-45980

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

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 4.3.4
    • None
    • Sharding
    • None
    • Fully Compatible
    • ALL
    • Sharding 2020-02-10

    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.

      Attachments

        Activity

          People

            blake.oler@mongodb.com Blake Oler
            blake.oler@mongodb.com Blake Oler
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: