-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
Sharding 2021-03-22
-
2
This involves doing the following:
- Generalizing the PrimaryOnlyServiceTest fixture from primary_only_service_test.cpp.
- Moving DonorStateMachine methods which access Grid and CatalogCacheLoader behind a DonorStateMachineExternalState interface.
- Adding a recipientShardIds field to TypeCollectionDonorFields.
- Coordinator's transition to kInitializing would do insert to config.reshardingOperations and update to config.collections entry for original namespace to set allowMigrations=false and reshardingFields.uuid and reshardingFields.state. It wouldn't fill in the reshardingFields.donorFields for the original namespace yet.
- Coordinator's transition to kPreparingToDonate would do update to config.reshardingOperations, insert to config.collections, config.chunks, and config.tags for temporary resharding namespace, and update to config.collections entry for original namespace to set reshardingFields.donorFields.
- Updating verifyValidReshardingFields() to (1) correct the xor logic and (2) special case kInitializing to say there should be neither donorFields nor recipientFields.
- related to
-
SERVER-55288 Improve ability to test resharding's RecipientStateMachine from C++
- Closed
-
SERVER-55682 Improve ability to test ReshardingCoordinator from C++
- Closed