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

Make donor shard's secondary pre-emptively refresh filtering cache asynchronously

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Incomplete
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Sharding
    • Labels:
      None

      Description

      When secondaries perform refreshes today, it calls _flushRoutingTableCacheUpdates, waits for primary to refresh and the primary cache loader to write the new diffs to config.cache.chunks, wait for those writes to be replicated and then read the newly updated config.cache.chunks. However, this is not necessary in the donor shard since it already did the refresh as part of the migration.

      The proposal is:
      1. Update the config.cache.collection with the new shard version whenever donor shard successfully commits migration.
      2. Intercept the update in the secondary and trigger an async task to preemptively reload without calling _flushRoutingTableCacheUpdates.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              backlog-server-sharding Backlog - Sharding Team
              Reporter:
              renctan Randolph Tan
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: