Skip to content

Commit

Permalink
schedulers: split transfer-witness-leader's limit from balance-leader (
Browse files Browse the repository at this point in the history
…#5873)

ref #5638

schedulers: split transfer-witness-leader's limit from balance-leader

Signed-off-by: Wenbo Zhang <ethercflow@gmail.com>
  • Loading branch information
ethercflow authored Jan 19, 2023
1 parent 082fc6a commit 7ca1b9a
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 25 deletions.
38 changes: 21 additions & 17 deletions server/schedule/operator/kind.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
11 changes: 3 additions & 8 deletions server/schedulers/transfer_witness_leader.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 7ca1b9a

Please sign in to comment.