mirror of https://github.com/milvus-io/milvus.git
Cherry-pick from master pr: #32892 See also #32165 In old `GetResourceGroupByCollection` implementation, it iterates all replicas to match collection id, which is slow and CPU time consuming. This PR make it utilize the coll2Replicas mapping by calling `GetByCollection` and mapping replicas into resource group. Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>pull/32937/head
parent
3acac728dd
commit
7b7b56b4e1
|
@ -21,6 +21,7 @@ import (
|
|||
"sync"
|
||||
|
||||
"github.com/cockroachdb/errors"
|
||||
"github.com/samber/lo"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"github.com/milvus-io/milvus/internal/metastore"
|
||||
|
@ -406,15 +407,7 @@ func (m *ReplicaManager) RemoveNode(replicaID typeutil.UniqueID, nodes ...typeut
|
|||
}
|
||||
|
||||
func (m *ReplicaManager) GetResourceGroupByCollection(collection typeutil.UniqueID) typeutil.Set[string] {
|
||||
m.rwmutex.Lock()
|
||||
defer m.rwmutex.Unlock()
|
||||
|
||||
ret := typeutil.NewSet[string]()
|
||||
for _, r := range m.replicas {
|
||||
if r.GetCollectionID() == collection {
|
||||
ret.Insert(r.GetResourceGroup())
|
||||
}
|
||||
}
|
||||
|
||||
replicas := m.GetByCollection(collection)
|
||||
ret := typeutil.NewSet(lo.Map(replicas, func(r *Replica, _ int) string { return r.GetResourceGroup() })...)
|
||||
return ret
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue