未验证 提交 13ca8936 编写于 作者: S SimFG 提交者: GitHub

Deprecate `GetIndexState` and `GetIndexBuildProgress` (#19451)

Signed-off-by: NSimFG <bang.fu@zilliz.com>
Signed-off-by: NSimFG <bang.fu@zilliz.com>
上级 2dca3688
此差异已折叠。
......@@ -251,6 +251,7 @@ func (s *Server) CreateIndex(ctx context.Context, req *indexpb.CreateIndexReques
}
// GetIndexState gets the index states from IndexCoord.
// Deprecated: use DescribeIndex instead
func (s *Server) GetIndexState(ctx context.Context, req *indexpb.GetIndexStateRequest) (*indexpb.GetIndexStateResponse, error) {
return s.indexcoord.GetIndexState(ctx, req)
}
......@@ -274,6 +275,7 @@ func (s *Server) DropIndex(ctx context.Context, request *indexpb.DropIndexReques
return s.indexcoord.DropIndex(ctx, request)
}
// Deprecated: use DescribeIndex instead
func (s *Server) GetIndexBuildProgress(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error) {
return s.indexcoord.GetIndexBuildProgress(ctx, req)
}
......
......@@ -644,11 +644,13 @@ func (s *Server) DescribeIndex(ctx context.Context, request *milvuspb.DescribeIn
// GetIndexBuildProgress gets index build progress with filed_name and index_name.
// IndexRows is the num of indexed rows. And TotalRows is the total number of segment rows.
// Deprecated: use DescribeIndex instead
func (s *Server) GetIndexBuildProgress(ctx context.Context, request *milvuspb.GetIndexBuildProgressRequest) (*milvuspb.GetIndexBuildProgressResponse, error) {
return s.proxy.GetIndexBuildProgress(ctx, request)
}
// GetIndexStates gets the index states from proxy.
// GetIndexState gets the index states from proxy.
// Deprecated: use DescribeIndex instead
func (s *Server) GetIndexState(ctx context.Context, request *milvuspb.GetIndexStateRequest) (*milvuspb.GetIndexStateResponse, error) {
return s.proxy.GetIndexState(ctx, request)
}
......
......@@ -538,6 +538,66 @@ func (i *IndexCoord) GetSegmentIndexState(ctx context.Context, req *indexpb.GetS
return ret, nil
}
// CompleteIndexInfo get the building index progress and index state
func (i *IndexCoord) completeIndexInfo(ctx context.Context, indexInfo *indexpb.IndexInfo) error {
collectionID := indexInfo.CollectionID
indexName := indexInfo.IndexName
log.Info("IndexCoord completeIndexInfo", zap.Int64("collID", collectionID),
zap.String("indexName", indexName))
flushSegments, err := i.dataCoordClient.GetFlushedSegments(ctx, &datapb.GetFlushedSegmentsRequest{
CollectionID: collectionID,
PartitionID: -1,
})
if err != nil {
return err
}
resp, err := i.dataCoordClient.GetSegmentInfo(ctx, &datapb.GetSegmentInfoRequest{
SegmentIDs: flushSegments.Segments,
})
if err != nil {
return err
}
totalRows, indexRows := int64(0), int64(0)
for _, seg := range resp.Infos {
totalRows += seg.NumOfRows
}
indexID2CreateTs := i.metaTable.GetIndexIDByName(collectionID, indexName)
if len(indexID2CreateTs) < 1 {
log.Error("there is no index on collection", zap.Int64("collectionID", collectionID), zap.String("indexName", indexName))
return nil
}
for indexID, createTs := range indexID2CreateTs {
indexRows = i.metaTable.GetIndexBuildProgress(indexID, createTs)
break
}
indexInfo.IndexedRows = indexRows
indexInfo.TotalRows = totalRows
stateRes := commonpb.IndexState_Finished
failReasonRes := ""
for indexID, createTs := range indexID2CreateTs {
indexStates := i.metaTable.GetIndexStates(indexID, createTs)
for _, state := range indexStates {
if state.state != commonpb.IndexState_Finished {
stateRes = state.state
failReasonRes = state.failReason
break
}
}
}
indexInfo.State = stateRes
indexInfo.IndexStateFailReason = failReasonRes
log.Debug("IndexCoord completeIndexInfo success", zap.Int64("collID", collectionID),
zap.Int64("totalRows", totalRows), zap.Int64("indexRows", indexRows), zap.Int("seg num", len(resp.Infos)),
zap.Any("state", stateRes), zap.String("failReason", failReasonRes))
return nil
}
// GetIndexBuildProgress get the index building progress by num rows.
func (i *IndexCoord) GetIndexBuildProgress(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error) {
log.Info("IndexCoord receive GetIndexBuildProgress request", zap.Int64("collID", req.CollectionID),
......@@ -745,13 +805,24 @@ func (i *IndexCoord) DescribeIndex(ctx context.Context, req *indexpb.DescribeInd
}
indexInfos := make([]*indexpb.IndexInfo, 0)
for _, index := range indexes {
indexInfos = append(indexInfos, &indexpb.IndexInfo{
indexInfo := &indexpb.IndexInfo{
CollectionID: index.CollectionID,
FieldID: index.FieldID,
IndexName: index.IndexName,
TypeParams: index.TypeParams,
IndexParams: index.IndexParams,
})
}
if err := i.completeIndexInfo(ctx, indexInfo); err != nil {
log.Error("IndexCoord describe index fail", zap.Int64("collectionID", req.CollectionID),
zap.String("indexName", req.IndexName), zap.Error(err))
return &indexpb.DescribeIndexResponse{
Status: &commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: err.Error(),
},
}, nil
}
indexInfos = append(indexInfos, indexInfo)
}
return &indexpb.DescribeIndexResponse{
......
......@@ -201,6 +201,23 @@ func TestIndexCoord(t *testing.T) {
resp, err := ic.DescribeIndex(ctx, req)
assert.NoError(t, err)
assert.Equal(t, 1, len(resp.IndexInfos))
originFunc1 := dcm.CallGetFlushedSegment
originFunc2 := dcm.CallGetSegmentInfo
dcm.CallGetFlushedSegment = func(ctx context.Context, req *datapb.GetFlushedSegmentsRequest) (*datapb.GetFlushedSegmentsResponse, error) {
return nil, errors.New("mock error")
}
resp, err = ic.DescribeIndex(ctx, req)
assert.NoError(t, err)
assert.Equal(t, resp.Status.ErrorCode, commonpb.ErrorCode_UnexpectedError)
dcm.CallGetFlushedSegment = originFunc1
dcm.CallGetSegmentInfo = func(ctx context.Context, req *datapb.GetSegmentInfoRequest) (*datapb.GetSegmentInfoResponse, error) {
return nil, errors.New("mock error")
}
resp, err = ic.DescribeIndex(ctx, req)
assert.NoError(t, err)
assert.Equal(t, resp.Status.ErrorCode, commonpb.ErrorCode_UnexpectedError)
dcm.CallGetSegmentInfo = originFunc2
})
t.Run("FlushedSegmentWatcher", func(t *testing.T) {
......
......@@ -12,11 +12,13 @@ service IndexCoord {
rpc GetComponentStates(internal.GetComponentStatesRequest) returns (internal.ComponentStates) {}
rpc GetStatisticsChannel(internal.GetStatisticsChannelRequest) returns(milvus.StringResponse){}
rpc CreateIndex(CreateIndexRequest) returns (common.Status){}
// Deprecated: use DescribeIndex instead
rpc GetIndexState(GetIndexStateRequest) returns (GetIndexStateResponse) {}
rpc GetSegmentIndexState(GetSegmentIndexStateRequest) returns (GetSegmentIndexStateResponse) {}
rpc GetIndexInfos(GetIndexInfoRequest) returns (GetIndexInfoResponse){}
rpc DropIndex(DropIndexRequest) returns (common.Status) {}
rpc DescribeIndex(DescribeIndexRequest) returns (DescribeIndexResponse) {}
// Deprecated: use DescribeIndex instead
rpc GetIndexBuildProgress(GetIndexBuildProgressRequest) returns (GetIndexBuildProgressResponse) {}
rpc ShowConfigurations(internal.ShowConfigurationsRequest) returns (internal.ShowConfigurationsResponse){}
......@@ -44,6 +46,12 @@ message IndexInfo {
int64 indexID = 4;
repeated common.KeyValuePair type_params = 5;
repeated common.KeyValuePair index_params = 6;
// index build progress
int64 indexed_rows = 7;
int64 total_rows = 8;
// index state
common.IndexState state = 9;
string index_state_fail_reason = 10;
}
message FieldIndex {
......
......@@ -36,7 +36,9 @@ service MilvusService {
rpc CreateIndex(CreateIndexRequest) returns (common.Status) {}
rpc DescribeIndex(DescribeIndexRequest) returns (DescribeIndexResponse) {}
// Deprecated: use DescribeIndex instead
rpc GetIndexState(GetIndexStateRequest) returns (GetIndexStateResponse) {}
// Deprecated: use DescribeIndex instead
rpc GetIndexBuildProgress(GetIndexBuildProgressRequest) returns (GetIndexBuildProgressResponse) {}
rpc DropIndex(DropIndexRequest) returns (common.Status) {}
......@@ -581,6 +583,12 @@ message IndexDescription {
repeated common.KeyValuePair params = 3;
// The vector field name
string field_name = 4;
// index build progress
int64 indexed_rows = 5;
int64 total_rows = 6;
// index state
common.IndexState state = 7;
string index_state_fail_reason = 8;
}
/*
......
......@@ -2029,6 +2029,7 @@ func (node *Proxy) DropIndex(ctx context.Context, request *milvuspb.DropIndexReq
// GetIndexBuildProgress gets index build progress with filed_name and index_name.
// IndexRows is the num of indexed rows. And TotalRows is the total number of segment rows.
// Deprecated: use DescribeIndex instead
func (node *Proxy) GetIndexBuildProgress(ctx context.Context, request *milvuspb.GetIndexBuildProgressRequest) (*milvuspb.GetIndexBuildProgressResponse, error) {
if !node.checkHealthy() {
return &milvuspb.GetIndexBuildProgressResponse{
......@@ -2142,6 +2143,7 @@ func (node *Proxy) GetIndexBuildProgress(ctx context.Context, request *milvuspb.
}
// GetIndexState get the build-state of index.
// Deprecated: use DescribeIndex instead
func (node *Proxy) GetIndexState(ctx context.Context, request *milvuspb.GetIndexStateRequest) (*milvuspb.GetIndexStateResponse, error) {
if !node.checkHealthy() {
return &milvuspb.GetIndexStateResponse{
......
......@@ -1442,10 +1442,14 @@ func (dit *describeIndexTask) Execute(ctx context.Context) error {
}
dit.result.IndexDescriptions = append(dit.result.IndexDescriptions, &milvuspb.IndexDescription{
IndexName: indexInfo.GetIndexName(),
IndexID: indexInfo.GetIndexID(),
FieldName: field.Name,
Params: indexInfo.GetIndexParams(),
IndexName: indexInfo.GetIndexName(),
IndexID: indexInfo.GetIndexID(),
FieldName: field.Name,
Params: indexInfo.GetIndexParams(),
IndexedRows: indexInfo.GetIndexedRows(),
TotalRows: indexInfo.GetTotalRows(),
State: indexInfo.GetState(),
IndexStateFailReason: indexInfo.GetIndexStateFailReason(),
})
}
return err
......@@ -1546,6 +1550,7 @@ func (dit *dropIndexTask) PostExecute(ctx context.Context) error {
return nil
}
// Deprecated: use describeIndexTask instead
type getIndexBuildProgressTask struct {
Condition
*milvuspb.GetIndexBuildProgressRequest
......@@ -1639,6 +1644,7 @@ func (gibpt *getIndexBuildProgressTask) PostExecute(ctx context.Context) error {
return nil
}
// Deprecated: use describeIndexTask instead
type getIndexStateTask struct {
Condition
*milvuspb.GetIndexStateRequest
......
......@@ -381,6 +381,7 @@ type IndexCoord interface {
CreateIndex(ctx context.Context, req *indexpb.CreateIndexRequest) (*commonpb.Status, error)
// GetIndexState gets the index state of the index name in the request from Proxy.
// Deprecated: use DescribeIndex instead
GetIndexState(ctx context.Context, req *indexpb.GetIndexStateRequest) (*indexpb.GetIndexStateResponse, error)
// GetSegmentIndexState gets the index state of the segments in the request from RootCoord.
......@@ -393,6 +394,7 @@ type IndexCoord interface {
DescribeIndex(ctx context.Context, req *indexpb.DescribeIndexRequest) (*indexpb.DescribeIndexResponse, error)
// GetIndexBuildProgress get the index building progress by num rows.
// Deprecated: use DescribeIndex instead
GetIndexBuildProgress(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error)
// DropIndex deletes indexes based on IndexID. One IndexID corresponds to the index of an entire column. A column is
......@@ -1048,6 +1050,7 @@ type ProxyComponent interface {
// the `IndexdRows` in `GetIndexBuildProgressResponse` return the num of indexed rows.
// the `TotalRows` in `GetIndexBuildProgressResponse` return the total number of segment rows.
// error is always nil
// Deprecated: use DescribeIndex instead
GetIndexBuildProgress(ctx context.Context, request *milvuspb.GetIndexBuildProgressRequest) (*milvuspb.GetIndexBuildProgressResponse, error)
// GetIndexState notifies Proxy to return index state
......@@ -1058,6 +1061,7 @@ type ProxyComponent interface {
// The `Status` in response struct `GetIndexStateResponse` indicates if this operation is processed successfully or fail cause;
// the `State` in `GetIndexStateResponse` return the state of index: Unissued/InProgress/Finished/Failed.
// error is always nil
// Deprecated: use DescribeIndex instead
GetIndexState(ctx context.Context, request *milvuspb.GetIndexStateRequest) (*milvuspb.GetIndexStateResponse, error)
// Insert notifies Proxy to insert rows
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册