From a8dea1a249d7b12be06bc054f0d4a690443dee47 Mon Sep 17 00:00:00 2001 From: buffer <1045931706@qq.com> Date: Wed, 26 Jul 2023 15:07:34 +0800 Subject: [PATCH] This is an automated cherry-pick of #6832 close tikv/pd#6833 Signed-off-by: ti-chi-bot --- server/cluster/cluster.go | 3 ++ server/cluster/store_limiter.go | 57 +++------------------------- server/cluster/store_limiter_test.go | 4 +- 3 files changed, 12 insertions(+), 52 deletions(-) diff --git a/server/cluster/cluster.go b/server/cluster/cluster.go index 9fa4591430e..a0bc1d88cf4 100644 --- a/server/cluster/cluster.go +++ b/server/cluster/cluster.go @@ -753,11 +753,14 @@ func (c *RaftCluster) HandleStoreHeartbeat(heartbeat *pdpb.StoreHeartbeatRequest reportInterval := stats.GetInterval() interval := reportInterval.GetEndTimestamp() - reportInterval.GetStartTimestamp() +<<<<<<< HEAD // c.limiter is nil before "start" is called if c.limiter != nil && c.opt.GetStoreLimitMode() == "auto" { c.limiter.Collect(newStore.GetStoreStats()) } +======= +>>>>>>> 2c030264a (cluster: remove store limit collect logic (#6832)) regions := make(map[uint64]*core.RegionInfo, len(stats.GetPeerStats())) for _, peerStat := range stats.GetPeerStats() { regionID := peerStat.GetRegionId() diff --git a/server/cluster/store_limiter.go b/server/cluster/store_limiter.go index b86acbeadd4..19a8416b7e7 100644 --- a/server/cluster/store_limiter.go +++ b/server/cluster/store_limiter.go @@ -15,12 +15,18 @@ package cluster import ( +<<<<<<< HEAD "github.com/pingcap/kvproto/pkg/pdpb" "github.com/pingcap/log" "github.com/tikv/pd/pkg/syncutil" "github.com/tikv/pd/server/config" "github.com/tikv/pd/server/core/storelimit" "go.uber.org/zap" +======= + "github.com/tikv/pd/pkg/core/storelimit" + "github.com/tikv/pd/pkg/utils/syncutil" + "github.com/tikv/pd/server/config" +>>>>>>> 2c030264a (cluster: remove store limit collect logic (#6832)) ) // StoreLimiter adjust the store limit dynamically @@ -47,57 +53,6 @@ func NewStoreLimiter(opt *config.PersistOptions) *StoreLimiter { } } -// Collect the store statistics and update the cluster state -func (s *StoreLimiter) Collect(stats *pdpb.StoreStats) { - s.m.Lock() - defer s.m.Unlock() - - log.Debug("collected statistics", zap.Reflect("stats", stats)) - s.state.Collect((*StatEntry)(stats)) - - state := s.state.State() - ratePeerAdd := s.calculateRate(storelimit.AddPeer, state) - ratePeerRemove := s.calculateRate(storelimit.RemovePeer, state) - - if ratePeerAdd > 0 || ratePeerRemove > 0 { - if ratePeerAdd > 0 { - s.opt.SetAllStoresLimit(storelimit.AddPeer, ratePeerAdd) - log.Info("change store region add limit for cluster", zap.Stringer("state", state), zap.Float64("rate", ratePeerAdd)) - } - if ratePeerRemove > 0 { - s.opt.SetAllStoresLimit(storelimit.RemovePeer, ratePeerRemove) - log.Info("change store region remove limit for cluster", zap.Stringer("state", state), zap.Float64("rate", ratePeerRemove)) - } - s.current = state - collectClusterStateCurrent(state) - } -} - -func collectClusterStateCurrent(state LoadState) { - for i := LoadStateNone; i <= LoadStateHigh; i++ { - if i == state { - clusterStateCurrent.WithLabelValues(state.String()).Set(1) - continue - } - clusterStateCurrent.WithLabelValues(i.String()).Set(0) - } -} - -func (s *StoreLimiter) calculateRate(limitType storelimit.Type, state LoadState) float64 { - rate := float64(0) - switch state { - case LoadStateIdle: - rate = float64(s.scene[limitType].Idle) - case LoadStateLow: - rate = float64(s.scene[limitType].Low) - case LoadStateNormal: - rate = float64(s.scene[limitType].Normal) - case LoadStateHigh: - rate = float64(s.scene[limitType].High) - } - return rate -} - // ReplaceStoreLimitScene replaces the store limit values for different scenes func (s *StoreLimiter) ReplaceStoreLimitScene(scene *storelimit.Scene, limitType storelimit.Type) { s.m.Lock() diff --git a/server/cluster/store_limiter_test.go b/server/cluster/store_limiter_test.go index 7a1dcab9fad..08240168448 100644 --- a/server/cluster/store_limiter_test.go +++ b/server/cluster/store_limiter_test.go @@ -17,12 +17,12 @@ package cluster import ( "testing" - "github.com/pingcap/kvproto/pkg/pdpb" "github.com/stretchr/testify/require" "github.com/tikv/pd/server/config" "github.com/tikv/pd/server/core/storelimit" ) +<<<<<<< HEAD func TestCollect(t *testing.T) { re := require.New(t) @@ -32,6 +32,8 @@ func TestCollect(t *testing.T) { re.Equal(int64(1), limiter.state.cst.total) } +======= +>>>>>>> 2c030264a (cluster: remove store limit collect logic (#6832)) func TestStoreLimitScene(t *testing.T) { re := require.New(t)