Modify the RoutingTableHistory to check if a particular shard has been indicated to need a refresh.

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 4.3.3
    • Affects Version/s: None
    • Component/s: Sharding
    • None
    • Fully Compatible
    • Sharding 2020-01-27
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Feature Work

      Change the OperationContext “needs refresh for this operation” flag to be false by default. When an operation attempts to get the shardVersion for a shard, it will check in the new ShardVersionMap if the boolean has been marked true, to indicate that this shard has received SSV. If this boolean is true, turn on the flag in the OperationContext and then throw an SSV exception here. This will cause the current operation to retry from the top of the router — the operation will then successfully block behind the CatalogCache refresh. The behavior outlined in the technical design should be satisfied at this point.

      Testing Work

      Create a targeted JS test to confirm that other shards can successfully run operations on a collection if only one shard has been marked as stale.

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

              Created:
              Updated:
              Resolved: