Add GetRecoveryInfo interface and proto (#5598)

Signed-off-by: sunby <bingyi.sun@zilliz.com>
pull/5645/head
sunby 2021-06-07 14:16:36 +08:00 committed by GitHub
parent fb358af098
commit 50b3d39370
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 552 additions and 112 deletions

View File

@ -960,6 +960,10 @@ func (s *Server) SaveBinlogPaths(ctx context.Context, req *datapb.SaveBinlogPath
return resp, nil return resp, nil
} }
func (s *Server) GetRecoveryInfo(ctx context.Context, req *datapb.GetRecoveryInfoRequest) (*datapb.GetRecoveryInfoResponse, error) {
panic("implement me")
}
func composeSegmentFlushMsgPack(segmentID UniqueID) msgstream.MsgPack { func composeSegmentFlushMsgPack(segmentID UniqueID) msgstream.MsgPack {
msgPack := msgstream.MsgPack{ msgPack := msgstream.MsgPack{
Msgs: make([]msgstream.TsMsg, 0, 1), Msgs: make([]msgstream.TsMsg, 0, 1),

View File

@ -271,3 +271,10 @@ func (c *Client) GetSegmentInfo(ctx context.Context, req *datapb.GetSegmentInfoR
}) })
return ret.(*datapb.GetSegmentInfoResponse), err return ret.(*datapb.GetSegmentInfoResponse), err
} }
func (c *Client) GetRecoveryInfo(ctx context.Context, req *datapb.GetRecoveryInfoRequest) (*datapb.GetRecoveryInfoResponse, error) {
ret, err := c.recall(func() (interface{}, error) {
return c.grpcClient.GetRecoveryInfo(ctx, req)
})
return ret.(*datapb.GetRecoveryInfoResponse), err
}

View File

