Bingyi Sun 626854cf0c
Refactor QueryCoord (#18836)
Signed-off-by: sunby <bingyi.sun@zilliz.com>
Co-authored-by: yah01 <yang.cen@zilliz.com>
Co-authored-by: Wei Liu <wei.liu@zilliz.com>
Co-authored-by: Congqi Xia <congqi.xia@zilliz.com>

Signed-off-by: sunby <bingyi.sun@zilliz.com>
Co-authored-by: sunby <bingyi.sun@zilliz.com>
Co-authored-by: yah01 <yang.cen@zilliz.com>
Co-authored-by: Wei Liu <wei.liu@zilliz.com>
Co-authored-by: Congqi Xia <congqi.xia@zilliz.com>
2022-09-15 18:48:32 +08:00

36 lines
893 B
Go

package utils
import (
"github.com/milvus-io/milvus/internal/querycoordv2/meta"
"github.com/milvus-io/milvus/internal/util/typeutil"
)
func FilterReleased[E interface{ GetCollectionID() int64 }](elems []E, collections []int64) []E {
collectionSet := typeutil.NewUniqueSet(collections...)
ret := make([]E, 0, len(elems))
for i := range elems {
collection := elems[i].GetCollectionID()
if !collectionSet.Contain(collection) {
ret = append(ret, elems[i])
}
}
return ret
}
func FindMaxVersionSegments(segments []*meta.Segment) []*meta.Segment {
versions := make(map[int64]int64)
segMap := make(map[int64]*meta.Segment)
for _, s := range segments {
v, ok := versions[s.GetID()]
if !ok || v < s.Version {
versions[s.GetID()] = s.Version
segMap[s.GetID()] = s
}
}
ret := make([]*meta.Segment, 0)
for _, s := range segMap {
ret = append(ret, s)
}
return ret
}