diff --git a/server/schedule/operator/kind.go b/server/schedule/operator/kind.go index 73927ced7cd..265eea5ade6 100644 --- a/server/schedule/operator/kind.go +++ b/server/schedule/operator/kind.go @@ -42,32 +42,36 @@ const ( OpRegion // Include leader transfer. OpLeader + // Include witness leader transfer. + OpWitnessLeader // Include witness transfer. OpWitness opMax ) var flagToName = map[OpKind]string{ - OpLeader: "leader", - OpRegion: "region", - OpSplit: "split", - OpAdmin: "admin", - OpHotRegion: "hot-region", - OpReplica: "replica", - OpMerge: "merge", - OpRange: "range", - OpWitness: "witness", + OpLeader: "leader", + OpRegion: "region", + OpSplit: "split", + OpAdmin: "admin", + OpHotRegion: "hot-region", + OpReplica: "replica", + OpMerge: "merge", + OpRange: "range", + OpWitness: "witness", + OpWitnessLeader: "witness-leader", } var nameToFlag = map[string]OpKind{ - "leader": OpLeader, - "region": OpRegion, - "split": OpSplit, - "admin": OpAdmin, - "hot-region": OpHotRegion, - "replica": OpReplica, - "merge": OpMerge, - "range": OpRange, + "leader": OpLeader, + "region": OpRegion, + "split": OpSplit, + "admin": OpAdmin, + "hot-region": OpHotRegion, + "replica": OpReplica, + "merge": OpMerge, + "range": OpRange, + "witness-leader": OpWitnessLeader, } func (k OpKind) String() string { diff --git a/server/schedulers/transfer_witness_leader.go b/server/schedulers/transfer_witness_leader.go index def426cfff3..b8895ae651d 100644 --- a/server/schedulers/transfer_witness_leader.go +++ b/server/schedulers/transfer_witness_leader.go @@ -33,7 +33,7 @@ const ( TransferWitnessLeaderType = "transfer-witness-leader" // TransferWitnessLeaderBatchSize is the number of operators to to transfer // leaders by one scheduling - transferWitnessLeaderBatchSize = 3 + transferWitnessLeaderBatchSize = 10 // TransferWitnessLeaderRecvMaxRegionSize is the max number of region can receive // TODO: make it a reasonable value transferWitnessLeaderRecvMaxRegionSize = 1000 @@ -80,12 +80,7 @@ func (s *trasferWitnessLeaderScheduler) GetType() string { } func (s *trasferWitnessLeaderScheduler) IsScheduleAllowed(cluster schedule.Cluster) bool { - // TODO: make sure the restriction is reasonable - allowed := s.OpController.OperatorCount(operator.OpLeader) < cluster.GetOpts().GetLeaderScheduleLimit() - if !allowed { - operator.OperatorLimitCounter.WithLabelValues(s.GetType(), operator.OpLeader.String()).Inc() - } - return allowed + return true } func (s *trasferWitnessLeaderScheduler) Schedule(cluster schedule.Cluster, dryRun bool) ([]*operator.Operator, []plan.Plan) { @@ -138,7 +133,7 @@ func (s *trasferWitnessLeaderScheduler) scheduleTransferWitnessLeader(name, typ for _, t := range targets { targetIDs = append(targetIDs, t.GetID()) } - return operator.CreateTransferLeaderOperator(typ, cluster, region, region.GetLeader().GetStoreId(), target.GetID(), targetIDs, operator.OpLeader) + return operator.CreateTransferLeaderOperator(typ, cluster, region, region.GetLeader().GetStoreId(), target.GetID(), targetIDs, operator.OpWitnessLeader) } // RecvRegionInfo receives a checked region from coordinator