Feature Work
This will be in the format <ShardId, pair<atomic bool, ChunkVersion>>, where the bool indicates whether we’ve received StaleShardVersion (SSV) from this particular shard. When a router receives SSV for a shard, it will flip the atomic boolean to true. We don’t need to worry about setting false, because when the routing table needs to be updated, it gets created from scratch. We will keep the old ShardVersionMap for now — the new ShardVersionMap will be fully functional but we will not use it in connection with other pieces yet.
Testing Work
Create unit tests to verify that receiving SSV will appropriately modify the new ShardVersionMap
- depends on
-
SERVER-44587 Modify StaleConfigInfo to take in and store a shard's ID.
- Closed
- has to be done after
-
SERVER-44498 Create a flag on the OperationContext to indicate that an operation needs to block on a collection refresh.
- Closed
- has to be done before
-
SERVER-44501 Modify the RoutingTableHistory to check if a particular shard has been indicated to need a refresh.
- Closed