@ -277,3 +277,7 @@ func (s *Server) GetSegmentInfoChannel(ctx context.Context, req *datapb.GetSegme
func (s *Server) SaveBinlogPaths(ctx context.Context, req *datapb.SaveBinlogPathsRequest) (*commonpb.Status, error) { func (s *Server) SaveBinlogPaths(ctx context.Context, req *datapb.SaveBinlogPathsRequest) (*commonpb.Status, error) {
return s.dataService.SaveBinlogPaths(ctx, req) return s.dataService.SaveBinlogPaths(ctx, req)
} }
func (s *Server) GetRecoveryInfo(ctx context.Context, req *datapb.GetRecoveryInfoRequest) (*datapb.GetRecoveryInfoResponse, error) {
return s.dataService.GetRecoveryInfo(ctx, req)
}

View File

@ -31,6 +31,7 @@ service DataService {
rpc GetSegmentInfoChannel(GetSegmentInfoChannelRequest) returns (milvus.StringResponse){} rpc GetSegmentInfoChannel(GetSegmentInfoChannelRequest) returns (milvus.StringResponse){}
rpc SaveBinlogPaths(SaveBinlogPathsRequest) returns (common.Status){} rpc SaveBinlogPaths(SaveBinlogPathsRequest) returns (common.Status){}
rpc GetRecoveryInfo(GetRecoveryInfoRequest) returns (GetRecoveryInfoResponse){}
} }
service DataNode { service DataNode {
@ -250,3 +251,40 @@ message SaveBinlogPathsRequest {
PositionPair dml_position = 6; PositionPair dml_position = 6;
PositionPair ddl_position =7; PositionPair ddl_position =7;
} }
message CheckPoint {
int64 segmentID = 1;
internal.MsgPosition position = 2;
int64 num_of_rows = 3;
}
message VchannelInfo {
int64 collectionID = 1;
string channelName = 2;
internal.MsgPosition seek_position = 3;
repeated CheckPoint checkPoints = 4;
repeated int64 flushedSegments = 5;
}
message SegmentBinlogs {
int64 segmentID = 1;
repeated FieldBinlog fieldBinlogs = 2;
}
message FieldBinlog{
int64 fieldID = 1;
repeated string binlogs = 2;
}
message GetRecoveryInfoResponse {
common.MsgBase base = 1;
repeated VchannelInfo channels = 2;
repeated SegmentBinlogs binlogs = 3;
}
message GetRecoveryInfoRequest {
common.MsgBase base = 1;
int64 collectionID = 2;
int64 partitionID = 3;
}

View File

@ -1947,6 +1947,336 @@ func (m *SaveBinlogPathsRequest) GetDdlPosition() *PositionPair {
return nil return nil
} }
type CheckPoint struct {
SegmentID int64 `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
Position *internalpb.MsgPosition `protobuf:"bytes,2,opt,name=position,proto3" json:"position,omitempty"`
NumOfRows int64 `protobuf:"varint,3,opt,name=num_of_rows,json=numOfRows,proto3" json:"num_of_rows,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CheckPoint) Reset() { *m = CheckPoint{} }
func (m *CheckPoint) String() string { return proto.CompactTextString(m) }
func (*CheckPoint) ProtoMessage() {}
func (*CheckPoint) Descriptor() ([]byte, []int) {
return fileDescriptor_3385cd32ad6cfe64, []int{35}
}
func (m *CheckPoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CheckPoint.Unmarshal(m, b)
}
func (m *CheckPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CheckPoint.Marshal(b, m, deterministic)
}
func (m *CheckPoint) XXX_Merge(src proto.Message) {
xxx_messageInfo_CheckPoint.Merge(m, src)
}
func (m *CheckPoint) XXX_Size() int {
return xxx_messageInfo_CheckPoint.Size(m)
}
func (m *CheckPoint) XXX_DiscardUnknown() {
xxx_messageInfo_CheckPoint.DiscardUnknown(m)
}
var xxx_messageInfo_CheckPoint proto.InternalMessageInfo
func (m *CheckPoint) GetSegmentID() int64 {
if m != nil {
return m.SegmentID
}
return 0
}
func (m *CheckPoint) GetPosition() *internalpb.MsgPosition {
if m != nil {
return m.Position
}
return nil
}
func (m *CheckPoint) GetNumOfRows() int64 {
if m != nil {
return m.NumOfRows
}
return 0
}
type VchannelInfo struct {
CollectionID int64 `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
ChannelName string `protobuf:"bytes,2,opt,name=channelName,proto3" json:"channelName,omitempty"`
SeekPosition *internalpb.MsgPosition `protobuf:"bytes,3,opt,name=seek_position,json=seekPosition,proto3" json:"seek_position,omitempty"`
CheckPoints []*CheckPoint `protobuf:"bytes,4,rep,name=checkPoints,proto3" json:"checkPoints,omitempty"`
FlushedSegments []int64 `protobuf:"varint,5,rep,packed,name=flushedSegments,proto3" json:"flushedSegments,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *VchannelInfo) Reset() { *m = VchannelInfo{} }
func (m *VchannelInfo) String() string { return proto.CompactTextString(m) }
func (*VchannelInfo) ProtoMessage() {}
func (*VchannelInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_3385cd32ad6cfe64, []int{36}
}
func (m *VchannelInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_VchannelInfo.Unmarshal(m, b)
}
func (m *VchannelInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_VchannelInfo.Marshal(b, m, deterministic)
}
func (m *VchannelInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_VchannelInfo.Merge(m, src)
}
func (m *VchannelInfo) XXX_Size() int {
return xxx_messageInfo_VchannelInfo.Size(m)
}
func (m *VchannelInfo) XXX_DiscardUnknown() {
xxx_messageInfo_VchannelInfo.DiscardUnknown(m)
}
var xxx_messageInfo_VchannelInfo proto.InternalMessageInfo
func (m *VchannelInfo) GetCollectionID() int64 {
if m != nil {
return m.CollectionID
}
return 0
}
func (m *VchannelInfo) GetChannelName() string {
if m != nil {
return m.ChannelName
}
return ""
}
func (m *VchannelInfo) GetSeekPosition() *internalpb.MsgPosition {
if m != nil {
return m.SeekPosition
}
return nil
}
func (m *VchannelInfo) GetCheckPoints() []*CheckPoint {
if m != nil {
return m.CheckPoints
}
return nil
}
func (m *VchannelInfo) GetFlushedSegments() []int64 {
if m != nil {
return m.FlushedSegments
}
return nil
}
type SegmentBinlogs struct {
SegmentID int64 `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
FieldBinlogs []*FieldBinlog `protobuf:"bytes,2,rep,name=fieldBinlogs,proto3" json:"fieldBinlogs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SegmentBinlogs) Reset() { *m = SegmentBinlogs{} }
func (m *SegmentBinlogs) String() string { return proto.CompactTextString(m) }
func (*SegmentBinlogs) ProtoMessage() {}
func (*SegmentBinlogs) Descriptor() ([]byte, []int) {
return fileDescriptor_3385cd32ad6cfe64, []int{37}
}
func (m *SegmentBinlogs) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SegmentBinlogs.Unmarshal(m, b)
}
func (m *SegmentBinlogs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SegmentBinlogs.Marshal(b, m, deterministic)
}
func (m *SegmentBinlogs) XXX_Merge(src proto.Message) {
xxx_messageInfo_SegmentBinlogs.Merge(m, src)
}
func (m *SegmentBinlogs) XXX_Size() int {
return xxx_messageInfo_SegmentBinlogs.Size(m)
}
func (m *SegmentBinlogs) XXX_DiscardUnknown() {
xxx_messageInfo_SegmentBinlogs.DiscardUnknown(m)
}
var xxx_messageInfo_SegmentBinlogs proto.InternalMessageInfo
func (m *SegmentBinlogs) GetSegmentID() int64 {
if m != nil {
return m.SegmentID
}
return 0
}
func (m *SegmentBinlogs) GetFieldBinlogs() []*FieldBinlog {
if m != nil {
return m.FieldBinlogs
}
return nil
}
type FieldBinlog struct {
FieldID int64 `protobuf:"varint,1,opt,name=fieldID,proto3" json:"fieldID,omitempty"`
Binlogs []string `protobuf:"bytes,2,rep,name=binlogs,proto3" json:"binlogs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *FieldBinlog) Reset() { *m = FieldBinlog{} }
func (m *FieldBinlog) String() string { return proto.CompactTextString(m) }
func (*FieldBinlog) ProtoMessage() {}
func (*FieldBinlog) Descriptor() ([]byte, []int) {
return fileDescriptor_3385cd32ad6cfe64, []int{38}
}
func (m *FieldBinlog) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FieldBinlog.Unmarshal(m, b)
}
func (m *FieldBinlog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FieldBinlog.Marshal(b, m, deterministic)
}
func (m *FieldBinlog) XXX_Merge(src proto.Message) {
xxx_messageInfo_FieldBinlog.Merge(m, src)
}
func (m *FieldBinlog) XXX_Size() int {
return xxx_messageInfo_FieldBinlog.Size(m)
}
func (m *FieldBinlog) XXX_DiscardUnknown() {
xxx_messageInfo_FieldBinlog.DiscardUnknown(m)
}
var xxx_messageInfo_FieldBinlog proto.InternalMessageInfo
func (m *FieldBinlog) GetFieldID() int64 {
if m != nil {
return m.FieldID
}
return 0
}
func (m *FieldBinlog) GetBinlogs() []string {
if m != nil {
return m.Binlogs
}
return nil
}
type GetRecoveryInfoResponse struct {
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
Channels []*VchannelInfo `protobuf:"bytes,2,rep,name=channels,proto3" json:"channels,omitempty"`
Binlogs []*SegmentBinlogs `protobuf:"bytes,3,rep,name=binlogs,proto3" json:"binlogs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetRecoveryInfoResponse) Reset() { *m = GetRecoveryInfoResponse{} }
func (m *GetRecoveryInfoResponse) String() string { return proto.CompactTextString(m) }
func (*GetRecoveryInfoResponse) ProtoMessage() {}
func (*GetRecoveryInfoResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_3385cd32ad6cfe64, []int{39}
}
func (m *GetRecoveryInfoResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetRecoveryInfoResponse.Unmarshal(m, b)
}
func (m *GetRecoveryInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetRecoveryInfoResponse.Marshal(b, m, deterministic)
}
func (m *GetRecoveryInfoResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetRecoveryInfoResponse.Merge(m, src)
}
func (m *GetRecoveryInfoResponse) XXX_Size() int {
return xxx_messageInfo_GetRecoveryInfoResponse.Size(m)
}
func (m *GetRecoveryInfoResponse) XXX_DiscardUnknown() {
xxx_messageInfo_GetRecoveryInfoResponse.DiscardUnknown(m)
}
var xxx_messageInfo_GetRecoveryInfoResponse proto.InternalMessageInfo
func (m *GetRecoveryInfoResponse) GetBase() *commonpb.MsgBase {
if m != nil {
return m.Base
}
return nil
}
func (m *GetRecoveryInfoResponse) GetChannels() []*VchannelInfo {
if m != nil {
return m.Channels
}
return nil
}
func (m *GetRecoveryInfoResponse) GetBinlogs() []*SegmentBinlogs {
if m != nil {
return m.Binlogs
}
return nil
}
type GetRecoveryInfoRequest struct {
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
PartitionID int64 `protobuf:"varint,3,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetRecoveryInfoRequest) Reset() { *m = GetRecoveryInfoRequest{} }
func (m *GetRecoveryInfoRequest) String() string { return proto.CompactTextString(m) }
func (*GetRecoveryInfoRequest) ProtoMessage() {}
func (*GetRecoveryInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_3385cd32ad6cfe64, []int{40}
}
func (m *GetRecoveryInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetRecoveryInfoRequest.Unmarshal(m, b)
}
func (m *GetRecoveryInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetRecoveryInfoRequest.Marshal(b, m, deterministic)
}
func (m *GetRecoveryInfoRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetRecoveryInfoRequest.Merge(m, src)
}
func (m *GetRecoveryInfoRequest) XXX_Size() int {
return xxx_messageInfo_GetRecoveryInfoRequest.Size(m)
}
func (m *GetRecoveryInfoRequest) XXX_DiscardUnknown() {
xxx_messageInfo_GetRecoveryInfoRequest.DiscardUnknown(m)
}
var xxx_messageInfo_GetRecoveryInfoRequest proto.InternalMessageInfo
func (m *GetRecoveryInfoRequest) GetBase() *commonpb.MsgBase {
if m != nil {
return m.Base
}
return nil
}
func (m *GetRecoveryInfoRequest) GetCollectionID() int64 {
if m != nil {
return m.CollectionID
}
return 0
}
func (m *GetRecoveryInfoRequest) GetPartitionID() int64 {
if m != nil {
return m.PartitionID
}
return 0
}
func init() { func init() {
proto.RegisterType((*RegisterNodeRequest)(nil), "milvus.proto.data.RegisterNodeRequest") proto.RegisterType((*RegisterNodeRequest)(nil), "milvus.proto.data.RegisterNodeRequest")
proto.RegisterType((*RegisterNodeResponse)(nil), "milvus.proto.data.RegisterNodeResponse") proto.RegisterType((*RegisterNodeResponse)(nil), "milvus.proto.data.RegisterNodeResponse")
@ -1983,122 +2313,142 @@ func init() {
proto.RegisterType((*ID2PathList)(nil), "milvus.proto.data.ID2PathList") proto.RegisterType((*ID2PathList)(nil), "milvus.proto.data.ID2PathList")
proto.RegisterType((*PositionPair)(nil), "milvus.proto.data.PositionPair") proto.RegisterType((*PositionPair)(nil), "milvus.proto.data.PositionPair")
proto.RegisterType((*SaveBinlogPathsRequest)(nil), "milvus.proto.data.SaveBinlogPathsRequest") proto.RegisterType((*SaveBinlogPathsRequest)(nil), "milvus.proto.data.SaveBinlogPathsRequest")
proto.RegisterType((*CheckPoint)(nil), "milvus.proto.data.CheckPoint")
proto.RegisterType((*VchannelInfo)(nil), "milvus.proto.data.VchannelInfo")
proto.RegisterType((*SegmentBinlogs)(nil), "milvus.proto.data.SegmentBinlogs")
proto.RegisterType((*FieldBinlog)(nil), "milvus.proto.data.FieldBinlog")
proto.RegisterType((*GetRecoveryInfoResponse)(nil), "milvus.proto.data.GetRecoveryInfoResponse")
proto.RegisterType((*GetRecoveryInfoRequest)(nil), "milvus.proto.data.GetRecoveryInfoRequest")
} }
func init() { proto.RegisterFile("data_service.proto", fileDescriptor_3385cd32ad6cfe64) } func init() { proto.RegisterFile("data_service.proto", fileDescriptor_3385cd32ad6cfe64) }
var fileDescriptor_3385cd32ad6cfe64 = []byte{ var fileDescriptor_3385cd32ad6cfe64 = []byte{
// 1758 bytes of a gzipped FileDescriptorProto // 1975 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xdd, 0x6f, 0x13, 0xc7, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xdb, 0x6f, 0x1b, 0x59,
0x16, 0xcf, 0xda, 0x89, 0x93, 0x1c, 0x3b, 0x4e, 0x32, 0xe4, 0x06, 0x5f, 0x03, 0x21, 0x2c, 0x17, 0x19, 0xcf, 0xd8, 0xb9, 0xf9, 0xf3, 0xd8, 0x69, 0x4f, 0x43, 0xd6, 0xb8, 0x6d, 0x9a, 0xce, 0xb2,
0x08, 0xa0, 0x9b, 0x80, 0x73, 0x75, 0x3f, 0x74, 0xd5, 0x07, 0x82, 0x21, 0xb5, 0x9a, 0xa0, 0x74, 0xdd, 0x6c, 0x57, 0x24, 0x5b, 0x17, 0x71, 0x51, 0x05, 0xa8, 0xa9, 0xb7, 0xc1, 0xa2, 0x29, 0xe1,
0x42, 0x8b, 0x54, 0x54, 0x59, 0x1b, 0xef, 0xc4, 0xd9, 0xb2, 0x1f, 0xc6, 0x33, 0x26, 0xe1, 0x89, 0x64, 0xd9, 0x95, 0x58, 0x21, 0x6b, 0xe2, 0x39, 0x71, 0x86, 0xcc, 0xc5, 0x3b, 0x67, 0xdc, 0xa6,
0xaa, 0xed, 0x53, 0x55, 0x15, 0xf5, 0x3f, 0x68, 0x2b, 0x55, 0xaa, 0xd4, 0x3e, 0xf4, 0xb9, 0x7f, 0x4f, 0x45, 0xc0, 0x03, 0x42, 0x88, 0x85, 0xff, 0x00, 0x90, 0x90, 0x90, 0xe0, 0x81, 0x67, 0xde,
0x52, 0xff, 0x8a, 0x6a, 0x3e, 0xf6, 0x7b, 0xfd, 0x81, 0x03, 0xcd, 0xdb, 0xce, 0xec, 0x99, 0x73, 0xf9, 0x17, 0xf8, 0x7b, 0xd0, 0xb9, 0xcc, 0xfd, 0xd8, 0x9e, 0x38, 0xed, 0xe6, 0xcd, 0xe7, 0xf8,
0xce, 0x9c, 0x8f, 0xdf, 0x9c, 0x73, 0x00, 0x99, 0x06, 0x33, 0x9a, 0x94, 0x74, 0x5f, 0x58, 0x2d, 0xbb, 0x9d, 0xef, 0xf2, 0x3b, 0xdf, 0xf9, 0x06, 0x90, 0x65, 0x86, 0x66, 0x9f, 0x92, 0xe0, 0x85,
0xb2, 0xde, 0xe9, 0x7a, 0xcc, 0x43, 0x8b, 0x8e, 0x65, 0xbf, 0xe8, 0x51, 0xb9, 0x5a, 0xe7, 0x04, 0x3d, 0x20, 0x3b, 0xa3, 0xc0, 0x0f, 0x7d, 0x74, 0xdd, 0xb5, 0x9d, 0x17, 0x63, 0x2a, 0x56, 0x3b,
0xd5, 0x52, 0xcb, 0x73, 0x1c, 0xcf, 0x95, 0x5b, 0xd5, 0xb2, 0xe5, 0x32, 0xd2, 0x75, 0x0d, 0x5b, 0x8c, 0xa0, 0xad, 0x0f, 0x7c, 0xd7, 0xf5, 0x3d, 0xb1, 0xd5, 0x6e, 0xda, 0x5e, 0x48, 0x02, 0xcf,
0xad, 0x4b, 0xd1, 0x03, 0xd5, 0x12, 0x6d, 0x1d, 0x11, 0xc7, 0x90, 0x2b, 0xfd, 0x15, 0x9c, 0xc3, 0x74, 0xe4, 0x5a, 0x4f, 0x33, 0xb4, 0x75, 0x3a, 0x38, 0x25, 0xae, 0x29, 0x56, 0xc6, 0x6b, 0xb8,
0xa4, 0x6d, 0x51, 0x46, 0xba, 0x8f, 0x3c, 0x93, 0x60, 0xf2, 0xbc, 0x47, 0x28, 0x43, 0x77, 0x60, 0x81, 0xc9, 0xd0, 0xa6, 0x21, 0x09, 0x9e, 0xfb, 0x16, 0xc1, 0xe4, 0x8b, 0x31, 0xa1, 0x21, 0xfa,
0xf2, 0xc0, 0xa0, 0xa4, 0xa2, 0xad, 0x6a, 0x6b, 0xc5, 0xda, 0xc5, 0xf5, 0x98, 0x48, 0x25, 0x6c, 0x08, 0x16, 0x8f, 0x4d, 0x4a, 0x5a, 0xda, 0x96, 0xb6, 0x5d, 0xef, 0xdc, 0xda, 0xc9, 0xa8, 0x94,
0x97, 0xb6, 0xb7, 0x0c, 0x4a, 0xb0, 0xa0, 0x44, 0xff, 0x86, 0x69, 0xc3, 0x34, 0xbb, 0x84, 0xd2, 0xca, 0x0e, 0xe8, 0x70, 0xcf, 0xa4, 0x04, 0x73, 0x4a, 0xf4, 0x6d, 0x58, 0x31, 0x2d, 0x2b, 0x20,
0x4a, 0x6e, 0xc0, 0xa1, 0x7b, 0x92, 0x06, 0xfb, 0xc4, 0xfa, 0x6b, 0x0d, 0x96, 0xe2, 0x1a, 0xd0, 0x94, 0xb6, 0x2a, 0x53, 0x98, 0x1e, 0x0b, 0x1a, 0x1c, 0x11, 0x1b, 0x5f, 0x6a, 0xb0, 0x9e, 0xb5,
0x8e, 0xe7, 0x52, 0x82, 0xb6, 0xa0, 0x68, 0xb9, 0x16, 0x6b, 0x76, 0x8c, 0xae, 0xe1, 0x50, 0xa5, 0x80, 0x8e, 0x7c, 0x8f, 0x12, 0xb4, 0x07, 0x75, 0xdb, 0xb3, 0xc3, 0xfe, 0xc8, 0x0c, 0x4c, 0x97,
0xc9, 0x95, 0x38, 0xd3, 0xe0, 0xa2, 0x0d, 0xd7, 0x62, 0x7b, 0x82, 0x10, 0x83, 0x15, 0x7c, 0xa3, 0x4a, 0x4b, 0xee, 0x66, 0x85, 0xc6, 0x07, 0xed, 0x79, 0x76, 0x78, 0xc8, 0x09, 0x31, 0xd8, 0xf1,
0x4d, 0x28, 0x50, 0x66, 0xb0, 0x9e, 0xaf, 0xd3, 0x85, 0x4c, 0x9d, 0xf6, 0x05, 0x09, 0x56, 0xa4, 0x6f, 0xf4, 0x10, 0x96, 0x69, 0x68, 0x86, 0xe3, 0xc8, 0xa6, 0x9b, 0x4a, 0x9b, 0x8e, 0x38, 0x09,
0xfa, 0x09, 0x94, 0x1e, 0xda, 0x3d, 0x7a, 0x34, 0xbe, 0x2d, 0x10, 0x4c, 0x9a, 0x07, 0x8d, 0xba, 0x96, 0xa4, 0xc6, 0x39, 0xe8, 0x4f, 0x9d, 0x31, 0x3d, 0x9d, 0xdf, 0x17, 0x08, 0x16, 0xad, 0xe3,
0x10, 0x9a, 0xc7, 0xe2, 0x1b, 0xe9, 0x50, 0x6a, 0x79, 0xb6, 0x4d, 0x5a, 0xcc, 0xf2, 0xdc, 0x46, 0x5e, 0x97, 0x2b, 0xad, 0x62, 0xfe, 0x1b, 0x19, 0xa0, 0x0f, 0x7c, 0xc7, 0x21, 0x83, 0xd0, 0xf6,
0xbd, 0x32, 0x29, 0xfe, 0xc5, 0xf6, 0xf4, 0xef, 0x34, 0x58, 0xd8, 0x27, 0x6d, 0x87, 0xb8, 0xac, 0xbd, 0x5e, 0xb7, 0xb5, 0xc8, 0xff, 0xcb, 0xec, 0x19, 0x7f, 0xd6, 0xe0, 0xda, 0x11, 0x19, 0xba,
0x51, 0xf7, 0xc5, 0x2f, 0xc1, 0x54, 0xcb, 0xeb, 0xb9, 0x4c, 0xc8, 0x9f, 0xc3, 0x72, 0x81, 0xae, 0xc4, 0x0b, 0x7b, 0xdd, 0x48, 0xfd, 0x3a, 0x2c, 0x0d, 0xfc, 0xb1, 0x17, 0x72, 0xfd, 0x0d, 0x2c,
0x40, 0xa9, 0x75, 0x64, 0xb8, 0x2e, 0xb1, 0x9b, 0xae, 0xe1, 0x10, 0x21, 0x6a, 0x16, 0x17, 0xd5, 0x16, 0xe8, 0x2e, 0xe8, 0x83, 0x53, 0xd3, 0xf3, 0x88, 0xd3, 0xf7, 0x4c, 0x97, 0x70, 0x55, 0x35,
0xde, 0x23, 0xc3, 0x21, 0x29, 0x89, 0xf9, 0xb4, 0x44, 0xb4, 0x0a, 0xc5, 0x8e, 0xd1, 0x65, 0x56, 0x5c, 0x97, 0x7b, 0xcf, 0x4d, 0x97, 0x14, 0x34, 0x56, 0x8b, 0x1a, 0xd1, 0x16, 0xd4, 0x47, 0x66,
0x4c, 0xa9, 0xe8, 0x96, 0xfe, 0xbd, 0x06, 0xcb, 0xf7, 0x28, 0xb5, 0xda, 0x6e, 0x4a, 0xb3, 0x65, 0x10, 0xda, 0x19, 0xa3, 0xd2, 0x5b, 0xc6, 0x5f, 0x34, 0xd8, 0x78, 0x4c, 0xa9, 0x3d, 0xf4, 0x0a,
0x28, 0xb8, 0x9e, 0x49, 0x1a, 0x75, 0xa1, 0x5a, 0x1e, 0xab, 0x15, 0xba, 0x00, 0xb3, 0x1d, 0x42, 0x96, 0x6d, 0xc0, 0xb2, 0xe7, 0x5b, 0xa4, 0xd7, 0xe5, 0xa6, 0x55, 0xb1, 0x5c, 0xa1, 0x9b, 0x50,
0xba, 0xcd, 0xae, 0x67, 0xfb, 0x8a, 0xcd, 0xf0, 0x0d, 0xec, 0xd9, 0x04, 0x7d, 0x08, 0x8b, 0x34, 0x1b, 0x11, 0x12, 0xf4, 0x03, 0xdf, 0x89, 0x0c, 0x5b, 0x65, 0x1b, 0xd8, 0x77, 0x08, 0xfa, 0x29,
0xc1, 0x88, 0x56, 0xf2, 0xab, 0xf9, 0xb5, 0x62, 0xed, 0xea, 0x7a, 0x2a, 0xb2, 0xd7, 0x93, 0x42, 0x5c, 0xa7, 0x39, 0x41, 0xb4, 0x55, 0xdd, 0xaa, 0x6e, 0xd7, 0x3b, 0xef, 0xee, 0x14, 0x32, 0x7b,
0x71, 0xfa, 0xb4, 0xfe, 0x79, 0x0e, 0xce, 0x05, 0x74, 0x52, 0x57, 0xfe, 0xcd, 0x2d, 0x47, 0x49, 0x27, 0xaf, 0x14, 0x17, 0xb9, 0x8d, 0x5f, 0x55, 0xe0, 0x46, 0x4c, 0x27, 0x6c, 0x65, 0xbf, 0x99,
0x3b, 0x50, 0x4f, 0x2e, 0x46, 0xb1, 0x5c, 0x60, 0xf2, 0x7c, 0xd4, 0xe4, 0x23, 0x78, 0x30, 0x69, 0xe7, 0x28, 0x19, 0xc6, 0xe6, 0x89, 0x45, 0x19, 0xcf, 0xc5, 0x2e, 0xaf, 0xa6, 0x5d, 0x5e, 0x22,
0xcf, 0xa9, 0x94, 0x3d, 0xd1, 0x65, 0x28, 0x92, 0x93, 0x8e, 0xd5, 0x25, 0x4d, 0x66, 0x39, 0xa4, 0x82, 0x79, 0x7f, 0x2e, 0x15, 0xfc, 0x89, 0xee, 0x40, 0x9d, 0x9c, 0x8f, 0xec, 0x80, 0xf4, 0x43,
0x52, 0x58, 0xd5, 0xd6, 0x26, 0x31, 0xc8, 0xad, 0xc7, 0x96, 0x43, 0x22, 0x31, 0x3b, 0x3d, 0x7a, 0xdb, 0x25, 0xad, 0xe5, 0x2d, 0x6d, 0x7b, 0x11, 0x83, 0xd8, 0xfa, 0xc4, 0x76, 0x49, 0x2a, 0x67,
0xcc, 0xfe, 0xa8, 0xc1, 0xf9, 0x94, 0x97, 0x54, 0x22, 0x61, 0x58, 0x10, 0x37, 0x0f, 0x2d, 0xc3, 0x57, 0xca, 0xe7, 0xec, 0xdf, 0x34, 0x78, 0xa7, 0x10, 0x25, 0x59, 0x48, 0x18, 0xae, 0xf1, 0x93,
0xb3, 0x89, 0x1b, 0xfc, 0xfa, 0x20, 0x83, 0x87, 0xe4, 0x38, 0x75, 0x7e, 0xbc, 0xc4, 0xfa, 0x41, 0x27, 0x9e, 0x61, 0xd5, 0xc4, 0x1c, 0x7e, 0x6f, 0x9a, 0xc3, 0x13, 0x72, 0x5c, 0xe0, 0x9f, 0xaf,
0x83, 0x73, 0xfb, 0x47, 0xde, 0xb1, 0x12, 0x41, 0xc7, 0x4f, 0xb0, 0xa4, 0x2b, 0x72, 0xc3, 0x5d, 0xb0, 0xfe, 0xaa, 0xc1, 0x8d, 0xa3, 0x53, 0xff, 0xa5, 0x54, 0x41, 0xe7, 0x2f, 0xb0, 0x7c, 0x28,
0x91, 0x4f, 0xbb, 0xc2, 0x4f, 0xd3, 0xc9, 0x30, 0x4d, 0xf5, 0x67, 0xb0, 0x14, 0x57, 0x51, 0x19, 0x2a, 0xb3, 0x43, 0x51, 0x2d, 0x86, 0x22, 0x2a, 0xd3, 0xc5, 0xa4, 0x4c, 0x8d, 0x33, 0x58, 0xcf,
0x71, 0x05, 0x20, 0x08, 0x3c, 0x69, 0xbe, 0x3c, 0x8e, 0xec, 0x8c, 0x67, 0x90, 0x67, 0x70, 0x7e, 0x9a, 0x28, 0x9d, 0xb8, 0x09, 0x10, 0x27, 0x9e, 0x70, 0x5f, 0x15, 0xa7, 0x76, 0xe6, 0x73, 0xc8,
0x9b, 0x30, 0x25, 0x8b, 0xff, 0x23, 0xa7, 0xb0, 0x49, 0x5c, 0xc3, 0x5c, 0x52, 0x43, 0xfd, 0xb7, 0x19, 0xbc, 0xb3, 0x4f, 0x42, 0xa9, 0x8b, 0xfd, 0x47, 0x2e, 0xe1, 0x93, 0xac, 0x85, 0x95, 0xbc,
0x5c, 0x00, 0x2e, 0x42, 0x54, 0xc3, 0x3d, 0xf4, 0xd0, 0x45, 0x98, 0x0d, 0x48, 0x54, 0x9a, 0x84, 0x85, 0xc6, 0xbf, 0x2b, 0x31, 0xb8, 0x70, 0x55, 0x3d, 0xef, 0xc4, 0x47, 0xb7, 0xa0, 0x16, 0x93,
0x1b, 0xe8, 0x3f, 0x30, 0xc5, 0x35, 0x95, 0x39, 0x52, 0x4e, 0x82, 0xaf, 0x7f, 0xa7, 0x08, 0x4f, 0xc8, 0x32, 0x49, 0x36, 0xd0, 0x77, 0x60, 0x89, 0x59, 0x2a, 0x6a, 0xa4, 0x99, 0x07, 0xdf, 0xe8,
0x2c, 0xe9, 0x51, 0x03, 0xca, 0x94, 0x19, 0x5d, 0xd6, 0xec, 0x78, 0x54, 0x58, 0x5b, 0x98, 0xbf, 0x4c, 0x29, 0x99, 0x58, 0xd0, 0xa3, 0x1e, 0x34, 0x69, 0x68, 0x06, 0x61, 0x7f, 0xe4, 0x53, 0xee,
0x58, 0xd3, 0xfb, 0xc0, 0xf7, 0x2e, 0x6d, 0xef, 0x29, 0x4a, 0x3c, 0x27, 0x4e, 0xfa, 0x4b, 0xf4, 0x6d, 0xee, 0xfe, 0x7a, 0xc7, 0x98, 0x00, 0xdf, 0x07, 0x74, 0x78, 0x28, 0x29, 0x71, 0x83, 0x73,
0x00, 0x4a, 0xc4, 0x35, 0x43, 0x46, 0x93, 0x23, 0x33, 0x2a, 0x12, 0xd7, 0x0c, 0xd8, 0x84, 0xfe, 0x46, 0x4b, 0xf4, 0x31, 0xe8, 0xc4, 0xb3, 0x12, 0x41, 0x8b, 0xa5, 0x05, 0xd5, 0x89, 0x67, 0xc5,
0x99, 0x1a, 0xdd, 0x3f, 0xdf, 0x68, 0x50, 0x49, 0x3b, 0x48, 0x45, 0x44, 0xc8, 0x51, 0x1b, 0x99, 0x62, 0x92, 0xf8, 0x2c, 0x95, 0x8f, 0xcf, 0x1f, 0x34, 0x68, 0x15, 0x03, 0x24, 0x33, 0x22, 0x91,
0x23, 0xfa, 0xbf, 0x3c, 0x44, 0xa4, 0x83, 0x06, 0x42, 0x5e, 0xe0, 0x24, 0xac, 0x8e, 0xe8, 0x16, 0xa8, 0x95, 0x96, 0x88, 0x1e, 0x09, 0x26, 0x22, 0x02, 0x34, 0x15, 0xf2, 0xe2, 0x20, 0x61, 0xc9,
0xfc, 0x2d, 0xd4, 0x46, 0xfc, 0x79, 0x67, 0xc1, 0xf2, 0xa5, 0x06, 0xcb, 0x49, 0x59, 0xa7, 0xb9, 0x62, 0xd8, 0xf0, 0xb5, 0xc4, 0x1a, 0xfe, 0xcf, 0x5b, 0x4b, 0x96, 0xdf, 0x68, 0xb0, 0x91, 0xd7,
0xf7, 0xbf, 0x60, 0xca, 0x72, 0x0f, 0x3d, 0xff, 0xda, 0x2b, 0x03, 0x80, 0x87, 0xcb, 0x92, 0xc4, 0x75, 0x99, 0x73, 0x7f, 0x0b, 0x96, 0x6c, 0xef, 0xc4, 0x8f, 0x8e, 0xbd, 0x39, 0x05, 0x78, 0x98,
0xba, 0x03, 0x17, 0xb6, 0x09, 0x6b, 0xb8, 0x94, 0x74, 0xd9, 0x96, 0xe5, 0xda, 0x5e, 0x7b, 0xcf, 0x2e, 0x41, 0x6c, 0xb8, 0x70, 0x73, 0x9f, 0x84, 0x3d, 0x8f, 0x92, 0x20, 0xdc, 0xb3, 0x3d, 0xc7,
0x60, 0x47, 0xa7, 0xc8, 0x91, 0x58, 0xb8, 0xe7, 0x12, 0xe1, 0xae, 0xff, 0xac, 0xc1, 0xc5, 0x6c, 0x1f, 0x1e, 0x9a, 0xe1, 0xe9, 0x25, 0x6a, 0x24, 0x93, 0xee, 0x95, 0x5c, 0xba, 0x1b, 0xff, 0xd0,
0x79, 0xea, 0xea, 0x55, 0x98, 0x39, 0xb4, 0x88, 0x6d, 0x86, 0x10, 0x10, 0xac, 0x79, 0xae, 0x74, 0xe0, 0x96, 0x5a, 0x9f, 0x3c, 0x7a, 0x1b, 0x56, 0x4f, 0x6c, 0xe2, 0x58, 0x09, 0x04, 0xc4, 0x6b,
0x38, 0xb1, 0xba, 0x61, 0xbf, 0x42, 0x65, 0x9f, 0x75, 0x2d, 0xb7, 0xbd, 0x63, 0x51, 0x86, 0x25, 0x56, 0x2b, 0x23, 0x46, 0x2c, 0x4f, 0x38, 0xa9, 0x51, 0x39, 0x0a, 0x03, 0xdb, 0x1b, 0x3e, 0xb3,
0x7d, 0xc4, 0x9e, 0xf9, 0xd1, 0x23, 0xf3, 0x2b, 0x19, 0x99, 0x52, 0xd5, 0xfb, 0xf2, 0xe9, 0xa2, 0x69, 0x88, 0x05, 0x7d, 0xca, 0x9f, 0xd5, 0xf2, 0x99, 0xf9, 0x5b, 0x91, 0x99, 0xc2, 0xd4, 0x27,
0xef, 0xb6, 0x60, 0xc9, 0x28, 0x1f, 0xf4, 0xaf, 0x35, 0x58, 0xd9, 0x26, 0xec, 0x7e, 0xb0, 0xc7, 0xe2, 0xea, 0xa2, 0x6f, 0xb7, 0x61, 0x51, 0xb4, 0x0f, 0xc6, 0xef, 0x35, 0xd8, 0xdc, 0x27, 0xe1,
0xd5, 0xb4, 0x28, 0xb3, 0x5a, 0x67, 0xa0, 0xcc, 0x6b, 0x0d, 0x2e, 0xf7, 0x55, 0x46, 0x79, 0x50, 0x93, 0x78, 0x8f, 0x99, 0x69, 0xd3, 0xd0, 0x1e, 0x5c, 0x81, 0x31, 0x5f, 0x6a, 0x70, 0x67, 0xa2,
0x21, 0x9a, 0xff, 0x00, 0x66, 0x23, 0xda, 0x07, 0xe4, 0xe5, 0xc7, 0x86, 0xdd, 0x23, 0x7b, 0x86, 0x31, 0x32, 0x82, 0x12, 0xd1, 0xa2, 0x0b, 0x50, 0x8d, 0x68, 0x3f, 0x26, 0xaf, 0x3e, 0x35, 0x9d,
0xd5, 0x95, 0x88, 0x36, 0x26, 0xbe, 0xff, 0xa2, 0xc1, 0xa5, 0x6d, 0xc2, 0x8b, 0x51, 0xf9, 0xe6, 0x31, 0x39, 0x34, 0xed, 0x40, 0x20, 0xda, 0x9c, 0xf8, 0xfe, 0x4f, 0x0d, 0x6e, 0xef, 0x13, 0xd6,
0x9c, 0xa1, 0x75, 0x46, 0xa8, 0xf4, 0xbe, 0x95, 0xce, 0xcc, 0xd4, 0xf6, 0x4c, 0xcc, 0xb7, 0x22, 0x8c, 0x8a, 0x3b, 0xe7, 0x0a, 0xbd, 0x53, 0xa2, 0xd3, 0xfb, 0xa3, 0x08, 0xa6, 0xd2, 0xda, 0x2b,
0xd2, 0x31, 0x82, 0x0b, 0x2a, 0xd0, 0x95, 0xf1, 0x74, 0x0f, 0x96, 0x9f, 0x18, 0xac, 0x75, 0x54, 0x71, 0xdf, 0x26, 0x2f, 0xc7, 0x14, 0x2e, 0xc8, 0x44, 0x97, 0xce, 0x33, 0x7c, 0xd8, 0xf8, 0xcc,
0x77, 0x4e, 0x9f, 0x01, 0x57, 0x61, 0x2e, 0x5a, 0x15, 0xca, 0x34, 0x9e, 0xc5, 0xa5, 0x48, 0x59, 0x0c, 0x07, 0xa7, 0x5d, 0xf7, 0xf2, 0x15, 0xf0, 0x2e, 0x34, 0xd2, 0x5d, 0xa1, 0x28, 0xe3, 0x1a,
0x48, 0x79, 0x2d, 0xbc, 0x24, 0x5a, 0x83, 0xd3, 0x57, 0x30, 0xe3, 0xba, 0x31, 0x0e, 0xdc, 0x93, 0xd6, 0x53, 0x6d, 0x21, 0x65, 0xbd, 0xf0, 0x3a, 0x7f, 0x1a, 0x5c, 0xbe, 0x83, 0x99, 0x37, 0x8c,
0x29, 0xe0, 0x3e, 0x01, 0x50, 0xca, 0xed, 0xd2, 0xf6, 0x18, 0x7a, 0xfd, 0x17, 0xa6, 0x15, 0x37, 0x59, 0xe0, 0x5e, 0x2c, 0x00, 0xf7, 0x39, 0x80, 0x34, 0xee, 0x80, 0x0e, 0xe7, 0xb0, 0xeb, 0xbb,
0xe5, 0xa9, 0x61, 0x50, 0xed, 0x93, 0xeb, 0xfb, 0xb0, 0xac, 0xf6, 0x1f, 0x72, 0x4c, 0x94, 0xf8, 0xb0, 0x22, 0xa5, 0xc9, 0x48, 0xcd, 0x82, 0xea, 0x88, 0xdc, 0x38, 0x82, 0x0d, 0xb9, 0xff, 0x94,
0xb9, 0x4b, 0x98, 0x81, 0x2a, 0x30, 0xad, 0x60, 0x52, 0x95, 0x18, 0xfe, 0x92, 0x17, 0xc3, 0x07, 0x61, 0xa2, 0xc0, 0xcf, 0x03, 0x12, 0x9a, 0xa8, 0x05, 0x2b, 0x12, 0x26, 0x65, 0x8b, 0x11, 0x2d,
0x82, 0xae, 0xc9, 0xb1, 0x50, 0x95, 0xe2, 0x70, 0x10, 0x40, 0xaf, 0xfe, 0x29, 0xcc, 0xd5, 0xeb, 0x59, 0x33, 0x7c, 0xcc, 0xe9, 0xfa, 0x0c, 0x0b, 0x65, 0x2b, 0x0e, 0xc7, 0x31, 0xf4, 0x1a, 0xbf,
0x3b, 0x11, 0x5e, 0xd7, 0x61, 0xde, 0x34, 0xed, 0x66, 0xf4, 0x94, 0x26, 0x4e, 0xcd, 0x99, 0xa6, 0x80, 0x46, 0xb7, 0xfb, 0x2c, 0x25, 0xeb, 0x1e, 0xac, 0x59, 0x96, 0xd3, 0x4f, 0x73, 0x69, 0x9c,
0x1d, 0x62, 0x36, 0xfa, 0x07, 0x94, 0x19, 0x6d, 0xa6, 0x99, 0x97, 0x18, 0x0d, 0xa9, 0xf4, 0x5d, 0xab, 0x61, 0x59, 0x4e, 0x82, 0xd9, 0xe8, 0x1b, 0xd0, 0x0c, 0x69, 0xbf, 0x28, 0x5c, 0x0f, 0x69,
0x28, 0x0b, 0x65, 0x85, 0x53, 0x87, 0xe8, 0x7a, 0x05, 0x4a, 0x11, 0x76, 0x7e, 0x80, 0x14, 0x43, 0x42, 0x65, 0x1c, 0x40, 0x93, 0x1b, 0xcb, 0x83, 0x3a, 0xc3, 0xd6, 0xbb, 0xa0, 0xa7, 0xc4, 0x45,
0x65, 0x29, 0x87, 0x43, 0xbf, 0xc4, 0x0a, 0x39, 0x0e, 0x2e, 0xb1, 0x2e, 0x01, 0x58, 0xb4, 0x79, 0x09, 0x52, 0x4f, 0x8c, 0xa5, 0x0c, 0x0e, 0xa3, 0x16, 0x2b, 0x91, 0x38, 0xbd, 0xc5, 0xba, 0x0d,
0xc8, 0xa9, 0x89, 0x29, 0x74, 0x9c, 0xc1, 0xb3, 0x16, 0x7d, 0x28, 0x37, 0xd0, 0xff, 0xa0, 0x20, 0x60, 0xd3, 0xfe, 0x09, 0xa3, 0x26, 0x16, 0xb7, 0x71, 0x15, 0xd7, 0x6c, 0xfa, 0x54, 0x6c, 0xa0,
0xe4, 0xf3, 0xb2, 0x25, 0x23, 0xe3, 0x84, 0x37, 0xe2, 0x37, 0xc0, 0xea, 0x80, 0xfe, 0x11, 0x94, 0xef, 0xc1, 0x32, 0xd7, 0xcf, 0xda, 0x16, 0x45, 0xc5, 0xf1, 0x68, 0x64, 0x4f, 0x80, 0x25, 0x83,
0xea, 0xf5, 0x9d, 0x50, 0x8f, 0x64, 0x74, 0x69, 0x19, 0xd1, 0x35, 0xc2, 0x1d, 0x5f, 0x41, 0x39, 0xf1, 0x33, 0xd0, 0xbb, 0xdd, 0x67, 0x89, 0x1d, 0xf9, 0xec, 0xd2, 0x14, 0xd9, 0x55, 0xe2, 0x8c,
0x44, 0x58, 0x51, 0x43, 0x96, 0x21, 0x17, 0xb0, 0xcb, 0x35, 0xea, 0xe8, 0x3d, 0x28, 0xc8, 0x11, 0xaf, 0xa1, 0x99, 0x20, 0x2c, 0xef, 0x21, 0x9b, 0x50, 0x89, 0xc5, 0x55, 0x7a, 0x5d, 0xf4, 0x7d,
0x83, 0x8a, 0xa0, 0x6b, 0x71, 0x9d, 0xd5, 0xf8, 0x21, 0x02, 0xd3, 0x62, 0x03, 0xab, 0x43, 0x3c, 0x58, 0x16, 0x23, 0x06, 0x99, 0x41, 0xef, 0x65, 0x6d, 0x96, 0xe3, 0x87, 0x14, 0x4c, 0xf3, 0x0d,
0xc2, 0x03, 0x54, 0x92, 0x9d, 0x61, 0x1e, 0x47, 0x76, 0xf4, 0xdf, 0xf3, 0x50, 0x8c, 0x04, 0x60, 0x2c, 0x99, 0x58, 0x86, 0xc7, 0xa8, 0x24, 0x5e, 0x86, 0x55, 0x9c, 0xda, 0x31, 0xfe, 0x53, 0x85,
0x4a, 0xfc, 0xdb, 0xe9, 0x0d, 0xae, 0x41, 0xd9, 0x12, 0x8f, 0x6b, 0x53, 0x21, 0x80, 0x40, 0xcc, 0x7a, 0x2a, 0x01, 0x0b, 0xea, 0xdf, 0xcc, 0xdb, 0xe0, 0x3d, 0x68, 0xda, 0xfc, 0x72, 0xed, 0x4b,
0x59, 0x3c, 0x67, 0x45, 0x9f, 0x5c, 0xf4, 0x77, 0x98, 0x71, 0x7b, 0x4e, 0xb3, 0xeb, 0x1d, 0x53, 0x04, 0xe0, 0x88, 0x59, 0xc3, 0x0d, 0x3b, 0x7d, 0xe5, 0xa2, 0xaf, 0xc3, 0xaa, 0x37, 0x76, 0xfb,
0xd5, 0xec, 0x4d, 0xbb, 0x3d, 0x07, 0x7b, 0xc7, 0x34, 0x2c, 0x9e, 0x0b, 0xa7, 0x2e, 0x9e, 0xa7, 0x81, 0xff, 0x92, 0xca, 0xc7, 0xde, 0x8a, 0x37, 0x76, 0xb1, 0xff, 0x92, 0x26, 0xcd, 0xf3, 0xf2,
0xdf, 0x56, 0xf1, 0x3c, 0x33, 0x5e, 0xf1, 0xbc, 0x02, 0x45, 0xc7, 0x38, 0xe1, 0xb7, 0x6c, 0xba, 0xa5, 0x9b, 0xe7, 0x95, 0x37, 0xd5, 0x3c, 0xaf, 0xce, 0xd7, 0x3c, 0x6f, 0x42, 0xdd, 0x35, 0xcf,
0x3d, 0xa7, 0x32, 0x2b, 0x83, 0xd8, 0x31, 0x4e, 0xb0, 0x77, 0xfc, 0xa8, 0xe7, 0xa0, 0x35, 0x58, 0xd9, 0x29, 0xfb, 0xde, 0xd8, 0x6d, 0xd5, 0x44, 0x12, 0xbb, 0xe6, 0x39, 0xf6, 0x5f, 0x3e, 0x1f,
0xb0, 0x0d, 0xca, 0x9a, 0xd1, 0xc6, 0x16, 0x44, 0x63, 0x5b, 0xe6, 0xfb, 0x0f, 0x82, 0xe6, 0x56, 0xbb, 0x68, 0x1b, 0xae, 0x39, 0x26, 0x0d, 0xfb, 0xe9, 0x87, 0x2d, 0xf0, 0x87, 0x6d, 0x93, 0xed,
0xdf, 0x84, 0x62, 0xa3, 0x5e, 0xe3, 0x91, 0xc4, 0x4b, 0xa0, 0x94, 0xef, 0x96, 0x60, 0x6a, 0x2f, 0x7f, 0x1c, 0x3f, 0x6e, 0x8d, 0x87, 0x50, 0xef, 0x75, 0x3b, 0x2c, 0x93, 0x58, 0x0b, 0x54, 0x88,
0x12, 0x78, 0x72, 0xc1, 0x61, 0xb7, 0xe4, 0xeb, 0xc2, 0x1f, 0x95, 0x0c, 0x0b, 0x69, 0x6f, 0xcb, 0xdd, 0x3a, 0x2c, 0x1d, 0xa6, 0x12, 0x4f, 0x2c, 0x18, 0xec, 0xea, 0x91, 0x2d, 0xec, 0x52, 0x51,
0x42, 0xb9, 0xb1, 0x2c, 0xa4, 0xff, 0x9a, 0x87, 0xe5, 0x7d, 0xe3, 0x05, 0x79, 0xf7, 0x55, 0xea, 0x78, 0x48, 0x7b, 0x53, 0x1e, 0xaa, 0xcc, 0xe5, 0x21, 0xe3, 0x5f, 0x55, 0xd8, 0x38, 0x32, 0x5f,
0x48, 0xaf, 0xc4, 0x0e, 0x2c, 0x0a, 0x14, 0xa8, 0x45, 0xf4, 0x51, 0x9d, 0x53, 0x16, 0x9e, 0x47, 0x90, 0xb7, 0xdf, 0xa5, 0x96, 0xba, 0x25, 0x9e, 0xc1, 0x75, 0x8e, 0x02, 0x9d, 0x94, 0x3d, 0xf2,
0x5c, 0x82, 0xd3, 0x07, 0xd1, 0xfb, 0x50, 0x8e, 0x81, 0xab, 0x0f, 0x46, 0xab, 0x19, 0xac, 0x62, 0xe5, 0xa4, 0xc2, 0xf3, 0x54, 0x48, 0x70, 0x91, 0x11, 0xfd, 0x08, 0x9a, 0x19, 0x70, 0x8d, 0xc0,
0x68, 0x8d, 0x13, 0xe7, 0xd0, 0x16, 0x94, 0x4c, 0xc7, 0x0e, 0xad, 0x5d, 0x10, 0x2a, 0x5d, 0xce, 0x68, 0x4b, 0x21, 0x2a, 0x83, 0xd6, 0x38, 0xc7, 0x87, 0xf6, 0x40, 0xb7, 0x5c, 0x27, 0xf1, 0xf6,
0xe0, 0x13, 0xf5, 0x37, 0x2e, 0x9a, 0x8e, 0x1d, 0x78, 0x8c, 0xf3, 0x30, 0xed, 0x64, 0x72, 0x8c, 0x32, 0x37, 0xe9, 0x8e, 0x42, 0x4e, 0x3a, 0xde, 0xb8, 0x6e, 0xb9, 0x4e, 0x1c, 0x31, 0x26, 0xc3,
0xc0, 0xc3, 0x0c, 0x78, 0xd4, 0xfe, 0x28, 0x41, 0xb1, 0x6e, 0x30, 0x63, 0x5f, 0x0e, 0x56, 0x51, 0x72, 0xf2, 0xc5, 0x51, 0x42, 0x86, 0x15, 0xcb, 0x60, 0x40, 0x0d, 0x4f, 0x4e, 0xc9, 0xe0, 0xec,
0x07, 0x90, 0xa8, 0x1c, 0x9d, 0x8e, 0xe7, 0x06, 0x9d, 0x1e, 0xba, 0xd3, 0x27, 0x0a, 0xd2, 0xa4, 0xd0, 0xb7, 0xbd, 0x70, 0x06, 0x44, 0xff, 0x00, 0x56, 0xe7, 0x48, 0x8f, 0x98, 0x87, 0x55, 0x0f,
0xca, 0xd7, 0xd5, 0xeb, 0x7d, 0x4e, 0x24, 0xc8, 0xf5, 0x09, 0xe4, 0x08, 0x89, 0x3c, 0x27, 0x1e, 0xc3, 0x08, 0xff, 0x44, 0xc0, 0x84, 0x88, 0x57, 0xcd, 0x1b, 0xbb, 0x3f, 0x39, 0x61, 0x40, 0x61,
0x5b, 0xad, 0x67, 0x3e, 0x9c, 0x0c, 0x90, 0x98, 0x20, 0xf5, 0x25, 0x26, 0x1a, 0x48, 0xb5, 0x90, 0xfc, 0xae, 0x02, 0xfa, 0xa7, 0x12, 0x65, 0x38, 0xa2, 0x95, 0x41, 0xea, 0x2d, 0x48, 0x4f, 0xac,
0x5d, 0x86, 0x5f, 0xb6, 0xe9, 0x13, 0xe8, 0x39, 0x2c, 0xf1, 0x52, 0x2a, 0xa8, 0xe8, 0x7c, 0x81, 0x54, 0x43, 0xac, 0x7d, 0x68, 0x50, 0x42, 0xce, 0xe6, 0x79, 0x82, 0xeb, 0x8c, 0x31, 0x76, 0xf8,
0xb5, 0xfe, 0x02, 0x53, 0xc4, 0x6f, 0x28, 0xd2, 0x80, 0x52, 0x74, 0xae, 0x8b, 0xb2, 0x86, 0x4d, 0x0f, 0x99, 0xaa, 0xc8, 0x57, 0xa2, 0xe7, 0xa8, 0x77, 0x6e, 0x2b, 0xfc, 0x9d, 0x78, 0x14, 0xa7,
0x19, 0xa3, 0xe7, 0xea, 0x8d, 0xa1, 0x74, 0x81, 0x88, 0x6d, 0x98, 0x12, 0xef, 0x1b, 0xca, 0xf2, 0x39, 0xd0, 0x36, 0xac, 0xc9, 0x0b, 0x2e, 0xea, 0x9b, 0x78, 0x02, 0x55, 0x71, 0x7e, 0xdb, 0x08,
0x7e, 0x74, 0x86, 0x5b, 0x1d, 0x54, 0x6f, 0xea, 0x13, 0xe8, 0x33, 0x98, 0x4f, 0x4c, 0xcf, 0xd0, 0xa0, 0x29, 0x7f, 0x8b, 0xac, 0xa1, 0x33, 0x42, 0xb3, 0x07, 0xfa, 0x49, 0xd2, 0x6c, 0x4c, 0x7b,
0xcd, 0x0c, 0x96, 0xd9, 0x73, 0xd0, 0xea, 0xad, 0x51, 0x48, 0xa3, 0x76, 0x89, 0x4e, 0x98, 0x32, 0x5d, 0xa6, 0x7a, 0x12, 0x9c, 0xe1, 0x31, 0x1e, 0x43, 0x3d, 0xf5, 0xe7, 0x94, 0x06, 0xa0, 0x05,
0xed, 0x92, 0x31, 0x25, 0xcb, 0xb4, 0x4b, 0xd6, 0xa8, 0x4a, 0x9f, 0x40, 0x6d, 0x28, 0xc7, 0x0b, 0x2b, 0xc7, 0x29, 0x3d, 0x35, 0x1c, 0x2d, 0x8d, 0xff, 0x6a, 0x7c, 0x90, 0x83, 0xc9, 0xc0, 0x7f,
0x67, 0xb4, 0x96, 0x71, 0x38, 0x73, 0x96, 0x50, 0xbd, 0x39, 0x02, 0x65, 0x20, 0xc8, 0x81, 0x85, 0x41, 0x82, 0x57, 0x99, 0xe7, 0xf2, 0xc5, 0xcb, 0xff, 0x11, 0xac, 0xca, 0x38, 0x46, 0x07, 0x52,
0xe4, 0x7c, 0x04, 0xdd, 0x1a, 0xc8, 0x20, 0x9e, 0x2f, 0xb7, 0x47, 0xa2, 0x0d, 0xc4, 0xbd, 0x14, 0x25, 0x77, 0x3a, 0x63, 0x70, 0xcc, 0x80, 0x1e, 0x25, 0x46, 0x56, 0x27, 0x76, 0x0c, 0x59, 0x1f,
0x51, 0x9c, 0xea, 0xcf, 0xd1, 0x7a, 0x36, 0x9b, 0x7e, 0x83, 0x83, 0xea, 0xc6, 0xc8, 0xf4, 0x81, 0x27, 0xe7, 0xf8, 0x93, 0x78, 0xf5, 0x67, 0xcf, 0x71, 0xa5, 0x33, 0xba, 0xce, 0xff, 0x1a, 0x50,
0x68, 0x02, 0x8b, 0xa9, 0x7e, 0x1b, 0xdd, 0x1e, 0xc4, 0x27, 0xd1, 0x93, 0x54, 0x87, 0x4f, 0x04, 0xef, 0x9a, 0xa1, 0x79, 0x24, 0x3e, 0x81, 0xa0, 0x11, 0x20, 0xfe, 0xc6, 0x73, 0x47, 0xbe, 0x17,
0xf4, 0x09, 0xf4, 0x85, 0x26, 0x46, 0x82, 0x59, 0x3d, 0x2c, 0xba, 0x9b, 0x2d, 0x6d, 0x40, 0xf3, 0xcf, 0x64, 0xd0, 0x47, 0x13, 0x92, 0xba, 0x48, 0x2a, 0xcf, 0xd3, 0xbe, 0x37, 0x81, 0x23, 0x47,
0x5d, 0xad, 0xbd, 0xc9, 0x91, 0xe0, 0xae, 0xaf, 0xc4, 0xec, 0x27, 0xa3, 0x0f, 0x4c, 0xe2, 0x93, 0x6e, 0x2c, 0x20, 0x97, 0x6b, 0x64, 0xb7, 0xd7, 0x27, 0xf6, 0xe0, 0x2c, 0xba, 0xf8, 0xa7, 0x68,
0xcf, 0xaf, 0x7f, 0x83, 0x5b, 0xbd, 0xfb, 0x06, 0x27, 0x02, 0x05, 0xbc, 0xe4, 0xa0, 0xcb, 0x87, 0xcc, 0x91, 0x46, 0x1a, 0x73, 0xa3, 0x1e, 0xb9, 0x10, 0xf3, 0x80, 0x28, 0x5b, 0x8c, 0x05, 0xf4,
0xab, 0x8d, 0xa1, 0xc1, 0x39, 0x1e, 0x56, 0x3d, 0x85, 0xf9, 0xc4, 0xeb, 0x9d, 0x99, 0xff, 0xd9, 0x05, 0xac, 0xb3, 0x47, 0x4f, 0xfc, 0xf6, 0x8a, 0x14, 0x76, 0x26, 0x2b, 0x2c, 0x10, 0x5f, 0x50,
0x2f, 0xfc, 0x10, 0x70, 0xa9, 0xfd, 0x94, 0x87, 0x19, 0xfe, 0xd8, 0x08, 0x14, 0xfc, 0xeb, 0x5f, 0xa5, 0x09, 0x7a, 0xfa, 0x0b, 0x0c, 0x52, 0x8d, 0x85, 0x15, 0x1f, 0x89, 0xda, 0xef, 0xcf, 0xa4,
0x9a, 0x33, 0x80, 0xfe, 0xa7, 0x30, 0x9f, 0x68, 0xcc, 0x33, 0xcd, 0x99, 0xdd, 0xbc, 0x0f, 0xc3, 0x8b, 0x55, 0xec, 0xc3, 0x12, 0xef, 0x44, 0x91, 0x2a, 0x95, 0xd3, 0x5f, 0x5b, 0xda, 0xd3, 0x5e,
0xea, 0x27, 0x30, 0x17, 0xeb, 0xc1, 0xd1, 0x8d, 0x7e, 0xe0, 0x9f, 0x44, 0xd0, 0xc1, 0x8c, 0xb7, 0x86, 0xc6, 0x02, 0xfa, 0x25, 0xac, 0xe5, 0xe6, 0xdc, 0xe8, 0x03, 0x85, 0x48, 0xf5, 0x17, 0x8b,
0x36, 0x3f, 0xb9, 0xdb, 0xb6, 0xd8, 0x51, 0xef, 0x80, 0xff, 0xd9, 0x90, 0xa4, 0xff, 0xb4, 0x3c, 0xf6, 0xfd, 0x32, 0xa4, 0x69, 0xbf, 0xa4, 0x67, 0xc1, 0x4a, 0xbf, 0x28, 0xe6, 0xd9, 0x4a, 0xbf,
0xf5, 0xb5, 0xe1, 0x1b, 0x68, 0x43, 0x9c, 0xde, 0xe0, 0x62, 0x3a, 0x07, 0x07, 0x05, 0xb1, 0xda, 0xa8, 0x86, 0xca, 0xc6, 0x02, 0x1a, 0x42, 0x33, 0xfb, 0xc4, 0x45, 0xdb, 0x0a, 0x66, 0xe5, 0xd4,
0xfc, 0x33, 0x00, 0x00, 0xff, 0xff, 0x10, 0xce, 0xe5, 0x03, 0xa9, 0x1d, 0x00, 0x00, 0xaf, 0xfd, 0x41, 0x09, 0xca, 0x58, 0x91, 0x0b, 0xd7, 0xf2, 0x93, 0x4c, 0x74, 0x7f, 0xaa, 0x80,
0x6c, 0xbd, 0x7c, 0x58, 0x8a, 0x36, 0x56, 0xf7, 0x8a, 0x67, 0x71, 0x61, 0x92, 0x86, 0x76, 0xd4,
0x62, 0x26, 0x8d, 0xf8, 0xda, 0xbb, 0xa5, 0xe9, 0x63, 0xd5, 0x04, 0xae, 0x17, 0x26, 0x63, 0xe8,
0xc3, 0x69, 0x72, 0x72, 0xd3, 0x83, 0xf6, 0xec, 0xd9, 0x9d, 0xb1, 0x80, 0x7e, 0x2d, 0x30, 0x5f,
0x35, 0x6d, 0x42, 0x0f, 0xd4, 0xda, 0xa6, 0x8c, 0xc9, 0xda, 0x9d, 0x8b, 0xb0, 0xc4, 0x67, 0x7d,
0xcd, 0xf1, 0x5a, 0x31, 0xb1, 0xc9, 0xe3, 0x53, 0x24, 0x6f, 0xf2, 0x28, 0xaa, 0xfd, 0xe0, 0x02,
0x1c, 0xb1, 0x01, 0x7e, 0x7e, 0x24, 0x1d, 0xc1, 0xd5, 0xee, 0xcc, 0xe4, 0x9c, 0x0f, 0xab, 0x3e,
0x87, 0xb5, 0x5c, 0x9f, 0xad, 0xac, 0x7f, 0x75, 0x2f, 0x5e, 0x02, 0x5c, 0x72, 0xd7, 0x1f, 0x9a,
0x50, 0x64, 0x8a, 0x2b, 0xb2, 0x7d, 0xbf, 0x0c, 0x69, 0x74, 0x90, 0xce, 0xdf, 0xab, 0xb0, 0xca,
0x2e, 0x36, 0x8e, 0xb8, 0x5f, 0xfd, 0xad, 0x76, 0x05, 0xd7, 0xcc, 0xe7, 0xb0, 0x96, 0x1b, 0xd7,
0x29, 0xbd, 0xab, 0x1e, 0xe9, 0xcd, 0x0a, 0xdd, 0x67, 0xd0, 0xc8, 0x4c, 0xe6, 0xd0, 0xfb, 0x93,
0x2e, 0x9a, 0x3c, 0x5a, 0x4f, 0x17, 0xbc, 0xf7, 0xf0, 0xe7, 0x0f, 0x86, 0x76, 0x78, 0x3a, 0x3e,
0x66, 0xff, 0xec, 0x0a, 0xd2, 0x6f, 0xda, 0xbe, 0xfc, 0xb5, 0x1b, 0x39, 0x68, 0x97, 0x73, 0xef,
0x32, 0x35, 0xa3, 0xe3, 0xe3, 0x65, 0xbe, 0x7a, 0xf8, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf7,
0x87, 0x24, 0x0f, 0xbf, 0x21, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -2128,6 +2478,7 @@ type DataServiceClient interface {
GetPartitionStatistics(ctx context.Context, in *GetPartitionStatisticsRequest, opts ...grpc.CallOption) (*GetPartitionStatisticsResponse, error) GetPartitionStatistics(ctx context.Context, in *GetPartitionStatisticsRequest, opts ...grpc.CallOption) (*GetPartitionStatisticsResponse, error)
GetSegmentInfoChannel(ctx context.Context, in *GetSegmentInfoChannelRequest, opts ...grpc.CallOption) (*milvuspb.StringResponse, error) GetSegmentInfoChannel(ctx context.Context, in *GetSegmentInfoChannelRequest, opts ...grpc.CallOption) (*milvuspb.StringResponse, error)
SaveBinlogPaths(ctx context.Context, in *SaveBinlogPathsRequest, opts ...grpc.CallOption) (*commonpb.Status, error) SaveBinlogPaths(ctx context.Context, in *SaveBinlogPathsRequest, opts ...grpc.CallOption) (*commonpb.Status, error)
GetRecoveryInfo(ctx context.Context, in *GetRecoveryInfoRequest, opts ...grpc.CallOption) (*GetRecoveryInfoResponse, error)
} }
type dataServiceClient struct { type dataServiceClient struct {
@ -2273,6 +2624,15 @@ func (c *dataServiceClient) SaveBinlogPaths(ctx context.Context, in *SaveBinlogP
return out, nil return out, nil
} }
func (c *dataServiceClient) GetRecoveryInfo(ctx context.Context, in *GetRecoveryInfoRequest, opts ...grpc.CallOption) (*GetRecoveryInfoResponse, error) {
out := new(GetRecoveryInfoResponse)
err := c.cc.Invoke(ctx, "/milvus.proto.data.DataService/GetRecoveryInfo", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// DataServiceServer is the server API for DataService service. // DataServiceServer is the server API for DataService service.
type DataServiceServer interface { type DataServiceServer interface {
GetComponentStates(context.Context, *internalpb.GetComponentStatesRequest) (*internalpb.ComponentStates, error) GetComponentStates(context.Context, *internalpb.GetComponentStatesRequest) (*internalpb.ComponentStates, error)
@ -2290,6 +2650,7 @@ type DataServiceServer interface {
GetPartitionStatistics(context.Context, *GetPartitionStatisticsRequest) (*GetPartitionStatisticsResponse, error) GetPartitionStatistics(context.Context, *GetPartitionStatisticsRequest) (*GetPartitionStatisticsResponse, error)
GetSegmentInfoChannel(context.Context, *GetSegmentInfoChannelRequest) (*milvuspb.StringResponse, error) GetSegmentInfoChannel(context.Context, *GetSegmentInfoChannelRequest) (*milvuspb.StringResponse, error)
SaveBinlogPaths(context.Context, *SaveBinlogPathsRequest) (*commonpb.Status, error) SaveBinlogPaths(context.Context, *SaveBinlogPathsRequest) (*commonpb.Status, error)
GetRecoveryInfo(context.Context, *GetRecoveryInfoRequest) (*GetRecoveryInfoResponse, error)
} }
// UnimplementedDataServiceServer can be embedded to have forward compatible implementations. // UnimplementedDataServiceServer can be embedded to have forward compatible implementations.
@ -2341,6 +2702,9 @@ func (*UnimplementedDataServiceServer) GetSegmentInfoChannel(ctx context.Context
func (*UnimplementedDataServiceServer) SaveBinlogPaths(ctx context.Context, req *SaveBinlogPathsRequest) (*commonpb.Status, error) { func (*UnimplementedDataServiceServer) SaveBinlogPaths(ctx context.Context, req *SaveBinlogPathsRequest) (*commonpb.Status, error) {
return nil, status.Errorf(codes.Unimplemented, "method SaveBinlogPaths not implemented") return nil, status.Errorf(codes.Unimplemented, "method SaveBinlogPaths not implemented")
} }
func (*UnimplementedDataServiceServer) GetRecoveryInfo(ctx context.Context, req *GetRecoveryInfoRequest) (*GetRecoveryInfoResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetRecoveryInfo not implemented")
}
func RegisterDataServiceServer(s *grpc.Server, srv DataServiceServer) { func RegisterDataServiceServer(s *grpc.Server, srv DataServiceServer) {
s.RegisterService(&_DataService_serviceDesc, srv) s.RegisterService(&_DataService_serviceDesc, srv)
@ -2616,6 +2980,24 @@ func _DataService_SaveBinlogPaths_Handler(srv interface{}, ctx context.Context,
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _DataService_GetRecoveryInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetRecoveryInfoRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DataServiceServer).GetRecoveryInfo(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/milvus.proto.data.DataService/GetRecoveryInfo",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DataServiceServer).GetRecoveryInfo(ctx, req.(*GetRecoveryInfoRequest))
}
return interceptor(ctx, in, info, handler)
}
var _DataService_serviceDesc = grpc.ServiceDesc{ var _DataService_serviceDesc = grpc.ServiceDesc{
ServiceName: "milvus.proto.data.DataService", ServiceName: "milvus.proto.data.DataService",
HandlerType: (*DataServiceServer)(nil), HandlerType: (*DataServiceServer)(nil),
@ -2680,6 +3062,10 @@ var _DataService_serviceDesc = grpc.ServiceDesc{
MethodName: "SaveBinlogPaths", MethodName: "SaveBinlogPaths",
Handler: _DataService_SaveBinlogPaths_Handler, Handler: _DataService_SaveBinlogPaths_Handler,
}, },
{
MethodName: "GetRecoveryInfo",
Handler: _DataService_GetRecoveryInfo_Handler,
},
}, },
Streams: []grpc.StreamDesc{}, Streams: []grpc.StreamDesc{},
Metadata: "data_service.proto", Metadata: "data_service.proto",

View File

@ -61,6 +61,7 @@ type DataService interface {
GetCollectionStatistics(ctx context.Context, req *datapb.GetCollectionStatisticsRequest) (*datapb.GetCollectionStatisticsResponse, error) GetCollectionStatistics(ctx context.Context, req *datapb.GetCollectionStatisticsRequest) (*datapb.GetCollectionStatisticsResponse, error)
GetPartitionStatistics(ctx context.Context, req *datapb.GetPartitionStatisticsRequest) (*datapb.GetPartitionStatisticsResponse, error) GetPartitionStatistics(ctx context.Context, req *datapb.GetPartitionStatisticsRequest) (*datapb.GetPartitionStatisticsResponse, error)
GetSegmentInfo(ctx context.Context, req *datapb.GetSegmentInfoRequest) (*datapb.GetSegmentInfoResponse, error) GetSegmentInfo(ctx context.Context, req *datapb.GetSegmentInfoRequest) (*datapb.GetSegmentInfoResponse, error)
GetRecoveryInfo(ctx context.Context, req *datapb.GetRecoveryInfoRequest) (*datapb.GetRecoveryInfoResponse, error)
} }
type IndexNode interface { type IndexNode interface {