mirror of https://github.com/milvus-io/milvus.git
enhance: [2.5] Skip creating partition rate limiters when not enable (#38911)
issue: https://github.com/milvus-io/milvus/issues/37630 pr: https://github.com/milvus-io/milvus/pull/38816 --------- Signed-off-by: bigsheeper <yihao.dai@zilliz.com>pull/39207/head
parent
dd44a58381
commit
9b916f2cf8
|
@ -1182,6 +1182,15 @@ func (q *QuotaCenter) calculateRates() error {
|
|||
func (q *QuotaCenter) resetAllCurrentRates() error {
|
||||
clusterLimiter := newParamLimiterFunc(internalpb.RateScope_Cluster, allOps)()
|
||||
q.rateLimiter = rlinternal.NewRateLimiterTree(clusterLimiter)
|
||||
|
||||
enablePartitionRateLimit := false
|
||||
for rt := range getRateTypes(internalpb.RateScope_Partition, allOps) {
|
||||
r := quota.GetQuotaValue(internalpb.RateScope_Partition, rt, Params)
|
||||
if Limit(r) != Inf {
|
||||
enablePartitionRateLimit = true
|
||||
}
|
||||
}
|
||||
|
||||
initLimiters := func(sourceCollections map[int64]map[int64][]int64) {
|
||||
for dbID, collections := range sourceCollections {
|
||||
for collectionID, partitionIDs := range collections {
|
||||
|
@ -1192,18 +1201,19 @@ func (q *QuotaCenter) resetAllCurrentRates() error {
|
|||
}
|
||||
return limitVal
|
||||
}
|
||||
q.rateLimiter.GetOrCreateCollectionLimiters(dbID, collectionID,
|
||||
newParamLimiterFunc(internalpb.RateScope_Database, allOps),
|
||||
newParamLimiterFuncWithLimitFunc(internalpb.RateScope_Collection, allOps, getCollectionLimitVal))
|
||||
|
||||
if !enablePartitionRateLimit {
|
||||
continue
|
||||
}
|
||||
for _, partitionID := range partitionIDs {
|
||||
q.rateLimiter.GetOrCreatePartitionLimiters(dbID, collectionID, partitionID,
|
||||
newParamLimiterFunc(internalpb.RateScope_Database, allOps),
|
||||
newParamLimiterFuncWithLimitFunc(internalpb.RateScope_Collection, allOps, getCollectionLimitVal),
|
||||
newParamLimiterFunc(internalpb.RateScope_Partition, allOps))
|
||||
}
|
||||
if len(partitionIDs) == 0 {
|
||||
q.rateLimiter.GetOrCreateCollectionLimiters(dbID, collectionID,
|
||||
newParamLimiterFunc(internalpb.RateScope_Database, allOps),
|
||||
newParamLimiterFuncWithLimitFunc(internalpb.RateScope_Collection, allOps, getCollectionLimitVal))
|
||||
}
|
||||
}
|
||||
if len(collections) == 0 {
|
||||
q.rateLimiter.GetOrCreateDatabaseLimiters(dbID, newParamLimiterFunc(internalpb.RateScope_Database, allOps))
|
||||
|
|
Loading…
Reference in New Issue