diff --git a/go.mod b/go.mod index 7c684c424e..ed327166b9 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/klauspost/compress v1.14.2 github.com/lingdor/stackerror v0.0.0-20191119040541-976d8885ed76 github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d - github.com/milvus-io/milvus-proto/go-api v0.0.0-20230529035323-00da05d318d1 + github.com/milvus-io/milvus-proto/go-api v0.0.0-20230531124628-96b086f03faf github.com/minio/minio-go/v7 v7.0.17 github.com/opentracing/opentracing-go v1.2.0 github.com/panjf2000/ants/v2 v2.4.8 diff --git a/go.sum b/go.sum index ebfea23519..aa8c022fa2 100644 --- a/go.sum +++ b/go.sum @@ -512,8 +512,8 @@ github.com/milvus-io/milvus-proto/go-api v0.0.0-20230522080721-2975bfe7a190 h1:Z github.com/milvus-io/milvus-proto/go-api v0.0.0-20230522080721-2975bfe7a190/go.mod h1:148qnlmZ0Fdm1Fq+Mj/OW2uDoEP25g3mjh0vMGtkgmk= github.com/milvus-io/milvus-proto/go-api v0.0.0-20230526035721-38841a224dac h1:MC4X/pkkGvKEXhIiO52ZA0SX0c2MMNhqVoxOLIe8q/M= github.com/milvus-io/milvus-proto/go-api v0.0.0-20230526035721-38841a224dac/go.mod h1:148qnlmZ0Fdm1Fq+Mj/OW2uDoEP25g3mjh0vMGtkgmk= -github.com/milvus-io/milvus-proto/go-api v0.0.0-20230529035323-00da05d318d1 h1:ushb9LriQIuX6ephDhS3SdMqEFq7OlgMBE5ruTwUEhE= -github.com/milvus-io/milvus-proto/go-api v0.0.0-20230529035323-00da05d318d1/go.mod h1:148qnlmZ0Fdm1Fq+Mj/OW2uDoEP25g3mjh0vMGtkgmk= +github.com/milvus-io/milvus-proto/go-api v0.0.0-20230531124628-96b086f03faf h1:lAyPkHRNFw73DGW0x522uQkuTsm+EQ3f1lIzM7p+zLc= +github.com/milvus-io/milvus-proto/go-api v0.0.0-20230531124628-96b086f03faf/go.mod h1:148qnlmZ0Fdm1Fq+Mj/OW2uDoEP25g3mjh0vMGtkgmk= github.com/milvus-io/pulsar-client-go v0.6.8 h1:fZdZH73aPRszu2fazyeeahQEz34tyn1Pt9EkqJmV100= github.com/milvus-io/pulsar-client-go v0.6.8/go.mod h1:oFIlYIk23tamkSLttw849qphmMIpHY8ztEBWDWJW+sc= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= diff --git a/internal/indexcoord/index_coord.go b/internal/indexcoord/index_coord.go index 3eb8bece18..259ea40691 100644 --- a/internal/indexcoord/index_coord.go +++ b/internal/indexcoord/index_coord.go @@ -623,10 +623,8 @@ func (i *IndexCoord) completeIndexInfo(indexInfo *indexpb.IndexInfo, indexID int indexInfo.IndexStateFailReason = indexStateCnt.FailReason case indexStateCnt.Finished == allCnt: indexInfo.State = commonpb.IndexState_Finished - indexInfo.IndexedRows = i.metaTable.GetIndexBuildProgress(indexID, segIDs) default: indexInfo.State = commonpb.IndexState_InProgress - indexInfo.IndexedRows = i.metaTable.GetIndexBuildProgress(indexID, segIDs) } log.Info("IndexCoord completeIndexInfo success", zap.Int64("collID", collectionID), @@ -667,51 +665,31 @@ func (i *IndexCoord) GetIndexBuildProgress(ctx context.Context, req *indexpb.Get }, }, nil } - - flushSegments, err := i.dataCoordClient.GetFlushedSegments(ctx, &datapb.GetFlushedSegmentsRequest{ - CollectionID: req.CollectionID, - PartitionID: -1, - IncludeUnhealthy: false, - }) - if err != nil { - return &indexpb.GetIndexBuildProgressResponse{ - Status: &commonpb.Status{ - ErrorCode: commonpb.ErrorCode_UnexpectedError, - }, - }, err - } - - resp, err := i.dataCoordClient.ListSegmentsInfo(ctx, &datapb.ListSegmentsInfoRequest{ - SegmentIDs: flushSegments.GetSegments(), - IncludeUnHealthy: true, - }) - if err != nil { - return &indexpb.GetIndexBuildProgressResponse{ - Status: &commonpb.Status{ - ErrorCode: commonpb.ErrorCode_UnexpectedError, - }, - }, err - } - totalRows, indexRows := int64(0), int64(0) - - for _, seg := range resp.Infos { - totalRows += seg.NumOfRows - } - - for indexID := range indexID2CreateTs { - indexRows = i.metaTable.GetIndexBuildProgress(indexID, flushSegments.Segments) + indexID, createTime := int64(0), uint64(0) + for id := range indexID2CreateTs { + indexID = id + createTime = indexID2CreateTs[id] break } - + totalRows, indexedRows, pendingIndexRows, _, err := i.getIndexedStats(ctx, req.GetCollectionID(), indexID, createTime) + if err != nil { + return &indexpb.GetIndexBuildProgressResponse{ + Status: &commonpb.Status{ + ErrorCode: commonpb.ErrorCode_UnexpectedError, + Reason: err.Error(), + }, + }, nil + } log.Info("IndexCoord get index build progress success", zap.Int64("collID", req.CollectionID), - zap.Int64("totalRows", totalRows), zap.Int64("indexRows", indexRows), - zap.Int("seg num", len(flushSegments.Segments))) + zap.Int64("totalRows", totalRows), zap.Int64("indexRows", indexedRows), + zap.Int64("pendingIndexRows", pendingIndexRows)) return &indexpb.GetIndexBuildProgressResponse{ Status: &commonpb.Status{ ErrorCode: commonpb.ErrorCode_Success, }, - IndexedRows: indexRows, - TotalRows: totalRows, + IndexedRows: indexedRows, + TotalRows: totalRows, + PendingIndexRows: pendingIndexRows, }, nil } @@ -839,6 +817,72 @@ func (i *IndexCoord) GetIndexInfos(ctx context.Context, req *indexpb.GetIndexInf return ret, nil } +func (i *IndexCoord) getIndexedStats(ctx context.Context, collID, indexID UniqueID, createTs uint64) (int64, int64, int64, []UniqueID, error) { + totalRows, indexedRows, pendingIndexRows := int64(0), int64(0), int64(0) + segmentsToCheck := make([]UniqueID, 0) + // The total rows of all indexes should be based on the current perspective + flushSegmentsResp, err := i.dataCoordClient.GetFlushedSegments(ctx, &datapb.GetFlushedSegmentsRequest{ + CollectionID: collID, + PartitionID: -1, + IncludeUnhealthy: false, + }) + if err != nil { + return totalRows, indexedRows, pendingIndexRows, segmentsToCheck, err + } + if flushSegmentsResp.GetStatus().GetErrorCode() != commonpb.ErrorCode_Success { + return totalRows, indexedRows, pendingIndexRows, segmentsToCheck, fmt.Errorf(flushSegmentsResp.GetStatus().GetReason()) + } + + segInfoResp, err := i.dataCoordClient.ListSegmentsInfo(ctx, &datapb.ListSegmentsInfoRequest{ + SegmentIDs: flushSegmentsResp.GetSegments(), + IncludeUnHealthy: true, + }) + if err != nil { + return totalRows, indexedRows, pendingIndexRows, segmentsToCheck, err + } + + if segInfoResp.GetStatus().GetErrorCode() != commonpb.ErrorCode_Success { + return totalRows, indexedRows, pendingIndexRows, segmentsToCheck, fmt.Errorf(segInfoResp.GetStatus().GetReason()) + } + + for _, seg := range segInfoResp.Infos { + totalRows += seg.NumOfRows + } + pendingIndexRows = totalRows - i.metaTable.GetIndexBuildProgress(indexID, flushSegmentsResp.GetSegments()) + + segViewResp, err := i.dataCoordClient.GetRecoveryInfoV2(ctx, &datapb.GetRecoveryInfoRequestV2{ + CollectionID: collID, + }) + if err != nil { + return totalRows, indexedRows, pendingIndexRows, segmentsToCheck, err + } + if segViewResp.Status.GetErrorCode() != commonpb.ErrorCode_Success { + return totalRows, indexedRows, pendingIndexRows, segmentsToCheck, fmt.Errorf(segViewResp.GetStatus().GetReason()) + } + + for _, channelInfo := range segViewResp.GetChannels() { + for _, segID := range channelInfo.GetFlushedSegmentIds() { + for _, seg := range segViewResp.GetSegments() { + if seg.GetID() == segID { + indexedRows += seg.GetNumOfRows() + break + } + } + } + } + + for _, seg := range segInfoResp.Infos { + if seg.GetStartPosition().GetTimestamp() <= createTs { + if seg.GetStartPosition() == nil { + log.Warn("nil start position", zap.Int64("segmentID", seg.GetID())) + } + segmentsToCheck = append(segmentsToCheck, seg.GetID()) + } + } + + return totalRows, indexedRows, pendingIndexRows, segmentsToCheck, nil +} + // DescribeIndex describe the index info of the collection. func (i *IndexCoord) DescribeIndex(ctx context.Context, req *indexpb.DescribeIndexRequest) (*indexpb.DescribeIndexResponse, error) { log.Info("IndexCoord DescribeIndex", zap.Int64("collectionID", req.CollectionID), zap.String("indexName", req.GetIndexName())) @@ -872,41 +916,6 @@ func (i *IndexCoord) DescribeIndex(ctx context.Context, req *indexpb.DescribeInd if err != nil { continue } - - // The total rows of all indexes should be based on the current perspective - flushedSegmentR, err := i.dataCoordClient.GetFlushedSegments(ctx, &datapb.GetFlushedSegmentsRequest{ - CollectionID: req.GetCollectionID(), - PartitionID: -1, - IncludeUnhealthy: false, - TimeBefore: createTime, - }) - if err != nil { - return ret, err - } - if flushedSegmentR.Status.GetErrorCode() != commonpb.ErrorCode_Success { - ret.Status.ErrorCode = flushedSegmentR.Status.GetErrorCode() - ret.Status.Reason = flushedSegmentR.Status.GetReason() - return ret, nil - } - - resp, err := i.dataCoordClient.ListSegmentsInfo(ctx, &datapb.ListSegmentsInfoRequest{ - SegmentIDs: flushedSegmentR.GetSegments(), - IncludeUnHealthy: true, - }) - if err != nil { - return ret, err - } - if resp.Status.GetErrorCode() != commonpb.ErrorCode_Success { - ret.Status.ErrorCode = resp.Status.GetErrorCode() - ret.Status.Reason = resp.Status.GetReason() - return ret, nil - } - - totalRows := int64(0) - for _, seg := range resp.Infos { - totalRows += seg.NumOfRows - } - indexInfo := &indexpb.IndexInfo{ CollectionID: index.CollectionID, FieldID: index.FieldID, @@ -916,10 +925,18 @@ func (i *IndexCoord) DescribeIndex(ctx context.Context, req *indexpb.DescribeInd IsAutoIndex: index.IsAutoIndex, UserIndexParams: index.UserIndexParams, IndexID: index.IndexID, - TotalRows: totalRows, } - if err := i.completeIndexInfo(indexInfo, indexID, flushedSegmentR.Segments); err != nil { + totalRows, indexedRows, pendingIndexRows, segmentsToCheck, err := i.getIndexedStats(ctx, index.CollectionID, indexID, createTime) + if err != nil { + ret.Status.ErrorCode = commonpb.ErrorCode_UnexpectedError + ret.Status.Reason = err.Error() + return ret, nil + } + indexInfo.TotalRows = totalRows + indexInfo.IndexedRows = indexedRows + indexInfo.PendingIndexRows = pendingIndexRows + if err := i.completeIndexInfo(indexInfo, indexID, segmentsToCheck); err != nil { log.Error("IndexCoord describe index fail", zap.Int64("collectionID", req.CollectionID), zap.String("indexName", req.IndexName), zap.Error(err)) return &indexpb.DescribeIndexResponse{ @@ -931,8 +948,9 @@ func (i *IndexCoord) DescribeIndex(ctx context.Context, req *indexpb.DescribeInd } log.Info("IndexCoord describe index success", zap.Int64("collectionID", req.CollectionID), zap.Int64("indexID", indexInfo.IndexID), zap.Int64("total rows", indexInfo.TotalRows), - zap.Int64("index rows", indexInfo.IndexedRows), zap.String("index state", indexInfo.State.String()), - zap.Int64s("segments", flushedSegmentR.Segments)) + zap.Int64("indexed rows", indexInfo.IndexedRows), zap.Int64("pending index rows", pendingIndexRows), + zap.String("index state", indexInfo.State.String()), + zap.Int64s("segments", segmentsToCheck)) indexInfos = append(indexInfos, indexInfo) } diff --git a/internal/indexcoord/index_coord_mock.go b/internal/indexcoord/index_coord_mock.go index acbba0a022..e9992bad9a 100644 --- a/internal/indexcoord/index_coord_mock.go +++ b/internal/indexcoord/index_coord_mock.go @@ -380,6 +380,7 @@ type DataCoordMock struct { CallAcquireSegmentLock func(ctx context.Context, req *datapb.AcquireSegmentLockRequest) (*commonpb.Status, error) CallReleaseSegmentLock func(ctx context.Context, req *datapb.ReleaseSegmentLockRequest) (*commonpb.Status, error) CallListSegmentsInfo func(ctx context.Context, req *datapb.ListSegmentsInfoRequest) (*datapb.ListSegmentsInfoResponse, error) + CallGetRecoveryInfoV2 func(ctx context.Context, req *datapb.GetRecoveryInfoRequestV2) (*datapb.GetRecoveryInfoResponseV2, error) } func (dcm *DataCoordMock) Init() error { @@ -423,6 +424,10 @@ func (dcm *DataCoordMock) ListSegmentsInfo(ctx context.Context, req *datapb.List return dcm.CallListSegmentsInfo(ctx, req) } +func (dcm *DataCoordMock) GetRecoveryInfoV2(ctx context.Context, req *datapb.GetRecoveryInfoRequestV2) (*datapb.GetRecoveryInfoResponseV2, error) { + return dcm.CallGetRecoveryInfoV2(ctx, req) +} + func NewDataCoordMock() *DataCoordMock { return &DataCoordMock{ CallInit: func() error { diff --git a/internal/indexcoord/index_coord_test.go b/internal/indexcoord/index_coord_test.go index 72b94d1dc0..a9cb4c1512 100644 --- a/internal/indexcoord/index_coord_test.go +++ b/internal/indexcoord/index_coord_test.go @@ -219,6 +219,51 @@ func testIndexCoord(t *testing.T) { Infos: segmentInfos, }, nil }, + CallGetRecoveryInfoV2: func(ctx context.Context, req *datapb.GetRecoveryInfoRequestV2) (*datapb.GetRecoveryInfoResponseV2, error) { + return &datapb.GetRecoveryInfoResponseV2{ + Status: &commonpb.Status{ + ErrorCode: commonpb.ErrorCode_Success, + }, + Channels: []*datapb.VchannelInfo{ + { + CollectionID: collID, + ChannelName: "", + SeekPosition: nil, + UnflushedSegments: nil, + FlushedSegments: nil, + DroppedSegments: nil, + UnflushedSegmentIds: nil, + FlushedSegmentIds: []UniqueID{segID}, + DroppedSegmentIds: nil, + }, + }, + Segments: []*datapb.SegmentInfo{ + { + ID: segID, + CollectionID: collID, + PartitionID: partID, + NumOfRows: 10240, + State: commonpb.SegmentState_Flushed, + StartPosition: &internalpb.MsgPosition{ + Timestamp: createTs, + }, + Binlogs: []*datapb.FieldBinlog{ + { + FieldID: fieldID, + Binlogs: []*datapb.Binlog{ + { + LogPath: "file1", + }, + { + LogPath: "file2", + }, + }, + }, + }, + }, + }, + }, nil + }, } err = ic.SetDataCoord(dcm) assert.Nil(t, err) @@ -405,7 +450,7 @@ func testIndexCoord(t *testing.T) { mockIndexs[222][indexIDTest] = progressIndex }) resp, err = ic.DescribeIndex(ctx, req) - assert.Error(t, err) + assert.NoError(t, err) assert.NotEqual(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode) dcm.CallGetFlushedSegment = func(ctx context.Context, req *datapb.GetFlushedSegmentsRequest) (*datapb.GetFlushedSegmentsResponse, error) { @@ -427,7 +472,7 @@ func testIndexCoord(t *testing.T) { } }) resp, err = ic.DescribeIndex(ctx, req) - assert.Error(t, err) + assert.NoError(t, err) assert.NotEqual(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode) dcm.SetFunc(func() { @@ -455,11 +500,47 @@ func testIndexCoord(t *testing.T) { }, nil } }) + dcm.CallGetFlushedSegment = getFlushedSegmentsMock([]int64{222, 333, 444}) + + dcm.SetFunc(func() { + dcm.CallGetRecoveryInfoV2 = func(ctx context.Context, req *datapb.GetRecoveryInfoRequestV2) (*datapb.GetRecoveryInfoResponseV2, error) { + return &datapb.GetRecoveryInfoResponseV2{}, errors.New("mock error") + } + }) + resp, err = ic.DescribeIndex(ctx, req) + assert.NoError(t, err) + assert.NotEqual(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode) + + dcm.SetFunc(func() { + dcm.CallGetRecoveryInfoV2 = func(ctx context.Context, req *datapb.GetRecoveryInfoRequestV2) (*datapb.GetRecoveryInfoResponseV2, error) { + return &datapb.GetRecoveryInfoResponseV2{ + Status: &commonpb.Status{ + ErrorCode: commonpb.ErrorCode_UnexpectedError, + Reason: "mock fail", + }, + }, nil + } + }) + resp, err = ic.DescribeIndex(ctx, req) + assert.NoError(t, err) + assert.NotEqual(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode) + + dcm.SetFunc(func() { + dcm.CallGetRecoveryInfoV2 = func(ctx context.Context, req *datapb.GetRecoveryInfoRequestV2) (*datapb.GetRecoveryInfoResponseV2, error) { + return &datapb.GetRecoveryInfoResponseV2{ + Channels: []*datapb.VchannelInfo{ + { + UnflushedSegmentIds: []int64{222, 333, 444}, + }, + }, + }, nil + } + }) resp, err = ic.DescribeIndex(ctx, req) assert.NoError(t, err) assert.Equal(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode) assert.Equal(t, commonpb.IndexState_InProgress, resp.IndexInfos[0].State) - assert.Equal(t, int64(2048), resp.IndexInfos[0].IndexedRows) + assert.Equal(t, int64(0), resp.IndexInfos[0].IndexedRows) assert.Equal(t, int64(2048*3), resp.IndexInfos[0].TotalRows) updateMockIndexs(func() { @@ -470,6 +551,62 @@ func testIndexCoord(t *testing.T) { assert.NoError(t, err) assert.Equal(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode) assert.Equal(t, commonpb.IndexState_Failed, resp.IndexInfos[0].State) + + dcm.SetFunc(func() { + dcm.CallListSegmentsInfo = func(ctx context.Context, req *datapb.ListSegmentsInfoRequest) (*datapb.ListSegmentsInfoResponse, error) { + return &datapb.ListSegmentsInfoResponse{ + Infos: []*datapb.SegmentInfo{ + {ID: 555, State: commonpb.SegmentState_Flushed, NumOfRows: 2048}, + {ID: 666, State: commonpb.SegmentState_Flushed, NumOfRows: 2048}, + {ID: 777, State: commonpb.SegmentState_Flushed, NumOfRows: 2048}, + }, + }, nil + } + }) + dcm.CallGetFlushedSegment = getFlushedSegmentsMock([]int64{555, 666, 777}) + dcm.SetFunc(func() { + dcm.CallGetRecoveryInfoV2 = func(ctx context.Context, req *datapb.GetRecoveryInfoRequestV2) (*datapb.GetRecoveryInfoResponseV2, error) { + return &datapb.GetRecoveryInfoResponseV2{ + Channels: []*datapb.VchannelInfo{ + { + FlushedSegmentIds: []int64{55, 66, 77}, + }, + }, + Segments: []*datapb.SegmentInfo{ + { + ID: 55, + CollectionID: collID, + NumOfRows: 2048, + State: commonpb.SegmentState_Flushed, + StartPosition: &internalpb.MsgPosition{Timestamp: createTs - 1}, + }, + { + ID: 66, + CollectionID: collID, + NumOfRows: 2048, + State: commonpb.SegmentState_Flushed, + StartPosition: &internalpb.MsgPosition{Timestamp: createTs - 1}, + }, + { + ID: 77, + CollectionID: collID, + NumOfRows: 2048, + State: commonpb.SegmentState_Flushed, + StartPosition: &internalpb.MsgPosition{Timestamp: createTs - 1}, + }, + }, + }, nil + } + }) + // indexed segment: 55, 66, 77 and compaction to 555, 666, 777, + // so total rows = 2048*3, indexed rows = 2048*3, pending index rows = 2048*3, state = InProgress + resp, err = ic.DescribeIndex(ctx, req) + assert.NoError(t, err) + assert.Equal(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode) + assert.Equal(t, commonpb.IndexState_InProgress, resp.IndexInfos[0].State) + assert.Equal(t, int64(2048*3), resp.IndexInfos[0].IndexedRows) + assert.Equal(t, int64(2048*3), resp.IndexInfos[0].TotalRows) + assert.Equal(t, int64(2048*3), resp.IndexInfos[0].PendingIndexRows) }) t.Run("DescribeIndex", func(t *testing.T) { diff --git a/internal/proto/index_coord.proto b/internal/proto/index_coord.proto index 4cf8e2fc58..c2128ca4ff 100644 --- a/internal/proto/index_coord.proto +++ b/internal/proto/index_coord.proto @@ -58,6 +58,7 @@ message IndexInfo { string index_state_fail_reason = 10; bool is_auto_index = 11; repeated common.KeyValuePair user_index_params = 12; + int64 pending_index_rows = 13; } message FieldIndex { @@ -192,6 +193,7 @@ message GetIndexBuildProgressResponse { common.Status status = 1; int64 indexed_rows = 2; int64 total_rows = 3; + int64 pending_index_rows = 4; } message StorageConfig { diff --git a/internal/proto/indexpb/index_coord.pb.go b/internal/proto/indexpb/index_coord.pb.go index e419fcb5b1..ef5f4c4de9 100644 --- a/internal/proto/indexpb/index_coord.pb.go +++ b/internal/proto/indexpb/index_coord.pb.go @@ -44,6 +44,7 @@ type IndexInfo struct { IndexStateFailReason string `protobuf:"bytes,10,opt,name=index_state_fail_reason,json=indexStateFailReason,proto3" json:"index_state_fail_reason,omitempty"` IsAutoIndex bool `protobuf:"varint,11,opt,name=is_auto_index,json=isAutoIndex,proto3" json:"is_auto_index,omitempty"` UserIndexParams []*commonpb.KeyValuePair `protobuf:"bytes,12,rep,name=user_index_params,json=userIndexParams,proto3" json:"user_index_params,omitempty"` + PendingIndexRows int64 `protobuf:"varint,13,opt,name=pending_index_rows,json=pendingIndexRows,proto3" json:"pending_index_rows,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -158,6 +159,13 @@ func (m *IndexInfo) GetUserIndexParams() []*commonpb.KeyValuePair { return nil } +func (m *IndexInfo) GetPendingIndexRows() int64 { + if m != nil { + return m.PendingIndexRows + } + return 0 +} + type FieldIndex struct { IndexInfo *IndexInfo `protobuf:"bytes,1,opt,name=index_info,json=indexInfo,proto3" json:"index_info,omitempty"` Deleted bool `protobuf:"varint,2,opt,name=deleted,proto3" json:"deleted,omitempty"` @@ -1312,6 +1320,7 @@ type GetIndexBuildProgressResponse struct { Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` IndexedRows int64 `protobuf:"varint,2,opt,name=indexed_rows,json=indexedRows,proto3" json:"indexed_rows,omitempty"` TotalRows int64 `protobuf:"varint,3,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"` + PendingIndexRows int64 `protobuf:"varint,4,opt,name=pending_index_rows,json=pendingIndexRows,proto3" json:"pending_index_rows,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1363,6 +1372,13 @@ func (m *GetIndexBuildProgressResponse) GetTotalRows() int64 { return 0 } +func (m *GetIndexBuildProgressResponse) GetPendingIndexRows() int64 { + if m != nil { + return m.PendingIndexRows + } + return 0 +} + type StorageConfig struct { Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` AccessKeyID string `protobuf:"bytes,2,opt,name=access_keyID,json=accessKeyID,proto3" json:"access_keyID,omitempty"` @@ -2038,146 +2054,147 @@ func init() { func init() { proto.RegisterFile("index_coord.proto", fileDescriptor_f9e019eb3fda53c2) } var fileDescriptor_f9e019eb3fda53c2 = []byte{ - // 2210 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x5b, 0x8f, 0x1b, 0x49, - 0xf5, 0x4f, 0xbb, 0xe7, 0xe2, 0x3e, 0x6d, 0xcf, 0xa5, 0x92, 0xfd, 0xff, 0x1d, 0x27, 0x21, 0x93, - 0xce, 0x26, 0x31, 0x48, 0x3b, 0x09, 0xb3, 0x2c, 0x5a, 0x10, 0x20, 0x4d, 0xc6, 0x9b, 0xc4, 0xc9, - 0x26, 0x1a, 0xda, 0xd1, 0x4a, 0xac, 0x90, 0x4c, 0xdb, 0x5d, 0x9e, 0xa9, 0x9d, 0x76, 0x97, 0xd3, - 0x55, 0x9d, 0x64, 0x82, 0x84, 0x78, 0xd9, 0x07, 0x56, 0x48, 0x48, 0x08, 0xc1, 0x17, 0xe0, 0x69, - 0x79, 0xe0, 0x9d, 0x17, 0xbe, 0x00, 0x2f, 0xf0, 0x11, 0xf8, 0x12, 0xbc, 0xa2, 0xba, 0x74, 0xbb, - 0xbb, 0xdd, 0x1e, 0x7b, 0x2e, 0xbc, 0xc0, 0x9b, 0xeb, 0xf4, 0xa9, 0xdb, 0x39, 0xbf, 0x3a, 0xbf, - 0x5f, 0x95, 0x61, 0x93, 0x84, 0x3e, 0x7e, 0xdb, 0x1b, 0x50, 0x1a, 0xf9, 0xdb, 0xe3, 0x88, 0x72, - 0x8a, 0xd0, 0x88, 0x04, 0xaf, 0x63, 0xa6, 0x5a, 0xdb, 0xf2, 0x7b, 0xb3, 0x36, 0xa0, 0xa3, 0x11, - 0x0d, 0x95, 0xad, 0x59, 0x63, 0x83, 0x43, 0x3c, 0xf2, 0x74, 0x6b, 0x8d, 0x84, 0x1c, 0x47, 0xa1, - 0x17, 0x24, 0x5f, 0xb3, 0xfd, 0x9d, 0x3f, 0x2f, 0x81, 0xd5, 0x11, 0x63, 0x74, 0xc2, 0x21, 0x45, - 0x0e, 0xd4, 0x06, 0x34, 0x08, 0xf0, 0x80, 0x13, 0x1a, 0x76, 0xda, 0x0d, 0x63, 0xcb, 0x68, 0x99, - 0x6e, 0xce, 0x86, 0x1a, 0xb0, 0x3a, 0x24, 0x38, 0xf0, 0x3b, 0xed, 0x46, 0x45, 0x7e, 0x4e, 0x9a, - 0xe8, 0x06, 0x80, 0x5a, 0x6e, 0xe8, 0x8d, 0x70, 0xc3, 0xdc, 0x32, 0x5a, 0x96, 0x6b, 0x49, 0xcb, - 0x0b, 0x6f, 0x84, 0x45, 0x47, 0xd9, 0xe8, 0xb4, 0x1b, 0x4b, 0xaa, 0xa3, 0x6e, 0xa2, 0x87, 0x60, - 0xf3, 0xe3, 0x31, 0xee, 0x8d, 0xbd, 0xc8, 0x1b, 0xb1, 0xc6, 0xf2, 0x96, 0xd9, 0xb2, 0x77, 0x6e, - 0x6d, 0xe7, 0x36, 0xaa, 0x77, 0xf8, 0x0c, 0x1f, 0x7f, 0xe6, 0x05, 0x31, 0xde, 0xf7, 0x48, 0xe4, - 0x82, 0xe8, 0xb5, 0x2f, 0x3b, 0xa1, 0x36, 0xd4, 0xd4, 0xe4, 0x7a, 0x90, 0x95, 0x45, 0x07, 0xb1, - 0x65, 0x37, 0x3d, 0xca, 0x2d, 0x3d, 0x0a, 0xf6, 0x7b, 0x11, 0x7d, 0xc3, 0x1a, 0xab, 0x72, 0xa1, - 0xb6, 0xb6, 0xb9, 0xf4, 0x0d, 0x13, 0xbb, 0xe4, 0x94, 0x7b, 0x81, 0x72, 0xa8, 0x4a, 0x07, 0x4b, - 0x5a, 0xe4, 0xe7, 0x8f, 0x60, 0x99, 0x71, 0x8f, 0xe3, 0x86, 0xb5, 0x65, 0xb4, 0xd6, 0x76, 0x6e, - 0x96, 0x2e, 0x40, 0x46, 0xbc, 0x2b, 0xdc, 0x5c, 0xe5, 0x8d, 0x3e, 0x82, 0xff, 0x57, 0xcb, 0x97, - 0xcd, 0xde, 0xd0, 0x23, 0x41, 0x2f, 0xc2, 0x1e, 0xa3, 0x61, 0x03, 0x64, 0x20, 0xaf, 0x90, 0xb4, - 0xcf, 0x23, 0x8f, 0x04, 0xae, 0xfc, 0x86, 0x1c, 0xa8, 0x13, 0xd6, 0xf3, 0x62, 0x4e, 0x7b, 0xf2, - 0x7b, 0xc3, 0xde, 0x32, 0x5a, 0x55, 0xd7, 0x26, 0x6c, 0x37, 0xe6, 0x54, 0x4e, 0x83, 0x9e, 0xc3, - 0x66, 0xcc, 0x70, 0xd4, 0xcb, 0x85, 0xa7, 0xb6, 0x68, 0x78, 0xd6, 0x45, 0xdf, 0xce, 0x24, 0x44, - 0xce, 0x97, 0x06, 0xc0, 0x23, 0x99, 0x71, 0x39, 0xfa, 0x0f, 0x92, 0xa4, 0x93, 0x70, 0x48, 0x25, - 0x60, 0xec, 0x9d, 0x1b, 0xdb, 0xd3, 0x18, 0xdd, 0x4e, 0x51, 0xa6, 0x31, 0x21, 0x01, 0xd7, 0x80, - 0x55, 0x1f, 0x07, 0x98, 0x63, 0x5f, 0x82, 0xa9, 0xea, 0x26, 0x4d, 0x74, 0x13, 0xec, 0x41, 0x84, - 0x45, 0x2c, 0x38, 0xd1, 0x68, 0x5a, 0x72, 0x41, 0x99, 0x5e, 0x92, 0x11, 0x76, 0xbe, 0x5c, 0x82, - 0x5a, 0x17, 0x1f, 0x8c, 0x70, 0xc8, 0xd5, 0x4a, 0x16, 0x01, 0xef, 0x16, 0xd8, 0x63, 0x2f, 0xe2, - 0x44, 0xbb, 0x28, 0x00, 0x67, 0x4d, 0xe8, 0x3a, 0x58, 0x4c, 0x8f, 0xda, 0x96, 0xb3, 0x9a, 0xee, - 0xc4, 0x80, 0xae, 0x42, 0x35, 0x8c, 0x47, 0x2a, 0xf5, 0x1a, 0xc4, 0x61, 0x3c, 0x92, 0x89, 0xcf, - 0xc0, 0x7b, 0x39, 0x0f, 0xef, 0x06, 0xac, 0xf6, 0x63, 0x22, 0x4f, 0xcc, 0x8a, 0xfa, 0xa2, 0x9b, - 0xe8, 0xff, 0x60, 0x25, 0xa4, 0x3e, 0xee, 0xb4, 0x35, 0xd0, 0x74, 0x0b, 0xdd, 0x86, 0xba, 0x0a, - 0xea, 0x6b, 0x1c, 0x31, 0x42, 0x43, 0x0d, 0x33, 0x85, 0xcd, 0xcf, 0x94, 0xed, 0xac, 0x48, 0xbb, - 0x09, 0xf6, 0x34, 0xba, 0x60, 0x38, 0xc1, 0xd4, 0x5d, 0x58, 0x57, 0x93, 0x0f, 0x49, 0x80, 0x7b, - 0x47, 0xf8, 0x98, 0x35, 0xec, 0x2d, 0xb3, 0x65, 0xb9, 0x6a, 0x4d, 0x8f, 0x48, 0x80, 0x9f, 0xe1, - 0x63, 0x96, 0xcd, 0x5d, 0xed, 0xc4, 0xdc, 0xd5, 0x8b, 0xb9, 0x43, 0x77, 0x60, 0x8d, 0xe1, 0x88, - 0x78, 0x01, 0x79, 0x87, 0x7b, 0x8c, 0xbc, 0xc3, 0x8d, 0x35, 0xe9, 0x53, 0x4f, 0xad, 0x5d, 0xf2, - 0x0e, 0x8b, 0x30, 0xbc, 0x89, 0x08, 0xc7, 0xbd, 0x43, 0x2f, 0xf4, 0xe9, 0x70, 0xd8, 0x58, 0x97, - 0xf3, 0xd4, 0xa4, 0xf1, 0x89, 0xb2, 0x39, 0x7f, 0x30, 0xe0, 0xb2, 0x8b, 0x0f, 0x08, 0xe3, 0x38, - 0x7a, 0x41, 0x7d, 0xec, 0xe2, 0x57, 0x31, 0x66, 0x1c, 0x3d, 0x80, 0xa5, 0xbe, 0xc7, 0xb0, 0x86, - 0xe4, 0xf5, 0xd2, 0xe8, 0x3c, 0x67, 0x07, 0x0f, 0x3d, 0x86, 0x5d, 0xe9, 0x89, 0xbe, 0x0b, 0xab, - 0x9e, 0xef, 0x47, 0x98, 0x31, 0x09, 0x8c, 0x59, 0x9d, 0x76, 0x95, 0x8f, 0x9b, 0x38, 0x67, 0xb2, - 0x68, 0x66, 0xb3, 0xe8, 0xfc, 0xc6, 0x80, 0x2b, 0xf9, 0x95, 0xb1, 0x31, 0x0d, 0x19, 0x46, 0x1f, - 0xc2, 0x8a, 0xc8, 0x45, 0xcc, 0xf4, 0xe2, 0xae, 0x95, 0xce, 0xd3, 0x95, 0x2e, 0xae, 0x76, 0x15, - 0x45, 0x92, 0x84, 0x84, 0x27, 0x07, 0x58, 0xad, 0xf0, 0x56, 0xf1, 0xa4, 0xe9, 0x52, 0xdf, 0x09, - 0x09, 0x57, 0xe7, 0xd5, 0x05, 0x92, 0xfe, 0x76, 0x7e, 0x02, 0x57, 0x1e, 0x63, 0x9e, 0xc1, 0x84, - 0x8e, 0xd5, 0x22, 0x47, 0x27, 0x5f, 0xdd, 0x2b, 0x85, 0xea, 0xee, 0xfc, 0xd1, 0x80, 0xf7, 0x0a, - 0x63, 0x9f, 0x67, 0xb7, 0x29, 0xb8, 0x2b, 0xe7, 0x01, 0xb7, 0x59, 0x04, 0xb7, 0xf3, 0x4b, 0x03, - 0xae, 0x3d, 0xc6, 0x3c, 0x5b, 0x38, 0x2e, 0x38, 0x12, 0xe8, 0x1b, 0x00, 0x69, 0xc1, 0x60, 0x0d, - 0x73, 0xcb, 0x6c, 0x99, 0x6e, 0xc6, 0xe2, 0xfc, 0xca, 0x80, 0xcd, 0xa9, 0xf9, 0xf3, 0x75, 0xc7, - 0x28, 0xd6, 0x9d, 0xff, 0x54, 0x38, 0x7e, 0x6b, 0xc0, 0xf5, 0xf2, 0x70, 0x9c, 0x27, 0x79, 0x3f, - 0x54, 0x9d, 0xb0, 0x40, 0xa9, 0xa0, 0x99, 0x3b, 0x65, 0x7c, 0x30, 0x3d, 0xa7, 0xee, 0xe4, 0xfc, - 0xdd, 0x04, 0xb4, 0x27, 0x8b, 0x85, 0xfc, 0x78, 0x9a, 0xd4, 0x9c, 0x59, 0x9c, 0x14, 0x24, 0xc8, - 0xd2, 0x45, 0x48, 0x90, 0xe5, 0x33, 0x49, 0x90, 0xeb, 0x60, 0x89, 0xaa, 0xc9, 0xb8, 0x37, 0x1a, - 0x4b, 0xbe, 0x58, 0x72, 0x27, 0x86, 0x69, 0xc2, 0x5f, 0x5d, 0x90, 0xf0, 0xab, 0x67, 0x25, 0x7c, - 0xb4, 0x07, 0x75, 0x19, 0xc4, 0xb6, 0xc7, 0xbd, 0x97, 0xc7, 0xe3, 0x84, 0x6f, 0x0a, 0x24, 0xaf, - 0x35, 0x67, 0xe2, 0xe4, 0xe6, 0xfb, 0x38, 0x6f, 0xe1, 0x72, 0x52, 0x1d, 0xa4, 0x06, 0x38, 0x45, - 0x4e, 0xf3, 0xe7, 0xa9, 0x52, 0x3c, 0x4f, 0x73, 0x32, 0xeb, 0xfc, 0xab, 0x02, 0x9b, 0x9d, 0x84, - 0xb8, 0xf6, 0x3d, 0x7e, 0x28, 0x85, 0xc7, 0xc9, 0xc7, 0x6d, 0x36, 0x8c, 0x32, 0x2c, 0x6f, 0xce, - 0x64, 0xf9, 0xa5, 0x3c, 0xcb, 0xe7, 0x17, 0xb8, 0x5c, 0x84, 0xde, 0xc5, 0x28, 0xd7, 0x16, 0x6c, - 0x64, 0x58, 0x7b, 0xec, 0xf1, 0x43, 0xa1, 0x5e, 0x05, 0x6d, 0xaf, 0x91, 0xec, 0xee, 0x19, 0xba, - 0x07, 0xeb, 0x29, 0xcd, 0xfa, 0x8a, 0x7d, 0xab, 0x12, 0x66, 0x13, 0x4e, 0xf6, 0x13, 0xfa, 0xcd, - 0xab, 0x10, 0xab, 0x44, 0x85, 0x64, 0x15, 0x11, 0xe4, 0x14, 0x91, 0xf3, 0x17, 0x03, 0xec, 0xf4, - 0x94, 0x2f, 0x78, 0xbb, 0xc8, 0xe5, 0xa5, 0x52, 0xcc, 0xcb, 0x2d, 0xa8, 0xe1, 0xd0, 0xeb, 0x07, - 0x58, 0x83, 0xdf, 0x54, 0xe0, 0x57, 0x36, 0x05, 0xfe, 0x47, 0x60, 0x4f, 0xf4, 0x68, 0x72, 0x90, - 0xef, 0xcc, 0x14, 0xa4, 0x59, 0x50, 0xb8, 0x90, 0x0a, 0x53, 0xe6, 0x7c, 0x55, 0x99, 0x70, 0xa5, - 0x42, 0xec, 0x79, 0x2a, 0xe2, 0x4f, 0xa1, 0xa6, 0x77, 0xa1, 0x74, 0xb2, 0xaa, 0x8b, 0xdf, 0x2b, - 0x5b, 0x56, 0xd9, 0xa4, 0xdb, 0x99, 0x30, 0x7e, 0x12, 0xf2, 0xe8, 0xd8, 0xb5, 0xd9, 0xc4, 0xd2, - 0xec, 0xc1, 0x46, 0xd1, 0x01, 0x6d, 0x80, 0x79, 0x84, 0x8f, 0x75, 0x8c, 0xc5, 0x4f, 0xc1, 0x21, - 0xaf, 0x05, 0x76, 0xb4, 0x74, 0xb8, 0x79, 0x62, 0x51, 0x1e, 0x52, 0x57, 0x79, 0x7f, 0xbf, 0xf2, - 0xb1, 0xe1, 0xfc, 0xce, 0x80, 0x8d, 0x76, 0x44, 0xc7, 0xa7, 0xae, 0xc7, 0x0e, 0xd4, 0x32, 0xe2, - 0x3a, 0x39, 0xbd, 0x39, 0xdb, 0xbc, 0xca, 0x7c, 0x15, 0xaa, 0x7e, 0x44, 0xc7, 0x3d, 0x2f, 0x08, - 0xe4, 0xc1, 0x12, 0x3a, 0x33, 0xa2, 0xe3, 0xdd, 0x20, 0x10, 0x72, 0xa6, 0x8d, 0xd9, 0x20, 0x22, - 0xfd, 0xd3, 0x33, 0xc5, 0x1c, 0x39, 0xf3, 0x6b, 0x03, 0xde, 0x2b, 0x8c, 0x7d, 0x9e, 0xfc, 0xff, - 0x28, 0x8f, 0x4a, 0x95, 0xfe, 0x39, 0xd7, 0xa4, 0x2c, 0x1a, 0x3d, 0x49, 0xd3, 0xf2, 0xdb, 0x43, - 0x51, 0x55, 0xf6, 0x23, 0x7a, 0x20, 0x45, 0xe8, 0xc5, 0xed, 0xf8, 0xf7, 0x06, 0xdc, 0x98, 0x31, - 0xc7, 0x79, 0x76, 0x5e, 0xbc, 0x51, 0x57, 0xe6, 0xdd, 0xa8, 0xcd, 0xc2, 0x8d, 0xda, 0xf9, 0x53, - 0x05, 0xea, 0x5d, 0x4e, 0x23, 0xef, 0x00, 0xef, 0xd1, 0x70, 0x48, 0x0e, 0x44, 0xa9, 0x4d, 0x84, - 0xba, 0x21, 0xb7, 0x91, 0x4a, 0xf1, 0x5b, 0x50, 0xf3, 0x06, 0x03, 0xcc, 0x98, 0xb8, 0xb7, 0xe8, - 0x0a, 0x62, 0xb9, 0xb6, 0xb2, 0x3d, 0x13, 0x26, 0xf4, 0x2d, 0xd8, 0x64, 0x78, 0x10, 0x61, 0xde, - 0x9b, 0x78, 0x6a, 0xd4, 0xad, 0xab, 0x0f, 0xbb, 0x89, 0xb7, 0x50, 0xf6, 0x31, 0xc3, 0xdd, 0xee, - 0xa7, 0x1a, 0x79, 0xba, 0x25, 0x74, 0x55, 0x3f, 0x1e, 0x1c, 0x61, 0x9e, 0x2d, 0xe9, 0xa0, 0x4c, - 0x12, 0xb4, 0xd7, 0xc0, 0x8a, 0x28, 0xe5, 0xb2, 0x0e, 0x4b, 0x12, 0xb7, 0xdc, 0xaa, 0x30, 0x88, - 0x52, 0xa3, 0x47, 0xed, 0xec, 0x3e, 0xd7, 0xe4, 0xad, 0x5b, 0xe2, 0x72, 0xda, 0xd9, 0x7d, 0xfe, - 0x49, 0xe8, 0x8f, 0x29, 0x09, 0xb9, 0x2c, 0xca, 0x96, 0x9b, 0x35, 0x89, 0xed, 0x31, 0x15, 0x89, - 0x1e, 0x4f, 0x98, 0xd8, 0x72, 0x6d, 0x6d, 0x93, 0x44, 0xfb, 0x4f, 0x13, 0x36, 0x94, 0x78, 0x7a, - 0x4a, 0xfb, 0x09, 0x3c, 0xae, 0x83, 0x35, 0x08, 0x62, 0x71, 0x0f, 0xd1, 0xd8, 0xb0, 0xdc, 0x89, - 0x41, 0x44, 0x24, 0x4b, 0x1d, 0x11, 0x1e, 0x92, 0xb7, 0x3a, 0x72, 0xeb, 0x13, 0xee, 0x90, 0xe6, - 0x2c, 0xcb, 0x99, 0x53, 0x2c, 0xe7, 0x7b, 0xdc, 0xd3, 0xd4, 0xb3, 0x24, 0xa9, 0xc7, 0x12, 0x16, - 0xc5, 0x3a, 0x53, 0x64, 0xb2, 0x5c, 0x42, 0x26, 0x19, 0x76, 0x5d, 0xc9, 0xb3, 0x6b, 0x1e, 0xbc, - 0xab, 0xc5, 0x22, 0xf1, 0x04, 0xd6, 0x92, 0xc0, 0x0c, 0x24, 0x46, 0x64, 0xf4, 0x4a, 0xee, 0x47, - 0xb2, 0xc8, 0x65, 0xc1, 0xe4, 0xd6, 0x59, 0x0e, 0x5b, 0x45, 0x36, 0xb6, 0xce, 0xc4, 0xc6, 0x05, - 0x39, 0x09, 0x67, 0x91, 0x93, 0x59, 0x66, 0xb5, 0xf3, 0xcc, 0xfa, 0x29, 0x6c, 0xfc, 0x38, 0xc6, - 0xd1, 0xf1, 0x53, 0xda, 0x67, 0x8b, 0xe5, 0xb8, 0x09, 0x55, 0x9d, 0xa8, 0xa4, 0x08, 0xa7, 0x6d, - 0xe7, 0x1f, 0x06, 0xd4, 0xe5, 0xb1, 0x7f, 0xe9, 0xb1, 0xa3, 0xe4, 0x59, 0x26, 0xc9, 0xb2, 0x91, - 0xcf, 0xf2, 0x19, 0x2f, 0x22, 0x25, 0x6f, 0x0a, 0x66, 0xd9, 0x9b, 0x42, 0x89, 0x36, 0x59, 0x2a, - 0xd5, 0x26, 0x85, 0x9b, 0xcd, 0xf2, 0xd4, 0xcd, 0xe6, 0x6b, 0x03, 0x36, 0x33, 0x31, 0x3a, 0x4f, - 0x09, 0xcb, 0x45, 0xb6, 0x52, 0x8c, 0xec, 0xc3, 0x7c, 0x69, 0x37, 0xcb, 0x52, 0x9d, 0x29, 0xed, - 0x49, 0x8c, 0x73, 0xe5, 0xfd, 0x19, 0xac, 0x0b, 0x7a, 0xbd, 0x98, 0x74, 0xfe, 0xcd, 0x80, 0xd5, - 0xa7, 0xb4, 0x2f, 0x13, 0x99, 0xc5, 0x90, 0x91, 0x7f, 0xaf, 0xda, 0x00, 0xd3, 0x27, 0x23, 0x5d, - 0x8f, 0xc5, 0x4f, 0x71, 0xc6, 0x18, 0xf7, 0x22, 0x3e, 0x79, 0x71, 0x13, 0xe2, 0x4b, 0x58, 0xe4, - 0xa3, 0xcd, 0x55, 0xa8, 0xe2, 0xd0, 0x57, 0x1f, 0xb5, 0xc2, 0xc5, 0xa1, 0x2f, 0x3f, 0x5d, 0xcc, - 0xcd, 0xe7, 0x0a, 0x2c, 0x8f, 0xe9, 0xe4, 0x95, 0x4c, 0x35, 0x9c, 0x2b, 0x80, 0x1e, 0x63, 0xfe, - 0x94, 0xf6, 0x45, 0x56, 0x92, 0xf0, 0x38, 0x7f, 0xad, 0xc8, 0x0b, 0xc5, 0xc4, 0x7c, 0x9e, 0x04, - 0x3b, 0x50, 0x57, 0x04, 0xf4, 0x05, 0xed, 0xf7, 0xc2, 0x38, 0x09, 0x8a, 0x2d, 0x8d, 0x4f, 0x69, - 0xff, 0x45, 0x3c, 0x42, 0x1f, 0xc0, 0x65, 0x12, 0xf6, 0xc6, 0x9a, 0x13, 0x53, 0x4f, 0x15, 0xa5, - 0x0d, 0x12, 0x26, 0x6c, 0xa9, 0xdd, 0xef, 0xc2, 0x3a, 0x0e, 0x5f, 0xc5, 0x38, 0xc6, 0xa9, 0xab, - 0x8a, 0x59, 0x5d, 0x9b, 0xb5, 0x9f, 0xe0, 0x3e, 0x8f, 0x1d, 0xf5, 0x58, 0x40, 0x39, 0xd3, 0x35, - 0xd1, 0x12, 0x96, 0xae, 0x30, 0xa0, 0x8f, 0xc1, 0x12, 0xdd, 0x15, 0xb4, 0xd4, 0xc5, 0xe0, 0x5a, - 0x19, 0xb4, 0x74, 0xbe, 0xdd, 0xea, 0x17, 0xea, 0x07, 0x13, 0x07, 0x44, 0x4b, 0x65, 0x9f, 0xb0, - 0x23, 0xcd, 0x34, 0xa0, 0x4c, 0x6d, 0xc2, 0x8e, 0x76, 0xbe, 0x02, 0x00, 0x89, 0xc8, 0x3d, 0x4a, - 0x23, 0x1f, 0x05, 0x32, 0xcc, 0x7b, 0x74, 0x34, 0xa6, 0x21, 0x0e, 0xb9, 0x3c, 0xbd, 0x0c, 0x6d, - 0xe7, 0x27, 0xd3, 0x8d, 0x69, 0x47, 0x9d, 0x96, 0xe6, 0xfb, 0xa5, 0xfe, 0x05, 0x67, 0xe7, 0x12, - 0x7a, 0x25, 0xc5, 0xb5, 0x68, 0x12, 0xc6, 0xc9, 0x80, 0xed, 0x1d, 0x7a, 0x61, 0x88, 0x03, 0xb4, - 0x33, 0xe3, 0x3d, 0xab, 0xcc, 0x39, 0x99, 0xf3, 0x76, 0xe9, 0x9c, 0x5d, 0x1e, 0x91, 0xf0, 0x20, - 0xc1, 0x85, 0x73, 0x09, 0xbd, 0x04, 0x3b, 0xf3, 0xa8, 0x80, 0xee, 0x96, 0x85, 0x71, 0xfa, 0xd5, - 0xa1, 0x79, 0x12, 0x80, 0x9c, 0x4b, 0x68, 0x08, 0xf5, 0xdc, 0xab, 0x17, 0x6a, 0x9d, 0xa4, 0xe9, - 0xb3, 0x4f, 0x4d, 0xcd, 0x6f, 0x2e, 0xe0, 0x99, 0xae, 0xfe, 0xe7, 0x2a, 0x60, 0x53, 0xcf, 0x46, - 0xf7, 0x67, 0x0c, 0x32, 0xeb, 0x81, 0xab, 0xf9, 0x60, 0xf1, 0x0e, 0xe9, 0xe4, 0xfe, 0x64, 0x93, - 0x0a, 0x5c, 0xf7, 0xe6, 0x5f, 0x5c, 0xd4, 0x6c, 0xad, 0x45, 0x6f, 0x38, 0xce, 0x25, 0xb4, 0x0f, - 0x56, 0x7a, 0xc7, 0x40, 0xef, 0x97, 0x75, 0x2c, 0x5e, 0x41, 0x16, 0x48, 0x4e, 0x4e, 0xc3, 0x97, - 0x27, 0xa7, 0xec, 0x0a, 0x51, 0x9e, 0x9c, 0xd2, 0x0b, 0x81, 0x73, 0x09, 0xfd, 0x62, 0xf2, 0xf4, - 0x99, 0x53, 0xce, 0xe8, 0xc1, 0x49, 0xdb, 0x2f, 0x13, 0xf2, 0xcd, 0x6f, 0x9f, 0xa2, 0x47, 0x06, - 0x1c, 0xa8, 0x7b, 0x48, 0xdf, 0x28, 0x05, 0x13, 0x47, 0x9e, 0x10, 0xfc, 0x25, 0x93, 0xeb, 0xb3, - 0x34, 0xed, 0x3a, 0x73, 0xf2, 0x13, 0x7a, 0xa4, 0x93, 0xf7, 0x00, 0x1e, 0x63, 0xfe, 0x1c, 0xf3, - 0x88, 0x0c, 0x58, 0xf1, 0x58, 0x4d, 0x0a, 0x86, 0x76, 0x48, 0xa6, 0xba, 0x37, 0xd7, 0x2f, 0x9d, - 0xa0, 0x0f, 0xf6, 0xde, 0x21, 0x1e, 0x1c, 0x3d, 0xc1, 0x5e, 0xc0, 0x0f, 0x51, 0x79, 0xcf, 0x8c, - 0xc7, 0x0c, 0xec, 0x95, 0x39, 0x26, 0x73, 0xec, 0x7c, 0xbd, 0xa2, 0xff, 0x06, 0x7d, 0x41, 0x7d, - 0xfc, 0xdf, 0x5f, 0x0b, 0xf7, 0xc1, 0x4a, 0xef, 0x08, 0xe5, 0x47, 0xad, 0x78, 0x85, 0x98, 0x77, - 0xd4, 0x3e, 0x07, 0x2b, 0x55, 0x5b, 0xe5, 0x23, 0x16, 0x05, 0x6b, 0xf3, 0xce, 0x1c, 0xaf, 0x74, - 0xb5, 0x2f, 0xa0, 0x9a, 0xa8, 0x23, 0x74, 0x7b, 0x56, 0x5d, 0xc8, 0x8e, 0x3c, 0x67, 0xad, 0x3f, - 0x03, 0x3b, 0x23, 0x1d, 0xca, 0x99, 0x60, 0x5a, 0x72, 0x34, 0xef, 0xcd, 0xf5, 0xfb, 0xdf, 0x38, - 0x90, 0x0f, 0xbf, 0xf3, 0xf9, 0xce, 0x01, 0xe1, 0x87, 0x71, 0x5f, 0x44, 0xf6, 0xbe, 0xf2, 0xfc, - 0x80, 0x50, 0xfd, 0xeb, 0x7e, 0xb2, 0xca, 0xfb, 0x72, 0xa4, 0xfb, 0x32, 0x4e, 0xe3, 0x7e, 0x7f, - 0x45, 0x36, 0x3f, 0xfc, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xad, 0x68, 0x99, 0x5e, 0xd3, 0x20, - 0x00, 0x00, + // 2236 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49, + 0x15, 0x4f, 0xbb, 0x3d, 0x33, 0xee, 0xd7, 0xf6, 0x7c, 0xd4, 0x66, 0xc1, 0x71, 0x12, 0x32, 0xe9, + 0x6c, 0x92, 0x01, 0xb1, 0x93, 0x30, 0xcb, 0xa2, 0x05, 0x01, 0xd2, 0x64, 0xbc, 0x49, 0x9c, 0x6c, + 0xa2, 0xa1, 0x1d, 0xad, 0xc4, 0x0a, 0xc9, 0xb4, 0xdd, 0xe5, 0x99, 0xda, 0x69, 0x77, 0x39, 0x5d, + 0xd5, 0x49, 0x26, 0x48, 0x88, 0xcb, 0x1e, 0x58, 0x21, 0x21, 0x21, 0x24, 0xfe, 0x01, 0x4e, 0xcb, + 0x7f, 0xc0, 0x85, 0x0b, 0x47, 0x2e, 0x70, 0xe7, 0xc2, 0x3f, 0xc1, 0x15, 0xd5, 0x47, 0xb7, 0xbb, + 0xdb, 0xed, 0xb1, 0xe7, 0x83, 0x0b, 0xdc, 0x5c, 0xaf, 0x5f, 0x7d, 0xbd, 0xf7, 0x7b, 0xef, 0xf7, + 0x5e, 0x19, 0x36, 0x48, 0xe8, 0xe3, 0x37, 0xbd, 0x01, 0xa5, 0x91, 0xbf, 0x3d, 0x8e, 0x28, 0xa7, + 0x08, 0x8d, 0x48, 0xf0, 0x2a, 0x66, 0x6a, 0xb4, 0x2d, 0xbf, 0xb7, 0xea, 0x03, 0x3a, 0x1a, 0xd1, + 0x50, 0xc9, 0x5a, 0x75, 0x36, 0x38, 0xc4, 0x23, 0x4f, 0x8f, 0x56, 0x49, 0xc8, 0x71, 0x14, 0x7a, + 0x41, 0xf2, 0x35, 0x3b, 0xdf, 0xf9, 0x67, 0x15, 0xac, 0x8e, 0x58, 0xa3, 0x13, 0x0e, 0x29, 0x72, + 0xa0, 0x3e, 0xa0, 0x41, 0x80, 0x07, 0x9c, 0xd0, 0xb0, 0xd3, 0x6e, 0x1a, 0x9b, 0xc6, 0x96, 0xe9, + 0xe6, 0x64, 0xa8, 0x09, 0x2b, 0x43, 0x82, 0x03, 0xbf, 0xd3, 0x6e, 0x56, 0xe4, 0xe7, 0x64, 0x88, + 0xae, 0x03, 0xa8, 0xe3, 0x86, 0xde, 0x08, 0x37, 0xcd, 0x4d, 0x63, 0xcb, 0x72, 0x2d, 0x29, 0x79, + 0xee, 0x8d, 0xb0, 0x98, 0x28, 0x07, 0x9d, 0x76, 0xb3, 0xaa, 0x26, 0xea, 0x21, 0x7a, 0x00, 0x36, + 0x3f, 0x1e, 0xe3, 0xde, 0xd8, 0x8b, 0xbc, 0x11, 0x6b, 0x2e, 0x6d, 0x9a, 0x5b, 0xf6, 0xce, 0xcd, + 0xed, 0xdc, 0x45, 0xf5, 0x0d, 0x9f, 0xe2, 0xe3, 0x4f, 0xbd, 0x20, 0xc6, 0xfb, 0x1e, 0x89, 0x5c, + 0x10, 0xb3, 0xf6, 0xe5, 0x24, 0xd4, 0x86, 0xba, 0xda, 0x5c, 0x2f, 0xb2, 0xbc, 0xe8, 0x22, 0xb6, + 0x9c, 0xa6, 0x57, 0xb9, 0xa9, 0x57, 0xc1, 0x7e, 0x2f, 0xa2, 0xaf, 0x59, 0x73, 0x45, 0x1e, 0xd4, + 0xd6, 0x32, 0x97, 0xbe, 0x66, 0xe2, 0x96, 0x9c, 0x72, 0x2f, 0x50, 0x0a, 0x35, 0xa9, 0x60, 0x49, + 0x89, 0xfc, 0xfc, 0x21, 0x2c, 0x31, 0xee, 0x71, 0xdc, 0xb4, 0x36, 0x8d, 0xad, 0xd5, 0x9d, 0x1b, + 0xa5, 0x07, 0x90, 0x16, 0xef, 0x0a, 0x35, 0x57, 0x69, 0xa3, 0x0f, 0xe1, 0xeb, 0xea, 0xf8, 0x72, + 0xd8, 0x1b, 0x7a, 0x24, 0xe8, 0x45, 0xd8, 0x63, 0x34, 0x6c, 0x82, 0x34, 0xe4, 0x65, 0x92, 0xce, + 0x79, 0xe8, 0x91, 0xc0, 0x95, 0xdf, 0x90, 0x03, 0x0d, 0xc2, 0x7a, 0x5e, 0xcc, 0x69, 0x4f, 0x7e, + 0x6f, 0xda, 0x9b, 0xc6, 0x56, 0xcd, 0xb5, 0x09, 0xdb, 0x8d, 0x39, 0x95, 0xdb, 0xa0, 0x67, 0xb0, + 0x11, 0x33, 0x1c, 0xf5, 0x72, 0xe6, 0xa9, 0x2f, 0x6a, 0x9e, 0x35, 0x31, 0xb7, 0x93, 0x31, 0xd1, + 0xb7, 0x01, 0x8d, 0x71, 0xe8, 0x93, 0xf0, 0x40, 0xaf, 0x28, 0xed, 0xd0, 0x90, 0x76, 0x58, 0xd7, + 0x5f, 0xa4, 0xbe, 0x30, 0x87, 0xf3, 0x85, 0x01, 0xf0, 0x50, 0xe2, 0x43, 0x9e, 0xe5, 0x87, 0x09, + 0x44, 0x48, 0x38, 0xa4, 0x12, 0x5e, 0xf6, 0xce, 0xf5, 0xed, 0x69, 0x44, 0x6f, 0xa7, 0x98, 0xd4, + 0x08, 0x92, 0xf0, 0x6c, 0xc2, 0x8a, 0x8f, 0x03, 0xcc, 0xb1, 0x2f, 0xa1, 0x57, 0x73, 0x93, 0x21, + 0xba, 0x01, 0xf6, 0x20, 0xc2, 0xc2, 0x72, 0x9c, 0x68, 0xec, 0x55, 0x5d, 0x50, 0xa2, 0x17, 0x64, + 0x84, 0x9d, 0x2f, 0xaa, 0x50, 0xef, 0xe2, 0x83, 0x11, 0x0e, 0xb9, 0x3a, 0xc9, 0x22, 0x50, 0xdf, + 0x04, 0x7b, 0xec, 0x45, 0x9c, 0x68, 0x15, 0x05, 0xf7, 0xac, 0x08, 0x5d, 0x03, 0x8b, 0xe9, 0x55, + 0xdb, 0x72, 0x57, 0xd3, 0x9d, 0x08, 0xd0, 0x15, 0xa8, 0x85, 0xf1, 0x48, 0x19, 0x48, 0x43, 0x3e, + 0x8c, 0x47, 0x12, 0x26, 0x99, 0x60, 0x58, 0xca, 0x07, 0x43, 0x13, 0x56, 0xfa, 0x31, 0x91, 0xf1, + 0xb5, 0xac, 0xbe, 0xe8, 0x21, 0xfa, 0x1a, 0x2c, 0x87, 0xd4, 0xc7, 0x9d, 0xb6, 0x86, 0xa5, 0x1e, + 0xa1, 0x5b, 0xd0, 0x50, 0x46, 0x7d, 0x85, 0x23, 0x46, 0x68, 0xa8, 0x41, 0xa9, 0x90, 0xfc, 0xa9, + 0x92, 0x9d, 0x15, 0x97, 0x37, 0xc0, 0x9e, 0xc6, 0x22, 0x0c, 0x27, 0x08, 0xbc, 0x03, 0x6b, 0x6a, + 0xf3, 0x21, 0x09, 0x70, 0xef, 0x08, 0x1f, 0xb3, 0xa6, 0xbd, 0x69, 0x6e, 0x59, 0xae, 0x3a, 0xd3, + 0x43, 0x12, 0xe0, 0xa7, 0xf8, 0x98, 0x65, 0x7d, 0x57, 0x3f, 0xd1, 0x77, 0x8d, 0xa2, 0xef, 0xd0, + 0x6d, 0x58, 0x65, 0x38, 0x22, 0x5e, 0x40, 0xde, 0xe2, 0x1e, 0x23, 0x6f, 0x71, 0x73, 0x55, 0xea, + 0x34, 0x52, 0x69, 0x97, 0xbc, 0xc5, 0xc2, 0x0c, 0xaf, 0x23, 0xc2, 0x71, 0xef, 0xd0, 0x0b, 0x7d, + 0x3a, 0x1c, 0x36, 0xd7, 0xe4, 0x3e, 0x75, 0x29, 0x7c, 0xac, 0x64, 0xce, 0x1f, 0x0c, 0x78, 0xc7, + 0xc5, 0x07, 0x84, 0x71, 0x1c, 0x3d, 0xa7, 0x3e, 0x76, 0xf1, 0xcb, 0x18, 0x33, 0x8e, 0xee, 0x43, + 0xb5, 0xef, 0x31, 0xac, 0x21, 0x79, 0xad, 0xd4, 0x3a, 0xcf, 0xd8, 0xc1, 0x03, 0x8f, 0x61, 0x57, + 0x6a, 0xa2, 0xef, 0xc1, 0x8a, 0xe7, 0xfb, 0x11, 0x66, 0x4c, 0x02, 0x63, 0xd6, 0xa4, 0x5d, 0xa5, + 0xe3, 0x26, 0xca, 0x19, 0x2f, 0x9a, 0x59, 0x2f, 0x3a, 0xbf, 0x35, 0xe0, 0x72, 0xfe, 0x64, 0x6c, + 0x4c, 0x43, 0x86, 0xd1, 0x07, 0xb0, 0x2c, 0x7c, 0x11, 0x33, 0x7d, 0xb8, 0xab, 0xa5, 0xfb, 0x74, + 0xa5, 0x8a, 0xab, 0x55, 0x45, 0x4a, 0x25, 0x21, 0xe1, 0x49, 0xb8, 0xab, 0x13, 0xde, 0x2c, 0x46, + 0x9a, 0x26, 0x86, 0x4e, 0x48, 0xb8, 0x8a, 0x6e, 0x17, 0x48, 0xfa, 0xdb, 0xf9, 0x29, 0x5c, 0x7e, + 0x84, 0x79, 0x06, 0x13, 0xda, 0x56, 0x8b, 0x84, 0x4e, 0x9e, 0x0b, 0x2a, 0x05, 0x2e, 0x70, 0xfe, + 0x68, 0xc0, 0xbb, 0x85, 0xb5, 0xcf, 0x73, 0xdb, 0x14, 0xdc, 0x95, 0xf3, 0x80, 0xdb, 0x2c, 0x82, + 0xdb, 0xf9, 0x95, 0x01, 0x57, 0x1f, 0x61, 0x9e, 0x4d, 0x1c, 0x17, 0x6c, 0x09, 0xf4, 0x0d, 0x80, + 0x34, 0x61, 0xb0, 0xa6, 0xb9, 0x69, 0x6e, 0x99, 0x6e, 0x46, 0xe2, 0xfc, 0xda, 0x80, 0x8d, 0xa9, + 0xfd, 0xf3, 0x79, 0xc7, 0x28, 0xe6, 0x9d, 0xff, 0x96, 0x39, 0x7e, 0x67, 0xc0, 0xb5, 0x72, 0x73, + 0x9c, 0xc7, 0x79, 0x3f, 0x52, 0x93, 0xb0, 0x40, 0xa9, 0x20, 0xa5, 0xdb, 0x65, 0x7c, 0x30, 0xbd, + 0xa7, 0x9e, 0xe4, 0xfc, 0xdd, 0x04, 0xb4, 0x27, 0x93, 0x85, 0x62, 0x9d, 0x53, 0xb8, 0xe6, 0xcc, + 0xa5, 0x4c, 0xa1, 0x60, 0xa9, 0x5e, 0x44, 0xc1, 0xb2, 0x74, 0xa6, 0x82, 0xe5, 0x1a, 0x58, 0x22, + 0x6b, 0x32, 0xee, 0x8d, 0xc6, 0x92, 0x2f, 0xaa, 0xee, 0x44, 0x30, 0x5d, 0x1e, 0xac, 0x2c, 0x58, + 0x1e, 0xd4, 0xce, 0x5c, 0x1e, 0xec, 0x41, 0x43, 0x1a, 0xb1, 0xed, 0x71, 0xef, 0xc5, 0xf1, 0x38, + 0xe1, 0x9b, 0x02, 0xc9, 0xeb, 0x0a, 0x35, 0x51, 0x72, 0xf3, 0x73, 0x9c, 0x37, 0xf0, 0x4e, 0x92, + 0x1d, 0x64, 0x0d, 0x70, 0x0a, 0x9f, 0xe6, 0xe3, 0xa9, 0x52, 0x8c, 0xa7, 0x39, 0x9e, 0x75, 0xfe, + 0x5d, 0x81, 0x8d, 0x4e, 0x42, 0x5c, 0xfb, 0x1e, 0x3f, 0x94, 0x85, 0xc7, 0xc9, 0xe1, 0x36, 0x1b, + 0x46, 0x19, 0x96, 0x37, 0x67, 0xb2, 0x7c, 0x35, 0xcf, 0xf2, 0xf9, 0x03, 0x2e, 0x15, 0xa1, 0x77, + 0x31, 0x75, 0xee, 0x16, 0xac, 0x67, 0x58, 0x7b, 0xec, 0xf1, 0x43, 0x51, 0xeb, 0x0a, 0xda, 0x5e, + 0x25, 0xd9, 0xdb, 0x33, 0x74, 0x17, 0xd6, 0x52, 0x9a, 0xf5, 0x15, 0xfb, 0xd6, 0x24, 0xcc, 0x26, + 0x9c, 0xec, 0x27, 0xf4, 0x9b, 0xaf, 0x42, 0xac, 0x92, 0x2a, 0x24, 0x5b, 0x11, 0x41, 0xae, 0x22, + 0x72, 0xfe, 0x6c, 0x80, 0x9d, 0x46, 0xf9, 0x82, 0xbd, 0x48, 0xce, 0x2f, 0x95, 0xa2, 0x5f, 0x6e, + 0x42, 0x1d, 0x87, 0x5e, 0x3f, 0xc0, 0x1a, 0xfc, 0xa6, 0x02, 0xbf, 0x92, 0x29, 0xf0, 0x3f, 0x04, + 0x7b, 0x52, 0x8f, 0x26, 0x81, 0x7c, 0x7b, 0x66, 0x41, 0x9a, 0x05, 0x85, 0x0b, 0x69, 0x61, 0xca, + 0x9c, 0x2f, 0x2b, 0x13, 0xae, 0x54, 0x88, 0x3d, 0x4f, 0x46, 0xfc, 0x19, 0xd4, 0xf5, 0x2d, 0x54, + 0x9d, 0xac, 0xf2, 0xe2, 0xf7, 0xcb, 0x8e, 0x55, 0xb6, 0xe9, 0x76, 0xc6, 0x8c, 0x1f, 0x87, 0x3c, + 0x3a, 0x76, 0x6d, 0x36, 0x91, 0xb4, 0x7a, 0xb0, 0x5e, 0x54, 0x40, 0xeb, 0x60, 0x1e, 0xe1, 0x63, + 0x6d, 0x63, 0xf1, 0x53, 0x70, 0xc8, 0x2b, 0x81, 0x1d, 0x5d, 0x3a, 0xdc, 0x38, 0x31, 0x29, 0x0f, + 0xa9, 0xab, 0xb4, 0x7f, 0x50, 0xf9, 0xc8, 0x70, 0x7e, 0x6f, 0xc0, 0x7a, 0x3b, 0xa2, 0xe3, 0x53, + 0xe7, 0x63, 0x07, 0xea, 0x99, 0xe2, 0x3a, 0x89, 0xde, 0x9c, 0x6c, 0x5e, 0x66, 0xbe, 0x02, 0x35, + 0x3f, 0xa2, 0xe3, 0x9e, 0x17, 0x04, 0x32, 0xb0, 0x44, 0x9d, 0x19, 0xd1, 0xf1, 0x6e, 0x10, 0x88, + 0x72, 0xa6, 0x8d, 0xd9, 0x20, 0x22, 0xfd, 0xd3, 0x33, 0xc5, 0x9c, 0x72, 0xe6, 0x37, 0x06, 0xbc, + 0x5b, 0x58, 0xfb, 0x3c, 0xfe, 0xff, 0x71, 0x1e, 0x95, 0xca, 0xfd, 0x73, 0xda, 0xa4, 0x2c, 0x1a, + 0x3d, 0x49, 0xd3, 0xf2, 0xdb, 0x03, 0x91, 0x55, 0xf6, 0x23, 0x7a, 0x20, 0x8b, 0xd0, 0x8b, 0xbb, + 0xf1, 0x5f, 0x0d, 0xb8, 0x3e, 0x63, 0x8f, 0xf3, 0xdc, 0xbc, 0xd8, 0x7f, 0x57, 0xe6, 0xf5, 0xdf, + 0x66, 0xb1, 0xff, 0x2e, 0x6f, 0x4f, 0xab, 0x33, 0xda, 0xd3, 0x3f, 0x55, 0xa0, 0xd1, 0xe5, 0x34, + 0xf2, 0x0e, 0xf0, 0x1e, 0x0d, 0x87, 0xe4, 0x40, 0x24, 0xe6, 0xa4, 0xac, 0x37, 0xe4, 0xa5, 0xd3, + 0xc2, 0xfd, 0x26, 0xd4, 0xbd, 0xc1, 0x00, 0x33, 0x26, 0xba, 0x1c, 0x9d, 0x6f, 0x2c, 0xd7, 0x56, + 0xb2, 0xa7, 0x42, 0x84, 0xbe, 0x05, 0x1b, 0x0c, 0x0f, 0x22, 0xcc, 0x7b, 0x13, 0x4d, 0x8d, 0xd1, + 0x35, 0xf5, 0x61, 0x37, 0xd1, 0x16, 0x7d, 0x40, 0xcc, 0x70, 0xb7, 0xfb, 0x89, 0xc6, 0xa9, 0x1e, + 0x89, 0x2a, 0xac, 0x1f, 0x0f, 0x8e, 0x30, 0xcf, 0x12, 0x00, 0x28, 0x91, 0x84, 0xf8, 0x55, 0xb0, + 0x22, 0x4a, 0xb9, 0xcc, 0xda, 0x92, 0xf2, 0x2d, 0xb7, 0x26, 0x04, 0x22, 0x31, 0xe9, 0x55, 0x3b, + 0xbb, 0xcf, 0x34, 0xd5, 0xeb, 0x91, 0x68, 0x65, 0x3b, 0xbb, 0xcf, 0x3e, 0x0e, 0xfd, 0x31, 0x25, + 0x21, 0x97, 0x29, 0xdc, 0x72, 0xb3, 0x22, 0x71, 0x3d, 0xa6, 0x2c, 0xd1, 0xe3, 0x09, 0x6f, 0x5b, + 0xae, 0xad, 0x65, 0x92, 0x96, 0xff, 0x65, 0xc2, 0xba, 0x2a, 0xb5, 0x9e, 0xd0, 0x7e, 0x02, 0xa6, + 0x6b, 0x60, 0x0d, 0x82, 0x58, 0x74, 0x2d, 0x1a, 0x49, 0x96, 0x3b, 0x11, 0x08, 0x8b, 0x64, 0x89, + 0x26, 0xc2, 0x43, 0xf2, 0x46, 0x5b, 0x6e, 0x6d, 0xc2, 0x34, 0x52, 0x9c, 0xe5, 0x44, 0x73, 0x8a, + 0x13, 0x7d, 0x8f, 0x7b, 0x9a, 0xa8, 0xaa, 0x92, 0xa8, 0x2c, 0x21, 0x51, 0x1c, 0x35, 0x45, 0x3d, + 0x4b, 0x25, 0xd4, 0x93, 0xe1, 0xe2, 0xe5, 0x3c, 0x17, 0xe7, 0xa1, 0xbe, 0x52, 0x4c, 0x29, 0x8f, + 0x61, 0x35, 0x31, 0xcc, 0x40, 0x62, 0x44, 0x5a, 0xaf, 0xa4, 0x9b, 0x92, 0x29, 0x31, 0x0b, 0x26, + 0xb7, 0xc1, 0x72, 0xd8, 0x2a, 0x72, 0xb7, 0x75, 0x26, 0xee, 0x2e, 0x14, 0x9f, 0x70, 0x96, 0xe2, + 0x33, 0xcb, 0xc3, 0x76, 0x9e, 0x87, 0x3f, 0x81, 0xf5, 0x9f, 0xc4, 0x38, 0x3a, 0x7e, 0x42, 0xfb, + 0x6c, 0x31, 0x1f, 0xb7, 0xa0, 0xa6, 0x1d, 0x95, 0xa4, 0xec, 0x74, 0xec, 0xfc, 0xc3, 0x80, 0x86, + 0x0c, 0xb7, 0x17, 0x1e, 0x3b, 0x4a, 0x1e, 0x71, 0x12, 0x2f, 0x1b, 0x79, 0x2f, 0x9f, 0xb1, 0x6d, + 0x29, 0x79, 0x81, 0x30, 0xcb, 0x5e, 0x20, 0x4a, 0x2a, 0x99, 0x6a, 0x69, 0x25, 0x53, 0xe8, 0x83, + 0x96, 0xa6, 0xfa, 0xa0, 0xaf, 0x0c, 0xd8, 0xc8, 0xd8, 0xe8, 0x3c, 0x09, 0x2f, 0x67, 0xd9, 0x4a, + 0xd1, 0xb2, 0x0f, 0xf2, 0x44, 0x60, 0x96, 0xb9, 0x3a, 0x43, 0x04, 0x89, 0x8d, 0x73, 0x64, 0xf0, + 0x14, 0xd6, 0x04, 0x19, 0x5f, 0x8c, 0x3b, 0xff, 0x66, 0xc0, 0xca, 0x13, 0xda, 0x97, 0x8e, 0xcc, + 0x62, 0xc8, 0xc8, 0xbf, 0x6e, 0xad, 0x83, 0xe9, 0x93, 0x91, 0xce, 0xde, 0xe2, 0xa7, 0x88, 0x31, + 0xc6, 0xbd, 0x88, 0x4f, 0xde, 0xe7, 0x44, 0xa9, 0x26, 0x24, 0xf2, 0x89, 0xe7, 0x0a, 0xd4, 0x70, + 0xe8, 0xab, 0x8f, 0xba, 0x1e, 0xc6, 0xa1, 0x2f, 0x3f, 0x5d, 0x4c, 0x9f, 0x74, 0x19, 0x96, 0xc6, + 0x74, 0xf2, 0xa6, 0xa6, 0x06, 0xce, 0x65, 0x40, 0x8f, 0x30, 0x7f, 0x42, 0xfb, 0xc2, 0x2b, 0x89, + 0x79, 0x9c, 0xbf, 0x54, 0x64, 0xfb, 0x31, 0x11, 0x9f, 0xc7, 0xc1, 0x0e, 0x34, 0x14, 0x5d, 0x7d, + 0x4e, 0xfb, 0xbd, 0x30, 0x4e, 0x8c, 0x62, 0x4b, 0xe1, 0x13, 0xda, 0x7f, 0x1e, 0x8f, 0xd0, 0xfb, + 0xf0, 0x0e, 0x09, 0x7b, 0x63, 0xcd, 0xa0, 0xa9, 0xa6, 0xb2, 0xd2, 0x3a, 0x09, 0x13, 0x6e, 0xd5, + 0xea, 0x77, 0x60, 0x0d, 0x87, 0x2f, 0x63, 0x1c, 0xe3, 0x54, 0x55, 0xd9, 0xac, 0xa1, 0xc5, 0x5a, + 0x4f, 0x30, 0xa5, 0xc7, 0x8e, 0x7a, 0x2c, 0xa0, 0x9c, 0xe9, 0x9c, 0x68, 0x09, 0x49, 0x57, 0x08, + 0xd0, 0x47, 0x60, 0x89, 0xe9, 0x0a, 0x5a, 0xaa, 0x8d, 0xb8, 0x5a, 0x06, 0x2d, 0xed, 0x6f, 0xb7, + 0xf6, 0xb9, 0xfa, 0xc1, 0x44, 0x80, 0xe8, 0xc2, 0xda, 0x27, 0xec, 0x48, 0x33, 0x0d, 0x28, 0x51, + 0x9b, 0xb0, 0xa3, 0x9d, 0x2f, 0x01, 0x40, 0x22, 0x72, 0x8f, 0xd2, 0xc8, 0x47, 0x81, 0x34, 0xf3, + 0x1e, 0x1d, 0x8d, 0x69, 0x88, 0x43, 0x2e, 0xa3, 0x97, 0xa1, 0xed, 0xfc, 0x66, 0x7a, 0x30, 0xad, + 0xa8, 0xdd, 0xd2, 0x7a, 0xaf, 0x54, 0xbf, 0xa0, 0xec, 0x5c, 0x42, 0x2f, 0x65, 0x29, 0x2e, 0x86, + 0x84, 0x71, 0x32, 0x60, 0x7b, 0x87, 0x5e, 0x18, 0xe2, 0x00, 0xed, 0xcc, 0x78, 0xfd, 0x2a, 0x53, + 0x4e, 0xf6, 0xbc, 0x55, 0xba, 0x67, 0x97, 0x47, 0x24, 0x3c, 0x48, 0x70, 0xe1, 0x5c, 0x42, 0x2f, + 0xc0, 0xce, 0x3c, 0x41, 0xa0, 0x3b, 0x65, 0x66, 0x9c, 0x7e, 0xa3, 0x68, 0x9d, 0x04, 0x20, 0xe7, + 0x12, 0x1a, 0x42, 0x23, 0xf7, 0x46, 0x86, 0xb6, 0x4e, 0xea, 0x00, 0xb2, 0x0f, 0x53, 0xad, 0x6f, + 0x2e, 0xa0, 0x99, 0x9e, 0xfe, 0x17, 0xca, 0x60, 0x53, 0x8f, 0x4c, 0xf7, 0x66, 0x2c, 0x32, 0xeb, + 0x39, 0xac, 0x75, 0x7f, 0xf1, 0x09, 0xe9, 0xe6, 0xfe, 0xe4, 0x92, 0x0a, 0x5c, 0x77, 0xe7, 0xb7, + 0x39, 0x6a, 0xb7, 0xad, 0x45, 0xfb, 0x21, 0xe7, 0x12, 0xda, 0x07, 0x2b, 0xed, 0x48, 0xd0, 0x7b, + 0x65, 0x13, 0x8b, 0x0d, 0xcb, 0x02, 0xce, 0xc9, 0x55, 0xfc, 0xe5, 0xce, 0x29, 0x6b, 0x38, 0xca, + 0x9d, 0x53, 0xda, 0x3e, 0x38, 0x97, 0xd0, 0x2f, 0x27, 0x0f, 0xa5, 0xb9, 0x3a, 0x1b, 0xdd, 0x3f, + 0xe9, 0xfa, 0x65, 0x65, 0x7f, 0xeb, 0x3b, 0xa7, 0x98, 0x91, 0x01, 0x07, 0xea, 0x1e, 0xd2, 0xd7, + 0xaa, 0x82, 0x89, 0x23, 0x4f, 0xb4, 0x07, 0x25, 0x9b, 0xeb, 0x58, 0x9a, 0x56, 0x9d, 0xb9, 0xf9, + 0x09, 0x33, 0xd2, 0xcd, 0x7b, 0x00, 0x8f, 0x30, 0x7f, 0x86, 0x79, 0x44, 0x06, 0xac, 0x18, 0x56, + 0x93, 0x84, 0xa1, 0x15, 0x92, 0xad, 0xee, 0xce, 0xd5, 0x4b, 0x37, 0xe8, 0x83, 0xbd, 0x77, 0x88, + 0x07, 0x47, 0x8f, 0xb1, 0x17, 0xf0, 0x43, 0x54, 0x3e, 0x33, 0xa3, 0x31, 0x03, 0x7b, 0x65, 0x8a, + 0xc9, 0x1e, 0x3b, 0x5f, 0x2d, 0xeb, 0xbf, 0x58, 0x9f, 0x53, 0x1f, 0xff, 0xef, 0xe7, 0xc2, 0x7d, + 0xb0, 0xd2, 0x1e, 0xa1, 0x3c, 0xd4, 0x8a, 0x2d, 0xc4, 0xbc, 0x50, 0xfb, 0x0c, 0xac, 0xb4, 0xda, + 0x2a, 0x5f, 0xb1, 0x58, 0xb0, 0xb6, 0x6e, 0xcf, 0xd1, 0x4a, 0x4f, 0xfb, 0x1c, 0x6a, 0x49, 0x75, + 0x84, 0x6e, 0xcd, 0xca, 0x0b, 0xd9, 0x95, 0xe7, 0x9c, 0xf5, 0xe7, 0x60, 0x67, 0x4a, 0x87, 0x72, + 0x26, 0x98, 0x2e, 0x39, 0x5a, 0x77, 0xe7, 0xea, 0xfd, 0x7f, 0x04, 0xe4, 0x83, 0xef, 0x7e, 0xb6, + 0x73, 0x40, 0xf8, 0x61, 0xdc, 0x17, 0x96, 0xbd, 0xa7, 0x34, 0xdf, 0x27, 0x54, 0xff, 0xba, 0x97, + 0x9c, 0xf2, 0x9e, 0x5c, 0xe9, 0x9e, 0xb4, 0xd3, 0xb8, 0xdf, 0x5f, 0x96, 0xc3, 0x0f, 0xfe, 0x13, + 0x00, 0x00, 0xff, 0xff, 0x84, 0x29, 0xf6, 0x35, 0x2f, 0x21, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/internal/proxy/task_index.go b/internal/proxy/task_index.go index f2101a374d..3237de23e0 100644 --- a/internal/proxy/task_index.go +++ b/internal/proxy/task_index.go @@ -510,6 +510,7 @@ func (dit *describeIndexTask) Execute(ctx context.Context) error { Params: params, IndexedRows: indexInfo.GetIndexedRows(), TotalRows: indexInfo.GetTotalRows(), + PendingIndexRows: indexInfo.GetPendingIndexRows(), State: indexInfo.GetState(), IndexStateFailReason: indexInfo.GetIndexStateFailReason(), } diff --git a/tests/python_client/requirements.txt b/tests/python_client/requirements.txt index 0d515f1d76..37ec7e29cb 100644 --- a/tests/python_client/requirements.txt +++ b/tests/python_client/requirements.txt @@ -12,7 +12,7 @@ allure-pytest==2.7.0 pytest-print==0.2.1 pytest-level==0.1.1 pytest-xdist==2.5.0 -pymilvus==2.2.9.dev28 +pymilvus==2.2.9.dev32 pytest-rerunfailures==9.1.1 git+https://github.com/Projectplace/pytest-tags ndg-httpsclient diff --git a/tests/python_client/testcases/test_utility.py b/tests/python_client/testcases/test_utility.py index 23e56cacb1..215aec4a25 100644 --- a/tests/python_client/testcases/test_utility.py +++ b/tests/python_client/testcases/test_utility.py @@ -823,7 +823,7 @@ class TestUtilityBase(TestcaseBase): cw = self.init_collection_wrap(name=c_name) self.index_wrap.init_index(cw.collection, default_field_name, default_index_params) res, _ = self.utility_wrap.index_building_progress(c_name) - exp_res = {'total_rows': 0, 'indexed_rows': 0} + exp_res = {'total_rows': 0, 'indexed_rows': 0, 'pending_index_rows': 0} assert res == exp_res @pytest.mark.tags(CaseLabel.L2) @@ -914,7 +914,7 @@ class TestUtilityBase(TestcaseBase): cw.create_index(default_field_name, default_index_params) assert self.utility_wrap.wait_for_index_building_complete(c_name)[0] res, _ = self.utility_wrap.index_building_progress(c_name) - exp_res = {'total_rows': 0, 'indexed_rows': 0} + exp_res = {'total_rows': 0, 'indexed_rows': 0, 'pending_index_rows': 0} assert res == exp_res @pytest.mark.tags(CaseLabel.L1)