From a1a1eea8dafd7918d583378790a4bb6c39a21f97 Mon Sep 17 00:00:00 2001 From: Yongbo Jiang Date: Wed, 1 Nov 2023 16:42:37 +0800 Subject: [PATCH] resourcemanager: change param name (#7293) ref tikv/pd#4399 Signed-off-by: Cabinfever_B --- .../resourcemanager/server/resource_group.go | 4 +- .../resourcemanager/server/token_buckets.go | 42 +++++++++---------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/pkg/mcs/resourcemanager/server/resource_group.go b/pkg/mcs/resourcemanager/server/resource_group.go index 863cfd19026..fc3a58cab51 100644 --- a/pkg/mcs/resourcemanager/server/resource_group.go +++ b/pkg/mcs/resourcemanager/server/resource_group.go @@ -138,7 +138,7 @@ func FromProtoResourceGroup(group *rmpb.ResourceGroup) *ResourceGroup { // RequestRU requests the RU of the resource group. func (rg *ResourceGroup) RequestRU( now time.Time, - neededTokens float64, + requiredToken float64, targetPeriodMs, clientUniqueID uint64, ) *rmpb.GrantedRUTokenBucket { rg.Lock() @@ -147,7 +147,7 @@ func (rg *ResourceGroup) RequestRU( if rg.RUSettings == nil || rg.RUSettings.RU.Settings == nil { return nil } - tb, trickleTimeMs := rg.RUSettings.RU.request(now, neededTokens, targetPeriodMs, clientUniqueID) + tb, trickleTimeMs := rg.RUSettings.RU.request(now, requiredToken, targetPeriodMs, clientUniqueID) return &rmpb.GrantedRUTokenBucket{GrantedTokens: tb, TrickleTimeMs: trickleTimeMs} } diff --git a/pkg/mcs/resourcemanager/server/token_buckets.go b/pkg/mcs/resourcemanager/server/token_buckets.go index 5efab52fe68..a0acba3b54d 100644 --- a/pkg/mcs/resourcemanager/server/token_buckets.go +++ b/pkg/mcs/resourcemanager/server/token_buckets.go @@ -268,7 +268,7 @@ func (gtb *GroupTokenBucket) init(now time.Time, clientID uint64) { } // updateTokens updates the tokens and settings. -func (gtb *GroupTokenBucket) updateTokens(now time.Time, burstLimit int64, clientUniqueID uint64, consumptionToken float64) { +func (gtb *GroupTokenBucket) updateTokens(now time.Time, burstLimit int64, clientUniqueID uint64, requiredToken float64) { var elapseTokens float64 if !gtb.Initialized { gtb.init(now, clientUniqueID) @@ -288,21 +288,21 @@ func (gtb *GroupTokenBucket) updateTokens(now time.Time, burstLimit int64, clien gtb.Tokens = burst } // Balance each slots. - gtb.balanceSlotTokens(clientUniqueID, gtb.Settings, consumptionToken, elapseTokens) + gtb.balanceSlotTokens(clientUniqueID, gtb.Settings, requiredToken, elapseTokens) } // request requests tokens from the corresponding slot. func (gtb *GroupTokenBucket) request(now time.Time, - neededTokens float64, + requiredToken float64, targetPeriodMs, clientUniqueID uint64, ) (*rmpb.TokenBucket, int64) { burstLimit := gtb.Settings.GetBurstLimit() - gtb.updateTokens(now, burstLimit, clientUniqueID, neededTokens) + gtb.updateTokens(now, burstLimit, clientUniqueID, requiredToken) slot, ok := gtb.tokenSlots[clientUniqueID] if !ok { return &rmpb.TokenBucket{Settings: &rmpb.TokenLimitSettings{BurstLimit: burstLimit}}, 0 } - res, trickleDuration := slot.assignSlotTokens(neededTokens, targetPeriodMs) + res, trickleDuration := slot.assignSlotTokens(requiredToken, targetPeriodMs) // Update bucket to record all tokens. gtb.Tokens -= slot.lastTokenCapacity - slot.tokenCapacity slot.lastTokenCapacity = slot.tokenCapacity @@ -310,24 +310,24 @@ func (gtb *GroupTokenBucket) request(now time.Time, return res, trickleDuration } -func (ts *TokenSlot) assignSlotTokens(neededTokens float64, targetPeriodMs uint64) (*rmpb.TokenBucket, int64) { +func (ts *TokenSlot) assignSlotTokens(requiredToken float64, targetPeriodMs uint64) (*rmpb.TokenBucket, int64) { var res rmpb.TokenBucket burstLimit := ts.settings.GetBurstLimit() res.Settings = &rmpb.TokenLimitSettings{BurstLimit: burstLimit} // If BurstLimit < 0, just return. if burstLimit < 0 { - res.Tokens = neededTokens + res.Tokens = requiredToken return &res, 0 } // FillRate is used for the token server unavailable in abnormal situation. - if neededTokens <= 0 { + if requiredToken <= 0 { return &res, 0 } // If the current tokens can directly meet the requirement, returns the need token. - if ts.tokenCapacity >= neededTokens { - ts.tokenCapacity -= neededTokens + if ts.tokenCapacity >= requiredToken { + ts.tokenCapacity -= requiredToken // granted the total request tokens - res.Tokens = neededTokens + res.Tokens = requiredToken return &res, 0 } @@ -336,7 +336,7 @@ func (ts *TokenSlot) assignSlotTokens(neededTokens float64, targetPeriodMs uint6 hasRemaining := false if ts.tokenCapacity > 0 { grantedTokens = ts.tokenCapacity - neededTokens -= grantedTokens + requiredToken -= grantedTokens ts.tokenCapacity = 0 hasRemaining = true } @@ -373,36 +373,36 @@ func (ts *TokenSlot) assignSlotTokens(neededTokens float64, targetPeriodMs uint6 for i := 1; i < loanCoefficient; i++ { p[i] = float64(loanCoefficient-i)*float64(fillRate)*targetPeriodTimeSec + p[i-1] } - for i := 0; i < loanCoefficient && neededTokens > 0 && trickleTime < targetPeriodTimeSec; i++ { + for i := 0; i < loanCoefficient && requiredToken > 0 && trickleTime < targetPeriodTimeSec; i++ { loan := -ts.tokenCapacity if loan >= p[i] { continue } roundReserveTokens := p[i] - loan fillRate := float64(loanCoefficient-i) * float64(fillRate) - if roundReserveTokens > neededTokens { - ts.tokenCapacity -= neededTokens - grantedTokens += neededTokens + if roundReserveTokens > requiredToken { + ts.tokenCapacity -= requiredToken + grantedTokens += requiredToken trickleTime += grantedTokens / fillRate - neededTokens = 0 + requiredToken = 0 } else { roundReserveTime := roundReserveTokens / fillRate if roundReserveTime+trickleTime >= targetPeriodTimeSec { roundTokens := (targetPeriodTimeSec - trickleTime) * fillRate - neededTokens -= roundTokens + requiredToken -= roundTokens ts.tokenCapacity -= roundTokens grantedTokens += roundTokens trickleTime = targetPeriodTimeSec } else { grantedTokens += roundReserveTokens - neededTokens -= roundReserveTokens + requiredToken -= roundReserveTokens ts.tokenCapacity -= roundReserveTokens trickleTime += roundReserveTime } } } - if neededTokens > 0 && grantedTokens < defaultReserveRatio*float64(fillRate)*targetPeriodTimeSec { - reservedTokens := math.Min(neededTokens+grantedTokens, defaultReserveRatio*float64(fillRate)*targetPeriodTimeSec) + if requiredToken > 0 && grantedTokens < defaultReserveRatio*float64(fillRate)*targetPeriodTimeSec { + reservedTokens := math.Min(requiredToken+grantedTokens, defaultReserveRatio*float64(fillRate)*targetPeriodTimeSec) ts.tokenCapacity -= reservedTokens - grantedTokens grantedTokens = reservedTokens }