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.
- has to be done after
-
SERVER-44500 Create a new ShardVersionMap that includes references to specific shards.
- Closed