enhance: [2.4] Add Segment Level in milvus segment info APIs (#34763) (#35023)

Cherry-pick from master
pr: #34763
See also #34746

This PR add segment level field in response of
`GetPersistentSegmentInfo` and `GetQuerySegmentInfo`

---------

---------

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
congqixia 2024-07-29 10:11:52 +08:00 committed by GitHub
parent 0417463e90
commit d16320705e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
22 changed files with 65 additions and 102 deletions

View File

@ -8,7 +8,7 @@ require (
github.com/gogo/status v1.1.0
github.com/golang/protobuf v1.5.4
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.3
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.7-0.20240717093336-5d85129b6803
github.com/milvus-io/milvus/pkg v0.0.2-0.20240317152703-17b4938985f3
github.com/samber/lo v1.27.0
github.com/stretchr/testify v1.8.4

View File

@ -395,6 +395,8 @@ github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/le
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.3 h1:KUSaWVePVlHMIluAXf2qmNffI1CMlGFLLiP+4iy9014=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.3/go.mod h1:1OIl0v5PQeNxIJhCvY+K55CBUOYDZevw9g9380u1Wek=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.7-0.20240717093336-5d85129b6803 h1:qV7XMJcJS4Y/B8VoBZCqEP+Hd8PGTbYXZ+ejN/ZTIyA=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.7-0.20240717093336-5d85129b6803/go.mod h1:1OIl0v5PQeNxIJhCvY+K55CBUOYDZevw9g9380u1Wek=
github.com/milvus-io/milvus/pkg v0.0.2-0.20240317152703-17b4938985f3 h1:ZBpRWhBa7FTFxW4YYVv9AUESoW1Xyb3KNXTzTqfkZmw=
github.com/milvus-io/milvus/pkg v0.0.2-0.20240317152703-17b4938985f3/go.mod h1:jQ2BUZny1COsgv1Qbcv8dmbppW+V9J/c4YQZNb3EOm8=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=

2
go.mod
View File

@ -26,7 +26,7 @@ require (
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
github.com/klauspost/compress v1.17.7
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.6
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.7-0.20240717093336-5d85129b6803
github.com/minio/minio-go/v7 v7.0.61
github.com/pingcap/log v1.1.1-0.20221015072633-39906604fb81
github.com/prometheus/client_golang v1.14.0

2
go.sum
View File

@ -610,6 +610,8 @@ github.com/milvus-io/gorocksdb v0.0.0-20220624081344-8c5f4212846b h1:TfeY0NxYxZz
github.com/milvus-io/gorocksdb v0.0.0-20220624081344-8c5f4212846b/go.mod h1:iwW+9cWfIzzDseEBCCeDSN5SD16Tidvy8cwQ7ZY8Qj4=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.6 h1:rSkwp5Mg/7KBSUqXcrPBUgTQGZNdvYWEKB+rHo9YJtk=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.6/go.mod h1:1OIl0v5PQeNxIJhCvY+K55CBUOYDZevw9g9380u1Wek=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.7-0.20240717093336-5d85129b6803 h1:qV7XMJcJS4Y/B8VoBZCqEP+Hd8PGTbYXZ+ejN/ZTIyA=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.7-0.20240717093336-5d85129b6803/go.mod h1:1OIl0v5PQeNxIJhCvY+K55CBUOYDZevw9g9380u1Wek=
github.com/milvus-io/milvus-storage/go v0.0.0-20231227072638-ebd0b8e56d70 h1:Z+sp64fmAOxAG7mU0dfVOXvAXlwRB0c8a96rIM5HevI=
github.com/milvus-io/milvus-storage/go v0.0.0-20231227072638-ebd0b8e56d70/go.mod h1:GPETMcTZq1gLY1WA6Na5kiNAKnq8SEMMiVKUZrM3sho=
github.com/milvus-io/pulsar-client-go v0.6.10 h1:eqpJjU+/QX0iIhEo3nhOqMNXL+TyInAs1IAHZCrCM/A=

View File

@ -33,7 +33,6 @@ import (
"github.com/milvus-io/milvus/internal/datanode/io"
"github.com/milvus-io/milvus/internal/proto/datapb"
"github.com/milvus-io/milvus/internal/storage"
"github.com/milvus-io/milvus/pkg/common"
"github.com/milvus-io/milvus/pkg/util/merr"
"github.com/milvus-io/milvus/pkg/util/paramtable"

View File

@ -548,6 +548,7 @@ message SegmentInfo {
repeated int64 node_ids = 15;
bool enable_index = 16;
bool is_fake = 17;
data.SegmentLevel level = 18;
}
message CollectionInfo {

View File

@ -29,6 +29,7 @@ import (
"google.golang.org/grpc/peer"
"google.golang.org/grpc/status"
"github.com/golang/protobuf/proto"
"github.com/milvus-io/milvus-proto/go-api/v2/commonpb"
"github.com/milvus-io/milvus-proto/go-api/v2/milvuspb"
"github.com/milvus-io/milvus/internal/proxy/connection"
@ -161,12 +162,17 @@ type SizeResponse interface {
}
func (i *GrpcAccessInfo) ResponseSize() string {
message, ok := i.resp.(SizeResponse)
if !ok {
var size int
switch r := i.resp.(type) {
case SizeResponse:
size = r.XXX_Size()
case proto.Message:
size = proto.Size(r)
default:
return Unknown
}
return fmt.Sprint(message.XXX_Size())
return fmt.Sprint(size)
}
type BaseResponse interface {

View File

@ -4105,6 +4105,7 @@ func (node *Proxy) GetPersistentSegmentInfo(ctx context.Context, req *milvuspb.G
PartitionID: info.PartitionID,
NumRows: info.NumOfRows,
State: info.State,
Level: commonpb.SegmentLevel(info.Level),
}
}
metrics.ProxyFunctionCall.WithLabelValues(strconv.FormatInt(paramtable.GetNodeID(), 10), method,
@ -4177,6 +4178,7 @@ func (node *Proxy) GetQuerySegmentInfo(ctx context.Context, req *milvuspb.GetQue
IndexID: info.IndexID,
State: info.SegmentState,
NodeIds: info.NodeIds,
Level: commonpb.SegmentLevel(info.Level),
}
}

View File

@ -4433,8 +4433,7 @@ func Test_GetCompactionState(t *testing.T) {
proxy := &Proxy{dataCoord: datacoord}
proxy.UpdateStateCode(commonpb.StateCode_Healthy)
resp, err := proxy.GetCompactionState(context.TODO(), nil)
assert.EqualValues(t, &milvuspb.GetCompactionStateResponse{}, resp)
assert.NoError(t, err)
assert.NoError(t, merr.CheckRPCCall(resp, err))
})
t.Run("get compaction state with unhealthy proxy", func(t *testing.T) {
@ -4453,8 +4452,7 @@ func Test_ManualCompaction(t *testing.T) {
proxy := &Proxy{dataCoord: datacoord}
proxy.UpdateStateCode(commonpb.StateCode_Healthy)
resp, err := proxy.ManualCompaction(context.TODO(), nil)
assert.EqualValues(t, &milvuspb.ManualCompactionResponse{}, resp)
assert.NoError(t, err)
assert.NoError(t, merr.CheckRPCCall(resp, err))
})
t.Run("test manual compaction with unhealthy", func(t *testing.T) {
datacoord := &DataCoordMock{}
@ -4472,8 +4470,7 @@ func Test_GetCompactionStateWithPlans(t *testing.T) {
proxy := &Proxy{dataCoord: datacoord}
proxy.UpdateStateCode(commonpb.StateCode_Healthy)
resp, err := proxy.GetCompactionStateWithPlans(context.TODO(), nil)
assert.EqualValues(t, &milvuspb.GetCompactionPlansResponse{}, resp)
assert.NoError(t, err)
assert.NoError(t, merr.CheckRPCCall(resp, err))
})
t.Run("test get compaction state with plans with unhealthy proxy", func(t *testing.T) {
datacoord := &DataCoordMock{}
@ -4505,8 +4502,7 @@ func Test_GetFlushState(t *testing.T) {
resp, err := proxy.GetFlushState(context.TODO(), &milvuspb.GetFlushStateRequest{
CollectionName: "coll",
})
assert.EqualValues(t, &milvuspb.GetFlushStateResponse{}, resp)
assert.NoError(t, err)
assert.NoError(t, merr.CheckRPCCall(resp, err))
})
t.Run("test get flush state with unhealthy proxy", func(t *testing.T) {
@ -4529,8 +4525,7 @@ func TestProxy_GetComponentStates(t *testing.T) {
n.session = &sessionutil.Session{}
n.session.UpdateRegistered(true)
resp, err = n.GetComponentStates(context.Background(), nil)
assert.NoError(t, err)
assert.Equal(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode())
assert.NoError(t, merr.CheckRPCCall(resp, err))
}
func TestProxy_Import(t *testing.T) {
@ -4575,8 +4570,7 @@ func TestProxy_Import(t *testing.T) {
Files: []string{"a.json"},
}
resp, err := proxy.Import(context.TODO(), req)
assert.NoError(t, err)
assert.Equal(t, int32(0), resp.GetStatus().GetCode())
assert.NoError(t, merr.CheckRPCCall(resp, err))
})
t.Run("GetImportState failed", func(t *testing.T) {
@ -4601,8 +4595,7 @@ func TestProxy_Import(t *testing.T) {
req := &milvuspb.GetImportStateRequest{}
resp, err := proxy.GetImportState(context.TODO(), req)
assert.NoError(t, err)
assert.Equal(t, int32(0), resp.GetStatus().GetCode())
assert.NoError(t, merr.CheckRPCCall(resp, err))
})
t.Run("ListImportTasks failed", func(t *testing.T) {
@ -4627,8 +4620,7 @@ func TestProxy_Import(t *testing.T) {
req := &milvuspb.ListImportTasksRequest{}
resp, err := proxy.ListImportTasks(context.TODO(), req)
assert.NoError(t, err)
assert.Equal(t, int32(0), resp.GetStatus().GetCode())
assert.NoError(t, merr.CheckRPCCall(resp, err))
})
}

View File

@ -459,7 +459,6 @@ func (t *dropCollectionTask) OnEnqueue() error {
}
func (t *dropCollectionTask) PreExecute(ctx context.Context) error {
if err := validateCollectionName(t.CollectionName); err != nil {
return err
}
@ -527,7 +526,6 @@ func (t *hasCollectionTask) OnEnqueue() error {
}
func (t *hasCollectionTask) PreExecute(ctx context.Context) error {
if err := validateCollectionName(t.CollectionName); err != nil {
return err
}
@ -595,7 +593,6 @@ func (t *describeCollectionTask) OnEnqueue() error {
}
func (t *describeCollectionTask) PreExecute(ctx context.Context) error {
if t.CollectionID != 0 && len(t.CollectionName) == 0 {
return nil
}
@ -934,7 +931,6 @@ func validatePartitionKeyIsolation(colName string, isPartitionKeyEnabled bool, p
}
func (t *alterCollectionTask) PreExecute(ctx context.Context) error {
collectionID, err := globalMetaCache.GetCollectionID(ctx, t.GetDbName(), t.CollectionName)
if err != nil {
return err
@ -1071,7 +1067,6 @@ func (t *createPartitionTask) OnEnqueue() error {
}
func (t *createPartitionTask) PreExecute(ctx context.Context) error {
collName, partitionTag := t.CollectionName, t.PartitionName
if err := validateCollectionName(collName); err != nil {
@ -1154,7 +1149,6 @@ func (t *dropPartitionTask) OnEnqueue() error {
}
func (t *dropPartitionTask) PreExecute(ctx context.Context) error {
collName, partitionTag := t.CollectionName, t.PartitionName
if err := validateCollectionName(collName); err != nil {
@ -1262,7 +1256,6 @@ func (t *hasPartitionTask) OnEnqueue() error {
}
func (t *hasPartitionTask) PreExecute(ctx context.Context) error {
collName, partitionTag := t.CollectionName, t.PartitionName
if err := validateCollectionName(collName); err != nil {
@ -1336,7 +1329,6 @@ func (t *showPartitionsTask) OnEnqueue() error {
}
func (t *showPartitionsTask) PreExecute(ctx context.Context) error {
if err := validateCollectionName(t.CollectionName); err != nil {
return err
}
@ -1741,7 +1733,6 @@ func (t *releaseCollectionTask) OnEnqueue() error {
}
func (t *releaseCollectionTask) PreExecute(ctx context.Context) error {
collName := t.CollectionName
if err := validateCollectionName(collName); err != nil {
@ -1835,7 +1826,6 @@ func (t *loadPartitionsTask) OnEnqueue() error {
}
func (t *loadPartitionsTask) PreExecute(ctx context.Context) error {
collName := t.CollectionName
if err := validateCollectionName(collName); err != nil {
@ -1985,7 +1975,6 @@ func (t *releasePartitionsTask) OnEnqueue() error {
}
func (t *releasePartitionsTask) PreExecute(ctx context.Context) error {
collName := t.CollectionName
if err := validateCollectionName(collName); err != nil {
@ -2090,7 +2079,6 @@ func (t *CreateResourceGroupTask) OnEnqueue() error {
}
func (t *CreateResourceGroupTask) PreExecute(ctx context.Context) error {
return nil
}
@ -2155,7 +2143,6 @@ func (t *UpdateResourceGroupsTask) OnEnqueue() error {
}
func (t *UpdateResourceGroupsTask) PreExecute(ctx context.Context) error {
return nil
}
@ -2223,7 +2210,6 @@ func (t *DropResourceGroupTask) OnEnqueue() error {
}
func (t *DropResourceGroupTask) PreExecute(ctx context.Context) error {
return nil
}
@ -2288,7 +2274,6 @@ func (t *DescribeResourceGroupTask) OnEnqueue() error {
}
func (t *DescribeResourceGroupTask) PreExecute(ctx context.Context) error {
return nil
}
@ -2414,7 +2399,6 @@ func (t *TransferNodeTask) OnEnqueue() error {
}
func (t *TransferNodeTask) PreExecute(ctx context.Context) error {
return nil
}
@ -2479,7 +2463,6 @@ func (t *TransferReplicaTask) OnEnqueue() error {
}
func (t *TransferReplicaTask) PreExecute(ctx context.Context) error {
return nil
}
@ -2553,7 +2536,6 @@ func (t *ListResourceGroupsTask) OnEnqueue() error {
}
func (t *ListResourceGroupsTask) PreExecute(ctx context.Context) error {
return nil
}

View File

@ -89,7 +89,6 @@ func (t *CreateAliasTask) OnEnqueue() error {
// PreExecute defines the tion before task execution
func (t *CreateAliasTask) PreExecute(ctx context.Context) error {
collAlias := t.Alias
// collection alias uses the same format as collection name
if err := ValidateCollectionAlias(collAlias); err != nil {
@ -240,7 +239,6 @@ func (t *AlterAliasTask) OnEnqueue() error {
}
func (t *AlterAliasTask) PreExecute(ctx context.Context) error {
collAlias := t.Alias
// collection alias uses the same format as collection name
if err := ValidateCollectionAlias(collAlias); err != nil {
@ -384,7 +382,6 @@ func (a *ListAliasesTask) OnEnqueue() error {
}
func (a *ListAliasesTask) PreExecute(ctx context.Context) error {
if len(a.GetCollectionName()) > 0 {
if err := validateCollectionName(a.GetCollectionName()); err != nil {
return err

View File

@ -272,7 +272,6 @@ func (t *alterDatabaseTask) OnEnqueue() error {
}
func (t *alterDatabaseTask) PreExecute(ctx context.Context) error {
return nil
}
@ -351,7 +350,6 @@ func (t *describeDatabaseTask) OnEnqueue() error {
}
func (t *describeDatabaseTask) PreExecute(ctx context.Context) error {
return nil
}

View File

@ -412,7 +412,6 @@ func checkTrain(field *schemapb.FieldSchema, indexParams map[string]string) erro
}
func (cit *createIndexTask) PreExecute(ctx context.Context) error {
collName := cit.req.GetCollectionName()
collID, err := globalMetaCache.GetCollectionID(ctx, cit.req.GetDbName(), collName)
@ -526,7 +525,6 @@ func (t *alterIndexTask) OnEnqueue() error {
}
func (t *alterIndexTask) PreExecute(ctx context.Context) error {
for _, param := range t.req.GetExtraParams() {
if !indexparams.IsConfigableIndexParam(param.GetKey()) {
return merr.WrapErrParameterInvalidMsg("%s is not configable index param", param.GetKey())
@ -638,7 +636,6 @@ func (dit *describeIndexTask) OnEnqueue() error {
}
func (dit *describeIndexTask) PreExecute(ctx context.Context) error {
if err := validateCollectionName(dit.CollectionName); err != nil {
return err
}
@ -763,7 +760,6 @@ func (dit *getIndexStatisticsTask) OnEnqueue() error {
}
func (dit *getIndexStatisticsTask) PreExecute(ctx context.Context) error {
if err := validateCollectionName(dit.CollectionName); err != nil {
return err
}
@ -881,7 +877,6 @@ func (dit *dropIndexTask) OnEnqueue() error {
}
func (dit *dropIndexTask) PreExecute(ctx context.Context) error {
collName, fieldName := dit.CollectionName, dit.FieldName
if err := validateCollectionName(collName); err != nil {
@ -992,7 +987,6 @@ func (gibpt *getIndexBuildProgressTask) OnEnqueue() error {
}
func (gibpt *getIndexBuildProgressTask) PreExecute(ctx context.Context) error {
if err := validateCollectionName(gibpt.CollectionName); err != nil {
return err
}
@ -1082,7 +1076,6 @@ func (gist *getIndexStateTask) OnEnqueue() error {
}
func (gist *getIndexStateTask) PreExecute(ctx context.Context) error {
if err := validateCollectionName(gist.CollectionName); err != nil {
return err
}

View File

@ -222,17 +222,15 @@ func (suite *ClusterTestSuite) TestLoadSegments() {
Infos: []*querypb.SegmentLoadInfo{{}},
})
suite.NoError(err)
suite.Equal(merr.Success(), status)
merr.Ok(status)
status, err = suite.cluster.LoadSegments(ctx, 1, &querypb.LoadSegmentsRequest{
Base: &commonpb.MsgBase{},
Infos: []*querypb.SegmentLoadInfo{{}},
})
suite.NoError(err)
suite.Equal(&commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: "unexpected error",
}, status)
suite.Equal(commonpb.ErrorCode_UnexpectedError, status.GetErrorCode())
suite.Equal("unexpected error", status.GetReason())
_, err = suite.cluster.LoadSegments(ctx, 3, &querypb.LoadSegmentsRequest{
Base: &commonpb.MsgBase{},
@ -248,16 +246,14 @@ func (suite *ClusterTestSuite) TestWatchDmChannels() {
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(merr.Success(), status)
merr.Ok(status)
status, err = suite.cluster.WatchDmChannels(ctx, 1, &querypb.WatchDmChannelsRequest{
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(&commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: "unexpected error",
}, status)
suite.Equal(commonpb.ErrorCode_UnexpectedError, status.GetErrorCode())
suite.Equal("unexpected error", status.GetReason())
}
func (suite *ClusterTestSuite) TestUnsubDmChannel() {
@ -266,16 +262,14 @@ func (suite *ClusterTestSuite) TestUnsubDmChannel() {
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(merr.Success(), status)
merr.Ok(status)
status, err = suite.cluster.UnsubDmChannel(ctx, 1, &querypb.UnsubDmChannelRequest{
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(&commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: "unexpected error",
}, status)
suite.Equal(commonpb.ErrorCode_UnexpectedError, status.GetErrorCode())
suite.Equal("unexpected error", status.GetReason())
}
func (suite *ClusterTestSuite) TestReleaseSegments() {
@ -284,16 +278,14 @@ func (suite *ClusterTestSuite) TestReleaseSegments() {
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(merr.Success(), status)
merr.Ok(status)
status, err = suite.cluster.ReleaseSegments(ctx, 1, &querypb.ReleaseSegmentsRequest{
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(&commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: "unexpected error",
}, status)
suite.Equal(commonpb.ErrorCode_UnexpectedError, status.GetErrorCode())
suite.Equal("unexpected error", status.GetReason())
}
func (suite *ClusterTestSuite) TestLoadAndReleasePartitions() {
@ -302,31 +294,27 @@ func (suite *ClusterTestSuite) TestLoadAndReleasePartitions() {
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(merr.Success(), status)
merr.Ok(status)
status, err = suite.cluster.LoadPartitions(ctx, 1, &querypb.LoadPartitionsRequest{
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(&commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: "unexpected error",
}, status)
suite.Equal(commonpb.ErrorCode_UnexpectedError, status.GetErrorCode())
suite.Equal("unexpected error", status.GetReason())
status, err = suite.cluster.ReleasePartitions(ctx, 0, &querypb.ReleasePartitionsRequest{
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(merr.Success(), status)
merr.Ok(status)
status, err = suite.cluster.ReleasePartitions(ctx, 1, &querypb.ReleasePartitionsRequest{
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(&commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: "unexpected error",
}, status)
suite.Equal(commonpb.ErrorCode_UnexpectedError, status.GetErrorCode())
suite.Equal("unexpected error", status.GetReason())
}
func (suite *ClusterTestSuite) TestGetDataDistribution() {
@ -342,10 +330,8 @@ func (suite *ClusterTestSuite) TestGetDataDistribution() {
})
suite.NoError(err)
suite.Equal(&commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: "unexpected error",
}, resp.GetStatus())
suite.Equal(commonpb.ErrorCode_UnexpectedError, resp.GetStatus().GetErrorCode())
suite.Equal("unexpected error", resp.GetStatus().GetReason())
}
func (suite *ClusterTestSuite) TestGetMetrics() {
@ -356,10 +342,8 @@ func (suite *ClusterTestSuite) TestGetMetrics() {
resp, err = suite.cluster.GetMetrics(ctx, 1, &milvuspb.GetMetricsRequest{})
suite.NoError(err)
suite.Equal(&commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: "unexpected error",
}, resp.GetStatus())
suite.Equal(commonpb.ErrorCode_UnexpectedError, resp.GetStatus().GetErrorCode())
suite.Equal("unexpected error", resp.GetStatus().GetReason())
}
func (suite *ClusterTestSuite) TestSyncDistribution() {
@ -368,16 +352,14 @@ func (suite *ClusterTestSuite) TestSyncDistribution() {
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(merr.Success(), status)
merr.Ok(status)
status, err = suite.cluster.SyncDistribution(ctx, 1, &querypb.SyncDistributionRequest{
Base: &commonpb.MsgBase{},
})
suite.NoError(err)
suite.Equal(&commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: "unexpected error",
}, status)
suite.Equal(commonpb.ErrorCode_UnexpectedError, status.GetErrorCode())
suite.Equal("unexpected error", status.GetReason())
}
func (suite *ClusterTestSuite) TestGetComponentStates() {

View File

@ -44,6 +44,7 @@ func MergeMetaSegmentIntoSegmentInfo(info *querypb.SegmentInfo, segments ...*met
NodeIds: make([]int64, 0),
SegmentState: commonpb.SegmentState_Sealed,
IndexInfos: make([]*querypb.FieldIndexInfo, 0),
Level: first.Level,
}
for _, indexInfo := range first.IndexInfo {
info.IndexName = indexInfo.IndexName

View File

@ -188,7 +188,7 @@ func assertTestData(t *testing.T, i int, value *Value) {
f106 := typeutil.CreateSparseFloatRow([]uint32{0, uint32(18 * i), uint32(284 * i)}, []float32{1.1, 0.3, 2.4})
assert.EqualValues(t, &Value{
assert.EqualExportedValues(t, Value{
int64(i),
&Int64PrimaryKey{Value: int64(i)},
int64(i),
@ -214,7 +214,7 @@ func assertTestData(t *testing.T, i int, value *Value) {
105: f104,
106: f106,
},
}, value)
}, *value)
}
func TestInsertlogIterator(t *testing.T) {

View File

@ -421,7 +421,10 @@ var serdeMap = func() map[schemapb.DataType]serdeEntry {
return false
},
func(v any) uint64 {
return uint64(v.(*schemapb.ScalarField).XXX_Size())
if v == nil {
return 8
}
return uint64(proto.Size(v.(*schemapb.ScalarField)))
},
}

View File

@ -23,6 +23,7 @@ import (
"strings"
"github.com/cockroachdb/errors"
"github.com/milvus-io/milvus-proto/go-api/v2/commonpb"
"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
)

View File

@ -140,7 +140,7 @@ func (m *Manager) EvictCacheValueByFormat(keys ...string) {
defer m.cacheMutex.Unlock()
set := typeutil.NewSet(keys...)
for key, _ := range m.configCache {
for key := range m.configCache {
if set.Contain(formatKey(key)) {
delete(m.configCache, key)
}

View File

@ -14,7 +14,7 @@ require (
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
github.com/klauspost/compress v1.17.7
github.com/lingdor/stackerror v0.0.0-20191119040541-976d8885ed76
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.5
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.7-0.20240717093336-5d85129b6803
github.com/nats-io/nats-server/v2 v2.10.12
github.com/nats-io/nats.go v1.34.1
github.com/panjf2000/ants/v2 v2.7.2

View File

@ -507,6 +507,8 @@ github.com/milvus-io/gorocksdb v0.0.0-20220624081344-8c5f4212846b h1:TfeY0NxYxZz
github.com/milvus-io/gorocksdb v0.0.0-20220624081344-8c5f4212846b/go.mod h1:iwW+9cWfIzzDseEBCCeDSN5SD16Tidvy8cwQ7ZY8Qj4=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.5 h1:83SZKox70jyABAPY7HdbvrwI3cmgwzyuc7dO4dYmoC0=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.5/go.mod h1:1OIl0v5PQeNxIJhCvY+K55CBUOYDZevw9g9380u1Wek=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.7-0.20240717093336-5d85129b6803 h1:qV7XMJcJS4Y/B8VoBZCqEP+Hd8PGTbYXZ+ejN/ZTIyA=
github.com/milvus-io/milvus-proto/go-api/v2 v2.4.7-0.20240717093336-5d85129b6803/go.mod h1:1OIl0v5PQeNxIJhCvY+K55CBUOYDZevw9g9380u1Wek=
github.com/milvus-io/pulsar-client-go v0.6.10 h1:eqpJjU+/QX0iIhEo3nhOqMNXL+TyInAs1IAHZCrCM/A=
github.com/milvus-io/pulsar-client-go v0.6.10/go.mod h1:lQqCkgwDF8YFYjKA+zOheTk1tev2B+bKj5j7+nm8M1w=
github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g=

View File

@ -965,7 +965,7 @@ func TestDeleteFieldData(t *testing.T) {
assert.Equal(t, BFloat16Vector[0:2*Dim], result1[BFloat16VectorFieldID-common.StartOfUserFieldID].GetVectors().Data.(*schemapb.VectorField_Bfloat16Vector).Bfloat16Vector)
tmpSparseFloatVector := proto.Clone(SparseFloatVector).(*schemapb.SparseFloatArray)
tmpSparseFloatVector.Contents = [][]byte{SparseFloatVector.Contents[0]}
assert.Equal(t, tmpSparseFloatVector, result1[SparseFloatVectorFieldID-common.StartOfUserFieldID].GetVectors().GetSparseFloatVector())
assert.EqualExportedValues(t, *tmpSparseFloatVector, *result1[SparseFloatVectorFieldID-common.StartOfUserFieldID].GetVectors().GetSparseFloatVector())
AppendFieldData(result2, fieldDataArray2, 0)
AppendFieldData(result2, fieldDataArray1, 0)
@ -982,7 +982,7 @@ func TestDeleteFieldData(t *testing.T) {
assert.Equal(t, BFloat16Vector[2*Dim:4*Dim], result2[BFloat16VectorFieldID-common.StartOfUserFieldID].GetVectors().Data.(*schemapb.VectorField_Bfloat16Vector).Bfloat16Vector)
tmpSparseFloatVector = proto.Clone(SparseFloatVector).(*schemapb.SparseFloatArray)
tmpSparseFloatVector.Contents = [][]byte{SparseFloatVector.Contents[1]}
assert.Equal(t, tmpSparseFloatVector, result2[SparseFloatVectorFieldID-common.StartOfUserFieldID].GetVectors().GetSparseFloatVector())
assert.EqualExportedValues(t, *tmpSparseFloatVector, *result2[SparseFloatVectorFieldID-common.StartOfUserFieldID].GetVectors().GetSparseFloatVector())
}
func TestEstimateEntitySize(t *testing.T) {