@@ -1100,121 +1100,3 @@ func (suite *serverTestSuite) checkConcurrentAllocatedID(re *require.Assertions,
11001100 })
11011101 re .Equal (4000 , len )
11021102}
1103-
1104- func (suite * serverTestSuite ) TestForwardSplitRegion () {
1105- re := suite .Require ()
1106- tc , err := tests .NewTestSchedulingCluster (suite .ctx , 1 , suite .cluster )
1107- re .NoError (err )
1108- defer tc .Destroy ()
1109- tc .WaitForPrimaryServing (re )
1110-
1111- s := & server.GrpcServer {Server : suite .pdLeader .GetServer ()}
1112-
1113- // Create stores
1114- for i := uint64 (1 ); i <= 3 ; i ++ {
1115- resp , err := s .PutStore (
1116- context .Background (), & pdpb.PutStoreRequest {
1117- Header : & pdpb.RequestHeader {ClusterId : suite .pdLeader .GetClusterID ()},
1118- Store : & metapb.Store {
1119- Id : i ,
1120- Address : fmt .Sprintf ("mock://tikv-%d:%d" , i , i ),
1121- State : metapb .StoreState_Up ,
1122- Version : "7.0.0" ,
1123- },
1124- },
1125- )
1126- re .NoError (err )
1127- re .Empty (resp .GetHeader ().GetError ())
1128- }
1129-
1130- // Create a region via region heartbeat
1131- grpcPDClient := testutil .MustNewGrpcClient (re , suite .pdLeader .GetServer ().GetAddr ())
1132- stream , err := grpcPDClient .RegionHeartbeat (suite .ctx )
1133- re .NoError (err )
1134-
1135- peers := []* metapb.Peer {
1136- {Id : 11 , StoreId : 1 },
1137- {Id : 22 , StoreId : 2 },
1138- {Id : 33 , StoreId : 3 },
1139- }
1140-
1141- regionReq := & pdpb.RegionHeartbeatRequest {
1142- Header : testutil .NewRequestHeader (suite .pdLeader .GetClusterID ()),
1143- Region : & metapb.Region {
1144- Id : 100 ,
1145- Peers : peers ,
1146- StartKey : []byte ("" ),
1147- EndKey : []byte ("" ),
1148- },
1149- Leader : peers [0 ],
1150- ApproximateSize : 100 * units .MiB ,
1151- ApproximateKeys : 1000 ,
1152- }
1153- err = stream .Send (regionReq )
1154- re .NoError (err )
1155-
1156- // Wait for the region to be created in scheduling cluster
1157- testutil .Eventually (re , func () bool {
1158- region := tc .GetPrimaryServer ().GetCluster ().GetRegion (100 )
1159- return region != nil && region .GetApproximateSize () == 100
1160- })
1161-
1162- // Test SplitRegions request
1163- splitReq := & pdpb.SplitRegionsRequest {
1164- Header : & pdpb.RequestHeader {ClusterId : suite .pdLeader .GetClusterID ()},
1165- SplitKeys : [][]byte {
1166- []byte ("m" ), // Split key in the middle
1167- },
1168- RetryLimit : 3 ,
1169- }
1170-
1171- go func () {
1172- // make sure the region heartbeat is sent after the SplitRegions request
1173- time .Sleep (time .Second )
1174-
1175- regionReq = & pdpb.RegionHeartbeatRequest {
1176- Header : testutil .NewRequestHeader (suite .pdLeader .GetClusterID ()),
1177- Region : & metapb.Region {
1178- Id : 100 ,
1179- Peers : peers ,
1180- RegionEpoch : & metapb.RegionEpoch {
1181- Version : 1 ,
1182- },
1183- StartKey : []byte ("" ),
1184- EndKey : []byte ("m" ),
1185- },
1186- Leader : peers [0 ],
1187- ApproximateSize : 100 * units .MiB ,
1188- ApproximateKeys : 1000 ,
1189- }
1190- err = stream .Send (regionReq )
1191- re .NoError (err )
1192- regionReq = & pdpb.RegionHeartbeatRequest {
1193- Header : testutil .NewRequestHeader (suite .pdLeader .GetClusterID ()),
1194- Region : & metapb.Region {
1195- Id : 101 ,
1196- Peers : peers ,
1197- RegionEpoch : & metapb.RegionEpoch {
1198- Version : 1 ,
1199- },
1200- StartKey : []byte ("m" ),
1201- EndKey : []byte ("" ),
1202- },
1203- Leader : peers [0 ],
1204- ApproximateSize : 100 * units .MiB ,
1205- ApproximateKeys : 1000 ,
1206- }
1207- err = stream .Send (regionReq )
1208- re .NoError (err )
1209- }()
1210-
1211- // Forward SplitRegions request through PD to scheduling service
1212- splitResp , err := grpcPDClient .SplitRegions (suite .ctx , splitReq )
1213- re .NoError (err )
1214- re .Empty (splitResp .GetHeader ().GetError ())
1215-
1216- // The response should contain the finished percentage
1217- re .Equal (uint64 (100 ), splitResp .GetFinishedPercentage ())
1218- // Should have regions IDs for the split operation
1219- re .Equal ([]uint64 {101 }, splitResp .GetRegionsId ())
1220- }
0 commit comments