From ecb7e49d4b12f7df11bb00ad35679503221060af Mon Sep 17 00:00:00 2001 From: HunDunDM Date: Wed, 26 Oct 2022 14:56:22 +0800 Subject: [PATCH] address comment Signed-off-by: HunDunDM --- server/api/trend_test.go | 4 +-- server/core/region_option.go | 39 ++------------------- server/schedule/operator_controller_test.go | 2 +- tools/pd-simulator/simulator/task.go | 8 ++--- 4 files changed, 8 insertions(+), 45 deletions(-) diff --git a/server/api/trend_test.go b/server/api/trend_test.go index cdf27206e8a..cf74a187f87 100644 --- a/server/api/trend_test.go +++ b/server/api/trend_test.go @@ -62,7 +62,7 @@ func TestTrend(t *testing.T) { newPeerID := op.Step(0).(operator.AddLearner).PeerID region5 = region5.Clone(core.WithAddPeer(&metapb.Peer{Id: newPeerID, StoreId: 3, Role: metapb.PeerRole_Learner}), core.WithIncConfVer()) mustRegionHeartbeat(re, svr, region5) - region5 = region5.Clone(core.WithPromoteLearner(newPeerID), core.WithRemoveStorePeer(2), core.WithIncConfVer()) + region5 = region5.Clone(core.WithRole(newPeerID, metapb.PeerRole_Voter), core.WithRemoveStorePeer(2), core.WithIncConfVer()) mustRegionHeartbeat(re, svr, region5) op, err = svr.GetHandler().GetOperator(6) @@ -71,7 +71,7 @@ func TestTrend(t *testing.T) { newPeerID = op.Step(0).(operator.AddLearner).PeerID region6 = region6.Clone(core.WithAddPeer(&metapb.Peer{Id: newPeerID, StoreId: 3, Role: metapb.PeerRole_Learner}), core.WithIncConfVer()) mustRegionHeartbeat(re, svr, region6) - region6 = region6.Clone(core.WithPromoteLearner(newPeerID), core.WithLeader(region6.GetStorePeer(2)), core.WithRemoveStorePeer(1), core.WithIncConfVer()) + region6 = region6.Clone(core.WithRole(newPeerID, metapb.PeerRole_Voter), core.WithLeader(region6.GetStorePeer(2)), core.WithRemoveStorePeer(1), core.WithIncConfVer()) mustRegionHeartbeat(re, svr, region6) var trend Trend diff --git a/server/core/region_option.go b/server/core/region_option.go index 687026d2e30..64e329fd3b3 100644 --- a/server/core/region_option.go +++ b/server/core/region_option.go @@ -325,45 +325,12 @@ func WithAddPeer(peer *metapb.Peer) RegionCreateOption { } } -// WithPromoteLearner promotes the learner. -func WithPromoteLearner(peerID uint64) RegionCreateOption { +// WithRole changes the role. +func WithRole(peerID uint64, role metapb.PeerRole) RegionCreateOption { return func(region *RegionInfo) { for _, p := range region.GetPeers() { if p.GetId() == peerID { - p.Role = metapb.PeerRole_Voter - } - } - } -} - -// WithPromoteLearnerEnter promotes the learner to the joint enter stage. -func WithPromoteLearnerEnter(peerID uint64) RegionCreateOption { - return func(region *RegionInfo) { - for _, p := range region.GetPeers() { - if p.GetId() == peerID { - p.Role = metapb.PeerRole_IncomingVoter - } - } - } -} - -// WithDemoteVoter demotes the voter. -func WithDemoteVoter(peerID uint64) RegionCreateOption { - return func(region *RegionInfo) { - for _, p := range region.GetPeers() { - if p.GetId() == peerID { - p.Role = metapb.PeerRole_Learner - } - } - } -} - -// WithDemoteVoterEnter demotes the voter to the joint enter stage. -func WithDemoteVoterEnter(peerID uint64) RegionCreateOption { - return func(region *RegionInfo) { - for _, p := range region.GetPeers() { - if p.GetId() == peerID { - p.Role = metapb.PeerRole_DemotingVoter + p.Role = role } } } diff --git a/server/schedule/operator_controller_test.go b/server/schedule/operator_controller_test.go index e3b3610af72..7ab638e3e06 100644 --- a/server/schedule/operator_controller_test.go +++ b/server/schedule/operator_controller_test.go @@ -638,7 +638,7 @@ func (suite *operatorControllerTestSuite) TestDispatchUnfinishedStep() { suite.Equal(2, stream.MsgLength()) region4 := region3.Clone( - core.WithPromoteLearner(3), + core.WithRole(3, metapb.PeerRole_Voter), core.WithIncConfVer(), ) suite.True(steps[1].IsFinish(region4)) diff --git a/tools/pd-simulator/simulator/task.go b/tools/pd-simulator/simulator/task.go index 29451821cb4..3ad9c0af600 100644 --- a/tools/pd-simulator/simulator/task.go +++ b/tools/pd-simulator/simulator/task.go @@ -1,4 +1,4 @@ -// Copyright 2022 TiKV Project Authors. +// Copyright 2017 TiKV Project Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -295,21 +295,17 @@ func checkAndCreateChangePeerOption(engine *RaftEngine, region *core.RegionInfo, return nil } // create option - opts := []core.RegionCreateOption{core.WithIncConfVer()} switch to { case metapb.PeerRole_Voter: // Learner/IncomingVoter -> Voter engine.schedulerStats.taskStats.incPromoteLearner(region.GetID()) - return append(opts, core.WithPromoteLearner(peer.GetId())) case metapb.PeerRole_Learner: // Voter/DemotingVoter -> Learner engine.schedulerStats.taskStats.incDemoteVoter(region.GetID()) - return append(opts, core.WithDemoteVoter(peer.GetId())) case metapb.PeerRole_IncomingVoter: // Learner -> IncomingVoter, only in joint state - return append(opts, core.WithPromoteLearnerEnter(peer.GetId())) case metapb.PeerRole_DemotingVoter: // Voter -> DemotingVoter, only in joint state - return append(opts, core.WithDemoteVoterEnter(peer.GetId())) default: return nil } + return []core.RegionCreateOption{core.WithRole(peer.GetId(), to), core.WithIncConfVer()} } type promoteLearner struct {