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 {
|
func (q *QuotaCenter) resetAllCurrentRates() error {
|
||||||
clusterLimiter := newParamLimiterFunc(internalpb.RateScope_Cluster, allOps)()
|
clusterLimiter := newParamLimiterFunc(internalpb.RateScope_Cluster, allOps)()
|
||||||
q.rateLimiter = rlinternal.NewRateLimiterTree(clusterLimiter)
|
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) {
|
initLimiters := func(sourceCollections map[int64]map[int64][]int64) {
|
||||||
for dbID, collections := range sourceCollections {
|
for dbID, collections := range sourceCollections {
|
||||||
for collectionID, partitionIDs := range collections {
|
for collectionID, partitionIDs := range collections {
|
||||||
|
@ -1192,18 +1201,19 @@ func (q *QuotaCenter) resetAllCurrentRates() error {
|
||||||
}
|
}
|
||||||
return limitVal
|
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 {
|
for _, partitionID := range partitionIDs {
|
||||||
q.rateLimiter.GetOrCreatePartitionLimiters(dbID, collectionID, partitionID,
|
q.rateLimiter.GetOrCreatePartitionLimiters(dbID, collectionID, partitionID,
|
||||||
newParamLimiterFunc(internalpb.RateScope_Database, allOps),
|
newParamLimiterFunc(internalpb.RateScope_Database, allOps),
|
||||||
newParamLimiterFuncWithLimitFunc(internalpb.RateScope_Collection, allOps, getCollectionLimitVal),
|
newParamLimiterFuncWithLimitFunc(internalpb.RateScope_Collection, allOps, getCollectionLimitVal),
|
||||||
newParamLimiterFunc(internalpb.RateScope_Partition, allOps))
|
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 {
|
if len(collections) == 0 {
|
||||||
q.rateLimiter.GetOrCreateDatabaseLimiters(dbID, newParamLimiterFunc(internalpb.RateScope_Database, allOps))
|
q.rateLimiter.GetOrCreateDatabaseLimiters(dbID, newParamLimiterFunc(internalpb.RateScope_Database, allOps))
|
||||||
|
|
Loading…
Reference in New Issue