mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-08 10:08:42 +08:00
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>
36 lines
893 B
Go
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
|
|
}
|