mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-07 19:31:51 +08:00
Add TargetID in MsgBase and querynode v2 API check (#19627)
Signed-off-by: Congqi Xia <congqi.xia@zilliz.com> Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
parent
7e620a7ad1
commit
8c1c8000ac
@ -73,6 +73,7 @@ const (
|
||||
ErrorCode_SegmentNotFound ErrorCode = 47
|
||||
ErrorCode_ForceDeny ErrorCode = 48
|
||||
ErrorCode_RateLimit ErrorCode = 49
|
||||
ErrorCode_NodeIDNotMatch ErrorCode = 50
|
||||
// Service availability.
|
||||
// NA: Not Available.
|
||||
ErrorCode_DataCoordNA ErrorCode = 100
|
||||
@ -130,6 +131,7 @@ var ErrorCode_name = map[int32]string{
|
||||
47: "SegmentNotFound",
|
||||
48: "ForceDeny",
|
||||
49: "RateLimit",
|
||||
50: "NodeIDNotMatch",
|
||||
100: "DataCoordNA",
|
||||
1000: "DDRequestRace",
|
||||
}
|
||||
@ -184,6 +186,7 @@ var ErrorCode_value = map[string]int32{
|
||||
"SegmentNotFound": 47,
|
||||
"ForceDeny": 48,
|
||||
"RateLimit": 49,
|
||||
"NodeIDNotMatch": 50,
|
||||
"DataCoordNA": 100,
|
||||
"DDRequestRace": 1000,
|
||||
}
|
||||
@ -1146,6 +1149,7 @@ type MsgBase struct {
|
||||
MsgID int64 `protobuf:"varint,2,opt,name=msgID,proto3" json:"msgID,omitempty"`
|
||||
Timestamp uint64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
||||
SourceID int64 `protobuf:"varint,4,opt,name=sourceID,proto3" json:"sourceID,omitempty"`
|
||||
TargetID int64 `protobuf:"varint,5,opt,name=targetID,proto3" json:"targetID,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -1204,6 +1208,13 @@ func (m *MsgBase) GetSourceID() int64 {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *MsgBase) GetTargetID() int64 {
|
||||
if m != nil {
|
||||
return m.TargetID
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// Don't Modify This. @czs
|
||||
type MsgHeader struct {
|
||||
Base *MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
|
||||
@ -1393,164 +1404,165 @@ func init() {
|
||||
func init() { proto.RegisterFile("common.proto", fileDescriptor_555bd8c177793206) }
|
||||
|
||||
var fileDescriptor_555bd8c177793206 = []byte{
|
||||
// 2531 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xc9, 0x73, 0x24, 0x47,
|
||||
0xd5, 0x57, 0xa9, 0x5b, 0x4b, 0x67, 0xb7, 0x5a, 0x4f, 0x29, 0x8d, 0xa6, 0x3d, 0x8b, 0x47, 0xd6,
|
||||
0x67, 0x7f, 0x9f, 0xbe, 0xfe, 0x6c, 0x8d, 0x3d, 0x8e, 0xf8, 0x20, 0x88, 0x30, 0x81, 0xd4, 0x2d,
|
||||
0x69, 0x14, 0xd6, 0x46, 0x49, 0x63, 0x08, 0x22, 0x60, 0x22, 0xbb, 0xea, 0xa9, 0x95, 0x33, 0xd5,
|
||||
0x95, 0x45, 0x65, 0xb6, 0x46, 0xcd, 0xc9, 0x18, 0xf0, 0x85, 0x0b, 0x98, 0x7f, 0x80, 0x3f, 0x00,
|
||||
0x08, 0x76, 0x38, 0xb2, 0x63, 0xb3, 0x9d, 0xd9, 0xe1, 0x08, 0x77, 0x16, 0xe3, 0x95, 0x78, 0x59,
|
||||
0xd5, 0x55, 0xd5, 0x9a, 0x31, 0x1c, 0xb8, 0x75, 0xfe, 0xde, 0xcb, 0xb7, 0xe5, 0xdb, 0xaa, 0x59,
|
||||
0xcd, 0x53, 0xbd, 0x9e, 0x0a, 0x57, 0xa3, 0x58, 0x19, 0xc5, 0xe7, 0x7b, 0x32, 0x38, 0xed, 0xeb,
|
||||
0xe4, 0xb4, 0x9a, 0x90, 0x2e, 0x2d, 0x75, 0x95, 0xea, 0x06, 0x78, 0xdd, 0x82, 0x9d, 0xfe, 0xf1,
|
||||
0x75, 0x1f, 0xb5, 0x17, 0xcb, 0xc8, 0xa8, 0x38, 0x61, 0x5c, 0xbe, 0xcd, 0x26, 0x0f, 0x8d, 0x30,
|
||||
0x7d, 0xcd, 0x9f, 0x61, 0x0c, 0xe3, 0x58, 0xc5, 0xb7, 0x3d, 0xe5, 0x63, 0xc3, 0x59, 0x72, 0x56,
|
||||
0xea, 0x37, 0x1e, 0x5e, 0x7d, 0x80, 0xd4, 0xd5, 0x0d, 0x62, 0x6b, 0x29, 0x1f, 0xdd, 0x0a, 0x0e,
|
||||
0x7f, 0xf2, 0x45, 0x36, 0x19, 0xa3, 0xd0, 0x2a, 0x6c, 0x8c, 0x2f, 0x39, 0x2b, 0x15, 0x37, 0x3d,
|
||||
0x2d, 0xff, 0x3f, 0xab, 0x3d, 0x8b, 0x83, 0xe7, 0x44, 0xd0, 0xc7, 0x03, 0x21, 0x63, 0x0e, 0xac,
|
||||
0x74, 0x17, 0x07, 0x56, 0x7e, 0xc5, 0xa5, 0x9f, 0x7c, 0x81, 0x4d, 0x9c, 0x12, 0x39, 0xbd, 0x98,
|
||||
0x1c, 0x96, 0x9f, 0x66, 0xd5, 0x67, 0x71, 0xd0, 0x16, 0x46, 0xbc, 0xc3, 0x35, 0xce, 0xca, 0xbe,
|
||||
0x30, 0xc2, 0xde, 0xaa, 0xb9, 0xf6, 0xf7, 0xf2, 0x15, 0x56, 0x5e, 0x0f, 0x54, 0x27, 0x17, 0xe9,
|
||||
0x58, 0x62, 0x2a, 0xf2, 0x94, 0xc1, 0x41, 0x20, 0x3c, 0x3c, 0x51, 0x81, 0x8f, 0xb1, 0x35, 0x89,
|
||||
0xe4, 0x1a, 0xd1, 0x1d, 0xca, 0x35, 0xa2, 0xcb, 0xdf, 0xcd, 0xca, 0x66, 0x10, 0x25, 0xd6, 0xd4,
|
||||
0x6f, 0x3c, 0xfa, 0xc0, 0x08, 0x14, 0xc4, 0x1c, 0x0d, 0x22, 0x74, 0xed, 0x0d, 0x0a, 0x81, 0x55,
|
||||
0xa4, 0x1b, 0xa5, 0xa5, 0xd2, 0x4a, 0xcd, 0x4d, 0x4f, 0xcb, 0x1f, 0x1e, 0xd1, 0xbb, 0x15, 0xab,
|
||||
0x7e, 0xc4, 0xb7, 0x59, 0x2d, 0xca, 0x31, 0xdd, 0x70, 0x96, 0x4a, 0x2b, 0xd5, 0x1b, 0x8f, 0xfd,
|
||||
0x3b, 0x6d, 0xd6, 0x68, 0x77, 0xe4, 0xea, 0xf2, 0x13, 0x6c, 0x6a, 0xcd, 0xf7, 0x63, 0xd4, 0x9a,
|
||||
0xd7, 0xd9, 0xb8, 0x8c, 0x52, 0x67, 0xc6, 0x65, 0x44, 0x31, 0x8a, 0x54, 0x6c, 0xac, 0x2f, 0x25,
|
||||
0xd7, 0xfe, 0x5e, 0x7e, 0xc9, 0x61, 0x53, 0xbb, 0xba, 0xbb, 0x2e, 0x34, 0xf2, 0x77, 0xb1, 0xe9,
|
||||
0x9e, 0xee, 0xde, 0xb6, 0xfe, 0x26, 0x2f, 0x7e, 0xe5, 0x81, 0x16, 0xec, 0xea, 0xae, 0xf5, 0x73,
|
||||
0xaa, 0x97, 0xfc, 0xa0, 0x00, 0xf7, 0x74, 0x77, 0xbb, 0x9d, 0x4a, 0x4e, 0x0e, 0xfc, 0x0a, 0xab,
|
||||
0x18, 0xd9, 0x43, 0x6d, 0x44, 0x2f, 0x6a, 0x94, 0x96, 0x9c, 0x95, 0xb2, 0x9b, 0x03, 0xfc, 0x12,
|
||||
0x9b, 0xd6, 0xaa, 0x1f, 0x7b, 0xb8, 0xdd, 0x6e, 0x94, 0xed, 0xb5, 0xec, 0xbc, 0xfc, 0x0c, 0xab,
|
||||
0xec, 0xea, 0xee, 0x4d, 0x14, 0x3e, 0xc6, 0xfc, 0x49, 0x56, 0xee, 0x08, 0x9d, 0x58, 0x54, 0x7d,
|
||||
0x67, 0x8b, 0xc8, 0x03, 0xd7, 0x72, 0x2e, 0x7f, 0x84, 0xd5, 0xda, 0xbb, 0x3b, 0xff, 0x81, 0x04,
|
||||
0x32, 0x5d, 0x9f, 0x88, 0xd8, 0xdf, 0x13, 0xbd, 0x61, 0x22, 0xe6, 0xc0, 0xf2, 0xeb, 0x0e, 0xab,
|
||||
0x1d, 0xc4, 0xf2, 0x54, 0x06, 0xd8, 0xc5, 0x8d, 0x33, 0xc3, 0xdf, 0xc7, 0xaa, 0xaa, 0x73, 0x07,
|
||||
0x3d, 0x53, 0x8c, 0xdd, 0xb5, 0x07, 0xea, 0xd9, 0xb7, 0x7c, 0x36, 0x7c, 0x4c, 0x65, 0xbf, 0xf9,
|
||||
0x3e, 0x83, 0x54, 0x42, 0x34, 0x14, 0xfc, 0x2f, 0x53, 0x2e, 0x11, 0x93, 0x19, 0xe1, 0xce, 0xaa,
|
||||
0x51, 0x80, 0x37, 0xd9, 0x5c, 0x2a, 0x30, 0x14, 0x3d, 0xbc, 0x2d, 0x43, 0x1f, 0xcf, 0xec, 0x23,
|
||||
0x4c, 0x0c, 0x79, 0xc9, 0x95, 0x6d, 0x82, 0xf9, 0xe3, 0x8c, 0xdf, 0xc7, 0xab, 0xed, 0xa3, 0x4c,
|
||||
0xb8, 0x70, 0x8e, 0x59, 0x37, 0x5f, 0xa8, 0xb0, 0x4a, 0x56, 0xf3, 0xbc, 0xca, 0xa6, 0x0e, 0xfb,
|
||||
0x9e, 0x87, 0x5a, 0xc3, 0x18, 0x9f, 0x67, 0xb3, 0xb7, 0x42, 0x3c, 0x8b, 0xd0, 0x33, 0xe8, 0x5b,
|
||||
0x1e, 0x70, 0xf8, 0x1c, 0x9b, 0x69, 0xa9, 0x30, 0x44, 0xcf, 0x6c, 0x0a, 0x19, 0xa0, 0x0f, 0xe3,
|
||||
0x7c, 0x81, 0xc1, 0x01, 0xc6, 0x3d, 0xa9, 0xb5, 0x54, 0x61, 0x1b, 0x43, 0x89, 0x3e, 0x94, 0xf8,
|
||||
0x45, 0x36, 0xdf, 0x52, 0x41, 0x80, 0x9e, 0x91, 0x2a, 0xdc, 0x53, 0x66, 0xe3, 0x4c, 0x6a, 0xa3,
|
||||
0xa1, 0x4c, 0x62, 0xb7, 0x83, 0x00, 0xbb, 0x22, 0x58, 0x8b, 0xbb, 0xfd, 0x1e, 0x86, 0x06, 0x26,
|
||||
0x48, 0x46, 0x0a, 0xb6, 0x65, 0x0f, 0x43, 0x92, 0x04, 0x53, 0x05, 0xd4, 0x5a, 0x4b, 0xb1, 0x85,
|
||||
0x69, 0xfe, 0x10, 0xbb, 0x90, 0xa2, 0x05, 0x05, 0xa2, 0x87, 0x50, 0xe1, 0xb3, 0xac, 0x9a, 0x92,
|
||||
0x8e, 0xf6, 0x0f, 0x9e, 0x05, 0x56, 0x90, 0xe0, 0xaa, 0x7b, 0x2e, 0x7a, 0x2a, 0xf6, 0xa1, 0x5a,
|
||||
0x30, 0xe1, 0x39, 0xf4, 0x8c, 0x8a, 0xb7, 0xdb, 0x50, 0x23, 0x83, 0x53, 0xf0, 0x10, 0x45, 0xec,
|
||||
0x9d, 0xb8, 0xa8, 0xfb, 0x81, 0x81, 0x19, 0x0e, 0xac, 0xb6, 0x29, 0x03, 0xdc, 0x53, 0x66, 0x53,
|
||||
0xf5, 0x43, 0x1f, 0xea, 0xbc, 0xce, 0xd8, 0x2e, 0x1a, 0x91, 0x46, 0x60, 0x96, 0xd4, 0xb6, 0x84,
|
||||
0x77, 0x82, 0x29, 0x00, 0x7c, 0x91, 0xf1, 0x96, 0x08, 0x43, 0x65, 0x5a, 0x31, 0x0a, 0x83, 0x9b,
|
||||
0xb6, 0x9a, 0x61, 0x8e, 0xcc, 0x19, 0xc1, 0x65, 0x80, 0xc0, 0x73, 0xee, 0x36, 0x06, 0x98, 0x71,
|
||||
0xcf, 0xe7, 0xdc, 0x29, 0x4e, 0xdc, 0x0b, 0x64, 0xfc, 0x7a, 0x5f, 0x06, 0xbe, 0x0d, 0x49, 0xf2,
|
||||
0x2c, 0x17, 0xc8, 0xc6, 0xd4, 0xf8, 0xbd, 0x9d, 0xed, 0xc3, 0x23, 0x58, 0xe4, 0x17, 0xd8, 0x5c,
|
||||
0x8a, 0xec, 0xa2, 0x89, 0xa5, 0x67, 0x83, 0x77, 0x91, 0x4c, 0xdd, 0xef, 0x9b, 0xfd, 0xe3, 0x5d,
|
||||
0xec, 0xa9, 0x78, 0x00, 0x0d, 0x7a, 0x50, 0x2b, 0x69, 0xf8, 0x44, 0xf0, 0x10, 0x69, 0xd8, 0xe8,
|
||||
0x45, 0x66, 0x90, 0x87, 0x17, 0x2e, 0xf1, 0xcb, 0xec, 0xe2, 0xad, 0xc8, 0x17, 0x06, 0xb7, 0x7b,
|
||||
0xd4, 0x6a, 0x8e, 0x84, 0xbe, 0x4b, 0xee, 0xf6, 0x63, 0x84, 0xcb, 0xfc, 0x12, 0x5b, 0x1c, 0x7d,
|
||||
0x8b, 0x2c, 0x58, 0x57, 0xe8, 0x62, 0xe2, 0x6d, 0x2b, 0x46, 0x1f, 0x43, 0x23, 0x45, 0x30, 0xbc,
|
||||
0x78, 0x35, 0x97, 0x7a, 0x3f, 0xf1, 0x61, 0x22, 0x26, 0x9e, 0xdf, 0x4f, 0xbc, 0xc6, 0x1b, 0x6c,
|
||||
0x61, 0x0b, 0xcd, 0xfd, 0x94, 0x25, 0xa2, 0xec, 0x48, 0x6d, 0x49, 0xb7, 0x34, 0xc6, 0x7a, 0x48,
|
||||
0x79, 0x84, 0x73, 0x56, 0xdf, 0x42, 0x43, 0xe0, 0x10, 0x5b, 0xa6, 0x38, 0x25, 0xe6, 0xb9, 0x2a,
|
||||
0xc0, 0x21, 0xfc, 0x5f, 0x14, 0x83, 0x76, 0xac, 0xa2, 0x22, 0xf8, 0x28, 0xb9, 0xb9, 0x1f, 0x61,
|
||||
0x2c, 0x0c, 0x92, 0x8c, 0x22, 0xed, 0x31, 0x92, 0x73, 0x88, 0x14, 0x81, 0x22, 0xfc, 0xdf, 0x39,
|
||||
0x5c, 0xd4, 0xfa, 0x3f, 0x94, 0xc3, 0x29, 0x37, 0x26, 0x7d, 0x72, 0x48, 0x5a, 0x21, 0xaf, 0x53,
|
||||
0x25, 0x59, 0xfd, 0x0f, 0x89, 0xff, 0x4b, 0xa9, 0x92, 0xdc, 0xdb, 0x8a, 0x45, 0x68, 0x86, 0x78,
|
||||
0x93, 0x3f, 0xc2, 0xae, 0xba, 0x78, 0x1c, 0xa3, 0x3e, 0x39, 0x50, 0x81, 0xf4, 0x06, 0xdb, 0xe1,
|
||||
0xb1, 0xca, 0x52, 0x92, 0x58, 0xfe, 0x8f, 0x2c, 0xa1, 0xb0, 0x24, 0xf4, 0x21, 0xfc, 0x38, 0xc5,
|
||||
0x64, 0x4f, 0x99, 0x43, 0x6a, 0x87, 0x3b, 0xb6, 0xc1, 0xc2, 0x13, 0xa4, 0x65, 0x4f, 0xb9, 0x18,
|
||||
0x05, 0xd2, 0x13, 0x6b, 0xa7, 0x42, 0x06, 0xa2, 0x13, 0x20, 0xac, 0x52, 0x50, 0x0e, 0xb1, 0x4b,
|
||||
0x25, 0x9b, 0xbd, 0xef, 0x75, 0x3e, 0xc3, 0x2a, 0x9b, 0x2a, 0xf6, 0xb0, 0x8d, 0xe1, 0x00, 0x9e,
|
||||
0xa4, 0xa3, 0x2b, 0x0c, 0xee, 0xc8, 0x9e, 0x34, 0xf0, 0x14, 0xe5, 0x1b, 0xcd, 0xf9, 0x96, 0x52,
|
||||
0xb1, 0xbf, 0xb7, 0x06, 0x3e, 0xe7, 0x6c, 0xa6, 0xdd, 0x76, 0xf1, 0xa3, 0x7d, 0xd4, 0xc6, 0x15,
|
||||
0x1e, 0xc2, 0x9f, 0xa6, 0x9a, 0x1e, 0x63, 0x36, 0x07, 0x69, 0x5b, 0x41, 0xb2, 0x28, 0x3f, 0xed,
|
||||
0xa9, 0x10, 0x61, 0x8c, 0xd7, 0xd8, 0xf4, 0xad, 0x50, 0x6a, 0xdd, 0x47, 0x1f, 0x1c, 0xaa, 0xbf,
|
||||
0xed, 0xf0, 0x20, 0x56, 0x5d, 0x1a, 0x8c, 0x30, 0x4e, 0xd4, 0x4d, 0x19, 0x4a, 0x7d, 0x62, 0x3b,
|
||||
0x0f, 0x63, 0x93, 0x69, 0x21, 0x96, 0x79, 0x85, 0x4d, 0xb8, 0x68, 0xe2, 0x01, 0x4c, 0x34, 0x5f,
|
||||
0x70, 0x58, 0x2d, 0xb5, 0x3e, 0xd1, 0xb3, 0xc0, 0xa0, 0x78, 0xce, 0x35, 0x65, 0xa5, 0xe0, 0x50,
|
||||
0x43, 0xdc, 0x8a, 0xd5, 0x3d, 0x19, 0x76, 0x61, 0x9c, 0x04, 0x1f, 0xa2, 0x08, 0xac, 0x92, 0x2a,
|
||||
0x9b, 0xda, 0x0c, 0xfa, 0x56, 0x63, 0xd9, 0xea, 0xa7, 0x03, 0xb1, 0x4d, 0x10, 0x89, 0x52, 0x27,
|
||||
0x42, 0x1f, 0x26, 0x29, 0x1c, 0x49, 0xc1, 0x10, 0x6d, 0xaa, 0xf9, 0x5e, 0x36, 0x7b, 0x6e, 0xbf,
|
||||
0xe0, 0xd3, 0xac, 0x9c, 0xaa, 0x06, 0x56, 0x5b, 0x97, 0xa1, 0x88, 0x07, 0x49, 0x57, 0x02, 0x9f,
|
||||
0xa2, 0xb7, 0x19, 0x28, 0x61, 0x52, 0x00, 0x9b, 0xaf, 0xd6, 0xec, 0x80, 0xb7, 0x17, 0x67, 0x58,
|
||||
0xe5, 0x56, 0xe8, 0xe3, 0xb1, 0x0c, 0xd1, 0x87, 0x31, 0xdb, 0x2d, 0x92, 0x3a, 0xcb, 0xcb, 0x96,
|
||||
0xc2, 0x5d, 0x27, 0x63, 0x0a, 0x18, 0x52, 0xc9, 0xdf, 0x14, 0xba, 0x00, 0x1d, 0xd3, 0x8b, 0xb7,
|
||||
0xed, 0xfa, 0xd8, 0x29, 0x5e, 0xef, 0xda, 0x17, 0x3f, 0x51, 0xf7, 0x72, 0x4c, 0xc3, 0x09, 0x69,
|
||||
0xda, 0x42, 0x73, 0x38, 0xd0, 0x06, 0x7b, 0x2d, 0x15, 0x1e, 0xcb, 0xae, 0x06, 0x49, 0x9a, 0x76,
|
||||
0x94, 0xf0, 0x0b, 0xd7, 0xef, 0x50, 0xce, 0xb9, 0x18, 0xa0, 0xd0, 0x45, 0xa9, 0x77, 0x6d, 0xbf,
|
||||
0xb4, 0xa6, 0xae, 0x05, 0x52, 0x68, 0x08, 0xc8, 0x15, 0xb2, 0x32, 0x39, 0xf6, 0xe8, 0x7d, 0xd7,
|
||||
0x02, 0x83, 0x71, 0x72, 0x0e, 0xf9, 0x02, 0x9b, 0x4d, 0xf8, 0x0f, 0x44, 0x6c, 0xa4, 0x15, 0xf2,
|
||||
0xb2, 0x63, 0x33, 0x29, 0x56, 0x51, 0x8e, 0xbd, 0x42, 0xe3, 0xa9, 0x76, 0x53, 0xe8, 0x1c, 0xfa,
|
||||
0x89, 0xc3, 0x17, 0xd9, 0xdc, 0xd0, 0xb5, 0x1c, 0xff, 0xa9, 0xc3, 0xe7, 0x59, 0x9d, 0x5c, 0xcb,
|
||||
0x30, 0x0d, 0x3f, 0xb3, 0x20, 0x39, 0x51, 0x00, 0x7f, 0x6e, 0x25, 0xa4, 0x5e, 0x14, 0xf0, 0x5f,
|
||||
0x58, 0x65, 0x24, 0x21, 0x4d, 0x22, 0x0d, 0xaf, 0x39, 0x64, 0xe9, 0x50, 0x59, 0x0a, 0xc3, 0xeb,
|
||||
0x96, 0x91, 0xa4, 0x66, 0x8c, 0x6f, 0x58, 0xc6, 0x54, 0x66, 0x86, 0xbe, 0x69, 0xd1, 0x9b, 0x22,
|
||||
0xf4, 0xd5, 0xf1, 0x71, 0x86, 0xbe, 0xe5, 0xf0, 0x06, 0x9b, 0xa7, 0xeb, 0xeb, 0x22, 0x10, 0xa1,
|
||||
0x97, 0xf3, 0xbf, 0xed, 0xf0, 0x0b, 0x0c, 0xce, 0xa9, 0xd3, 0xf0, 0xfc, 0x38, 0x87, 0x61, 0x7c,
|
||||
0x6d, 0x1d, 0xc1, 0x17, 0xc6, 0x6d, 0xac, 0x52, 0xc6, 0x04, 0xfb, 0xe2, 0x38, 0xaf, 0x27, 0x41,
|
||||
0x4f, 0xce, 0x5f, 0x1a, 0xe7, 0x55, 0x36, 0xb9, 0x1d, 0x6a, 0x8c, 0x0d, 0x7c, 0x86, 0xf2, 0x7b,
|
||||
0x32, 0xe9, 0xbd, 0xf0, 0x59, 0xaa, 0xa8, 0x09, 0x9b, 0xdf, 0xf0, 0x12, 0xcd, 0x75, 0xee, 0xa2,
|
||||
0xc6, 0xd0, 0x2f, 0xd4, 0x8e, 0x86, 0xcf, 0xd9, 0x1b, 0xc9, 0xe0, 0x84, 0xbf, 0x94, 0x6c, 0x68,
|
||||
0x8a, 0x53, 0xf4, 0xaf, 0x25, 0x32, 0x61, 0x0b, 0x4d, 0x5e, 0xd9, 0xf0, 0xb7, 0x12, 0xbf, 0xc4,
|
||||
0x2e, 0x0c, 0x31, 0x3b, 0xd3, 0xb2, 0x9a, 0xfe, 0x7b, 0x89, 0x5f, 0x61, 0x17, 0xa9, 0xc1, 0x67,
|
||||
0x79, 0x43, 0x97, 0xa4, 0x36, 0xd2, 0xd3, 0xf0, 0x6a, 0x89, 0x5f, 0x66, 0x8b, 0x5b, 0x68, 0xb2,
|
||||
0xf7, 0x28, 0x10, 0xff, 0x51, 0xe2, 0x33, 0x6c, 0x9a, 0xaa, 0x5e, 0xe2, 0x29, 0xc2, 0x6b, 0x25,
|
||||
0x7a, 0xd4, 0xe1, 0x31, 0x35, 0xe7, 0xf5, 0x12, 0x85, 0xfa, 0x03, 0xc2, 0x78, 0x27, 0xed, 0x5e,
|
||||
0xeb, 0x44, 0x84, 0x21, 0x06, 0x1a, 0xde, 0x28, 0x51, 0x40, 0x5d, 0xec, 0xa9, 0x53, 0x2c, 0xc0,
|
||||
0x6f, 0x5a, 0xa7, 0x2d, 0xf3, 0xfb, 0xfb, 0x18, 0x0f, 0x32, 0xc2, 0x5b, 0x25, 0x7a, 0x9a, 0x84,
|
||||
0x7f, 0x94, 0xf2, 0x76, 0x89, 0x5f, 0x65, 0x8d, 0xa4, 0x59, 0x0c, 0x1f, 0x86, 0x88, 0x5d, 0xa4,
|
||||
0xc6, 0x0c, 0xcf, 0x97, 0x33, 0x89, 0x6d, 0x0c, 0x8c, 0xc8, 0xee, 0x7d, 0xbc, 0x4c, 0x76, 0x51,
|
||||
0x71, 0xe5, 0xfd, 0x58, 0xc3, 0x0b, 0x65, 0x7a, 0xd1, 0x2d, 0x34, 0x69, 0x4b, 0xd6, 0xf0, 0x09,
|
||||
0x5a, 0xa3, 0xea, 0xb7, 0x42, 0xdd, 0xef, 0x64, 0x86, 0xc2, 0x27, 0x87, 0x97, 0xdb, 0x52, 0x9b,
|
||||
0x58, 0x76, 0xfa, 0x36, 0xd3, 0x3f, 0x55, 0x26, 0xa7, 0x0e, 0x07, 0xa1, 0x37, 0x02, 0xbf, 0x68,
|
||||
0x65, 0xa6, 0xb6, 0x59, 0xa3, 0x7e, 0x59, 0xe6, 0xb3, 0x8c, 0x25, 0x55, 0x6d, 0x81, 0x5f, 0x0d,
|
||||
0xe5, 0xd1, 0xde, 0x74, 0x8a, 0xb1, 0x1d, 0x2a, 0xf0, 0xeb, 0xcc, 0xc4, 0x42, 0xef, 0x84, 0xdf,
|
||||
0x94, 0x29, 0xe8, 0x47, 0xb2, 0x87, 0x47, 0xd2, 0xbb, 0x0b, 0x5f, 0xae, 0x90, 0x7d, 0x36, 0x26,
|
||||
0x7b, 0xca, 0xc7, 0x24, 0x47, 0xbe, 0x52, 0xa1, 0x94, 0xa3, 0x4c, 0x4e, 0x52, 0xee, 0xab, 0xf6,
|
||||
0x9c, 0x8e, 0x82, 0xed, 0x36, 0x7c, 0x8d, 0xf6, 0x37, 0x96, 0x9e, 0x8f, 0x0e, 0xf7, 0xe1, 0xeb,
|
||||
0x15, 0x52, 0xb5, 0x16, 0x04, 0xca, 0x13, 0x26, 0xab, 0xa7, 0x6f, 0x54, 0xa8, 0x20, 0x0b, 0xda,
|
||||
0xd3, 0x77, 0xff, 0x66, 0xc5, 0x3a, 0x9a, 0xe0, 0x36, 0x5d, 0xdb, 0xd4, 0x56, 0xbf, 0x65, 0xa5,
|
||||
0xd2, 0x0c, 0x22, 0x4b, 0x8e, 0x0c, 0x7c, 0xdb, 0xf2, 0x9d, 0x5f, 0x49, 0xe0, 0xb7, 0xd5, 0x34,
|
||||
0x43, 0x0b, 0xd8, 0xef, 0xaa, 0x49, 0x85, 0x8d, 0xee, 0x20, 0xf0, 0x7b, 0x0b, 0x9f, 0xdf, 0x5b,
|
||||
0xe0, 0x0f, 0x55, 0x32, 0xac, 0xb8, 0x7a, 0xd0, 0x02, 0xae, 0xe1, 0x8f, 0x55, 0xb2, 0x20, 0x5f,
|
||||
0x32, 0xe0, 0x3b, 0x35, 0x0a, 0xd6, 0x70, 0xbd, 0x80, 0xef, 0xd6, 0xc8, 0xcd, 0x73, 0x8b, 0x05,
|
||||
0x7c, 0xaf, 0x66, 0x9f, 0x23, 0x5b, 0x29, 0xe0, 0xfb, 0x05, 0x80, 0xb8, 0xe0, 0x07, 0x35, 0xdb,
|
||||
0xc3, 0x46, 0xd6, 0x08, 0xf8, 0x61, 0x8d, 0x6c, 0x3b, 0xbf, 0x40, 0xc0, 0x8f, 0x6a, 0xc9, 0x73,
|
||||
0x67, 0xab, 0x03, 0xfc, 0xb8, 0x46, 0x35, 0xf4, 0xe0, 0xa5, 0x01, 0x5e, 0xb6, 0xba, 0xf2, 0x75,
|
||||
0x01, 0x5e, 0xa9, 0x35, 0x97, 0xd9, 0x54, 0x5b, 0x07, 0x76, 0xf2, 0x4c, 0xb1, 0x52, 0x5b, 0x07,
|
||||
0x30, 0x46, 0x8d, 0x7a, 0x5d, 0xa9, 0x60, 0xe3, 0x2c, 0x8a, 0x9f, 0x7b, 0x0a, 0x9c, 0xe6, 0x3a,
|
||||
0x9b, 0x6d, 0xa9, 0x5e, 0x24, 0xb2, 0x82, 0xb5, 0xc3, 0x26, 0x99, 0x52, 0xe8, 0x27, 0xa9, 0x32,
|
||||
0x46, 0xdd, 0x7e, 0xe3, 0x0c, 0xbd, 0xbe, 0x9d, 0x89, 0x0e, 0x1d, 0xe9, 0x12, 0x05, 0xd9, 0x87,
|
||||
0xf1, 0xe6, 0x07, 0x19, 0xb4, 0x54, 0xa8, 0xa5, 0x36, 0x18, 0x7a, 0x83, 0x1d, 0x3c, 0xc5, 0xc0,
|
||||
0x4e, 0x5e, 0x13, 0xab, 0xb0, 0x0b, 0x63, 0xf6, 0x1b, 0x05, 0xed, 0xb7, 0x46, 0x32, 0x9f, 0xd7,
|
||||
0x69, 0x0f, 0xb1, 0x1f, 0x22, 0x75, 0xc6, 0x36, 0x4e, 0x31, 0x34, 0x7d, 0x11, 0x04, 0x03, 0x28,
|
||||
0xd1, 0xb9, 0xd5, 0xd7, 0x46, 0xf5, 0xe4, 0xc7, 0x68, 0x4c, 0x37, 0x3f, 0xed, 0xb0, 0x6a, 0x32,
|
||||
0x8c, 0x33, 0xd3, 0x92, 0xe3, 0x01, 0x86, 0xbe, 0xb4, 0xc2, 0x69, 0x8f, 0xb6, 0x50, 0xba, 0x41,
|
||||
0x38, 0x39, 0xd3, 0xa1, 0x11, 0xb1, 0xb5, 0xd0, 0x7e, 0x3e, 0xa4, 0xf7, 0x62, 0x6b, 0xa7, 0x0f,
|
||||
0x13, 0x39, 0x98, 0xfb, 0x32, 0x49, 0x0b, 0x63, 0x51, 0xdc, 0x5a, 0xe8, 0xb7, 0x02, 0x14, 0x34,
|
||||
0xaf, 0xa7, 0x9a, 0x37, 0x18, 0xcb, 0x3f, 0x1f, 0xad, 0xad, 0xf9, 0x88, 0x1c, 0x23, 0x8f, 0xb7,
|
||||
0x02, 0xd5, 0x11, 0x01, 0x38, 0xb4, 0x21, 0xd8, 0x07, 0x1f, 0x6f, 0xbe, 0x38, 0xc1, 0x66, 0xcf,
|
||||
0x7d, 0x2c, 0x92, 0xc9, 0xd9, 0x61, 0x2d, 0xa0, 0x57, 0xb9, 0xca, 0x1e, 0xca, 0x90, 0xfb, 0x56,
|
||||
0x02, 0x87, 0x16, 0xcc, 0x8c, 0x7c, 0x6e, 0x37, 0x18, 0xe7, 0xd7, 0xd8, 0xe5, 0x9c, 0x78, 0xff,
|
||||
0x46, 0x40, 0x6d, 0xb9, 0x91, 0x31, 0x9c, 0x5f, 0x0d, 0xca, 0x14, 0xad, 0x8c, 0x4a, 0x95, 0x9e,
|
||||
0x7c, 0xda, 0xe5, 0x5f, 0xb6, 0xc9, 0xc8, 0x83, 0x49, 0xfa, 0xda, 0xca, 0x6d, 0xcc, 0x52, 0x06,
|
||||
0xa6, 0x28, 0x8e, 0x19, 0x21, 0x1d, 0x47, 0xd3, 0x23, 0x60, 0x3a, 0x96, 0x2a, 0x14, 0xdc, 0x0c,
|
||||
0xa4, 0x7e, 0x94, 0xb7, 0x02, 0x46, 0xdf, 0x00, 0xe7, 0x42, 0x90, 0xf4, 0x9c, 0xea, 0x08, 0xc5,
|
||||
0x62, 0x6d, 0x34, 0x42, 0x06, 0x50, 0xa3, 0x1d, 0x68, 0x24, 0x2e, 0xc9, 0x8d, 0x99, 0x11, 0xe5,
|
||||
0xe9, 0x84, 0xab, 0xd3, 0xb6, 0x93, 0xaf, 0xe7, 0x76, 0x36, 0xce, 0x8e, 0x60, 0xb6, 0xf7, 0x01,
|
||||
0x8c, 0xa8, 0x2b, 0x0c, 0x71, 0x98, 0x1b, 0x75, 0xd4, 0x26, 0x09, 0xf0, 0x91, 0xe8, 0x26, 0x76,
|
||||
0xef, 0xdf, 0x0b, 0x31, 0xd6, 0x27, 0x32, 0x82, 0xf9, 0x91, 0xa0, 0x25, 0xed, 0xc7, 0xe6, 0xc5,
|
||||
0xc2, 0x48, 0x28, 0xc8, 0xf4, 0xfc, 0xd2, 0x85, 0xd1, 0x07, 0xb3, 0x0d, 0x20, 0xa7, 0x2e, 0x8e,
|
||||
0x50, 0x77, 0x45, 0x28, 0xba, 0x05, 0x85, 0x17, 0x47, 0x14, 0x16, 0x3a, 0x4f, 0xe3, 0x3d, 0x8a,
|
||||
0xcd, 0x65, 0x7f, 0x6d, 0xdc, 0xc6, 0x33, 0x73, 0x5b, 0x75, 0xee, 0xf0, 0x6b, 0xab, 0xc9, 0x5f,
|
||||
0x92, 0xab, 0xc3, 0xbf, 0x24, 0x57, 0x77, 0x51, 0x6b, 0x12, 0x19, 0xd9, 0xfc, 0x68, 0xfc, 0x79,
|
||||
0xca, 0xfe, 0x67, 0xf3, 0xc8, 0x83, 0xff, 0x09, 0x2b, 0xfc, 0x07, 0xe3, 0xce, 0x46, 0x85, 0xd3,
|
||||
0x7e, 0xe7, 0xce, 0xfa, 0x0e, 0xab, 0x4b, 0x35, 0xbc, 0xd7, 0x8d, 0x23, 0x6f, 0xbd, 0xda, 0xb2,
|
||||
0xf7, 0x0e, 0x48, 0xc6, 0x81, 0xf3, 0xa1, 0x95, 0xae, 0x34, 0x27, 0xfd, 0x0e, 0x49, 0xbb, 0x9e,
|
||||
0xb0, 0x3d, 0x21, 0x55, 0xfa, 0xeb, 0xba, 0x88, 0xe4, 0xf5, 0x44, 0x4d, 0xd4, 0xf9, 0xbc, 0xe3,
|
||||
0x74, 0x26, 0xad, 0xe6, 0xa7, 0xff, 0x19, 0x00, 0x00, 0xff, 0xff, 0x05, 0x17, 0xce, 0xdd, 0x67,
|
||||
0x15, 0x00, 0x00,
|
||||
// 2552 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xc9, 0x73, 0x63, 0x47,
|
||||
0x19, 0x9f, 0x67, 0xc9, 0x96, 0xd5, 0x92, 0xe5, 0x76, 0xdb, 0xe3, 0x51, 0x66, 0xc9, 0x38, 0x26,
|
||||
0x01, 0x23, 0x12, 0x4f, 0x32, 0xa9, 0x02, 0x8a, 0xaa, 0x50, 0xd8, 0x92, 0xed, 0x51, 0xc5, 0x1b,
|
||||
0xcf, 0x9e, 0x40, 0x51, 0x05, 0x53, 0xad, 0xf7, 0x3e, 0xcb, 0x3d, 0xf3, 0xf4, 0xfa, 0xf1, 0xba,
|
||||
0xe5, 0xb1, 0x38, 0x85, 0x00, 0xb9, 0x70, 0x61, 0xa9, 0xe2, 0xcc, 0x1f, 0x00, 0x29, 0x76, 0x38,
|
||||
0xb2, 0x93, 0xb0, 0x9d, 0xd9, 0xe1, 0x08, 0x77, 0x96, 0x90, 0x95, 0xfa, 0xba, 0xdf, 0x26, 0xcf,
|
||||
0x04, 0x0e, 0xdc, 0xd4, 0xbf, 0xef, 0xeb, 0x6f, 0xeb, 0x6f, 0x7b, 0x22, 0x75, 0x4f, 0x0e, 0x06,
|
||||
0x32, 0x5c, 0x8d, 0x62, 0xa9, 0x25, 0x9b, 0x1f, 0x88, 0xe0, 0x64, 0xa8, 0xec, 0x69, 0xd5, 0x92,
|
||||
0x2e, 0x2e, 0xf5, 0xa5, 0xec, 0x07, 0x70, 0xcd, 0x80, 0xbd, 0xe1, 0xd1, 0x35, 0x1f, 0x94, 0x17,
|
||||
0x8b, 0x48, 0xcb, 0xd8, 0x32, 0x2e, 0xdf, 0x22, 0x53, 0x07, 0x9a, 0xeb, 0xa1, 0x62, 0x4f, 0x11,
|
||||
0x02, 0x71, 0x2c, 0xe3, 0x5b, 0x9e, 0xf4, 0xa1, 0xe9, 0x2c, 0x39, 0x2b, 0x8d, 0xeb, 0x0f, 0xae,
|
||||
0xde, 0x47, 0xea, 0xea, 0x06, 0xb2, 0xb5, 0xa5, 0x0f, 0x6e, 0x15, 0xd2, 0x9f, 0x6c, 0x91, 0x4c,
|
||||
0xc5, 0xc0, 0x95, 0x0c, 0x9b, 0x13, 0x4b, 0xce, 0x4a, 0xd5, 0x4d, 0x4e, 0xcb, 0xef, 0x26, 0xf5,
|
||||
0xa7, 0x61, 0xf4, 0x0c, 0x0f, 0x86, 0xb0, 0xcf, 0x45, 0xcc, 0x28, 0x29, 0xdd, 0x81, 0x91, 0x91,
|
||||
0x5f, 0x75, 0xf1, 0x27, 0x5b, 0x20, 0x93, 0x27, 0x48, 0x4e, 0x2e, 0xda, 0xc3, 0xf2, 0x93, 0xa4,
|
||||
0xf6, 0x34, 0x8c, 0x3a, 0x5c, 0xf3, 0xb7, 0xb8, 0xc6, 0x48, 0xd9, 0xe7, 0x9a, 0x9b, 0x5b, 0x75,
|
||||
0xd7, 0xfc, 0x5e, 0xbe, 0x4c, 0xca, 0xeb, 0x81, 0xec, 0xe5, 0x22, 0x1d, 0x43, 0x4c, 0x44, 0x9e,
|
||||
0x10, 0xba, 0x1f, 0x70, 0x0f, 0x8e, 0x65, 0xe0, 0x43, 0x6c, 0x4c, 0x42, 0xb9, 0x9a, 0xf7, 0x53,
|
||||
0xb9, 0x9a, 0xf7, 0xd9, 0x7b, 0x49, 0x59, 0x8f, 0x22, 0x6b, 0x4d, 0xe3, 0xfa, 0xc3, 0xf7, 0x8d,
|
||||
0x40, 0x41, 0xcc, 0xe1, 0x28, 0x02, 0xd7, 0xdc, 0xc0, 0x10, 0x18, 0x45, 0xaa, 0x59, 0x5a, 0x2a,
|
||||
0xad, 0xd4, 0xdd, 0xe4, 0xb4, 0xfc, 0xd1, 0x31, 0xbd, 0x5b, 0xb1, 0x1c, 0x46, 0xac, 0x4b, 0xea,
|
||||
0x51, 0x8e, 0xa9, 0xa6, 0xb3, 0x54, 0x5a, 0xa9, 0x5d, 0x7f, 0xe4, 0x7f, 0x69, 0x33, 0x46, 0xbb,
|
||||
0x63, 0x57, 0x97, 0x1f, 0x23, 0x95, 0x35, 0xdf, 0x8f, 0x41, 0x29, 0xd6, 0x20, 0x13, 0x22, 0x4a,
|
||||
0x9c, 0x99, 0x10, 0x11, 0xc6, 0x28, 0x92, 0xb1, 0x36, 0xbe, 0x94, 0x5c, 0xf3, 0x7b, 0xf9, 0x05,
|
||||
0x87, 0x54, 0x76, 0x54, 0x7f, 0x9d, 0x2b, 0x60, 0xef, 0x21, 0xd3, 0x03, 0xd5, 0xbf, 0x65, 0xfc,
|
||||
0xb5, 0x2f, 0x7e, 0xf9, 0xbe, 0x16, 0xec, 0xa8, 0xbe, 0xf1, 0xb3, 0x32, 0xb0, 0x3f, 0x30, 0xc0,
|
||||
0x03, 0xd5, 0xef, 0x76, 0x12, 0xc9, 0xf6, 0xc0, 0x2e, 0x93, 0xaa, 0x16, 0x03, 0x50, 0x9a, 0x0f,
|
||||
0xa2, 0x66, 0x69, 0xc9, 0x59, 0x29, 0xbb, 0x39, 0xc0, 0x2e, 0x92, 0x69, 0x25, 0x87, 0xb1, 0x07,
|
||||
0xdd, 0x4e, 0xb3, 0x6c, 0xae, 0x65, 0x67, 0xa4, 0x69, 0x1e, 0xf7, 0x41, 0x77, 0x3b, 0xcd, 0x49,
|
||||
0x4b, 0x4b, 0xcf, 0xcb, 0x4f, 0x91, 0xea, 0x8e, 0xea, 0xdf, 0x00, 0xee, 0x43, 0xcc, 0x1e, 0x27,
|
||||
0xe5, 0x1e, 0x57, 0xd6, 0xda, 0xda, 0x5b, 0x5b, 0x8b, 0xde, 0xb9, 0x86, 0x73, 0xf9, 0x63, 0xa4,
|
||||
0xde, 0xd9, 0xd9, 0xfe, 0x3f, 0x24, 0xa0, 0x5b, 0xea, 0x98, 0xc7, 0xfe, 0x2e, 0x1f, 0xa4, 0x49,
|
||||
0x9a, 0x03, 0xcb, 0xaf, 0x3a, 0xa4, 0xbe, 0x1f, 0x8b, 0x13, 0x11, 0x40, 0x1f, 0x36, 0x4e, 0x35,
|
||||
0xfb, 0x00, 0xa9, 0xc9, 0xde, 0x6d, 0xf0, 0x74, 0x31, 0xae, 0x57, 0xef, 0xab, 0x67, 0xcf, 0xf0,
|
||||
0x99, 0xd0, 0x12, 0x99, 0xfd, 0x66, 0x7b, 0x84, 0x26, 0x12, 0xa2, 0x54, 0xf0, 0x7f, 0x4d, 0x47,
|
||||
0x2b, 0x26, 0x33, 0xc2, 0x9d, 0x95, 0xe3, 0x00, 0x6b, 0x91, 0xb9, 0x44, 0x60, 0xc8, 0x07, 0x70,
|
||||
0x4b, 0x84, 0x3e, 0x9c, 0x9a, 0x07, 0x9a, 0x4c, 0x79, 0xd1, 0x95, 0x2e, 0xc2, 0xec, 0x51, 0xc2,
|
||||
0xee, 0xe1, 0x55, 0xe6, 0xc1, 0x26, 0x5d, 0x7a, 0x86, 0x59, 0xb5, 0xbe, 0x54, 0x25, 0xd5, 0xac,
|
||||
0x1f, 0xb0, 0x1a, 0xa9, 0x1c, 0x0c, 0x3d, 0x0f, 0x94, 0xa2, 0xe7, 0xd8, 0x3c, 0x99, 0xbd, 0x19,
|
||||
0xc2, 0x69, 0x04, 0x9e, 0x06, 0xdf, 0xf0, 0x50, 0x87, 0xcd, 0x91, 0x99, 0xb6, 0x0c, 0x43, 0xf0,
|
||||
0xf4, 0x26, 0x17, 0x01, 0xf8, 0x74, 0x82, 0x2d, 0x10, 0xba, 0x0f, 0xf1, 0x40, 0x28, 0x25, 0x64,
|
||||
0xd8, 0x81, 0x50, 0x80, 0x4f, 0x4b, 0xec, 0x02, 0x99, 0x6f, 0xcb, 0x20, 0x00, 0x4f, 0x0b, 0x19,
|
||||
0xee, 0x4a, 0xbd, 0x71, 0x2a, 0x94, 0x56, 0xb4, 0x8c, 0x62, 0xbb, 0x41, 0x00, 0x7d, 0x1e, 0xac,
|
||||
0xc5, 0xfd, 0xe1, 0x00, 0x42, 0x4d, 0x27, 0x51, 0x46, 0x02, 0x76, 0xc4, 0x00, 0x42, 0x94, 0x44,
|
||||
0x2b, 0x05, 0xd4, 0x58, 0x8b, 0xb1, 0xa5, 0xd3, 0xec, 0x01, 0x72, 0x3e, 0x41, 0x0b, 0x0a, 0xf8,
|
||||
0x00, 0x68, 0x95, 0xcd, 0x92, 0x5a, 0x42, 0x3a, 0xdc, 0xdb, 0x7f, 0x9a, 0x92, 0x82, 0x04, 0x57,
|
||||
0xde, 0x75, 0xc1, 0x93, 0xb1, 0x4f, 0x6b, 0x05, 0x13, 0x9e, 0x01, 0x4f, 0xcb, 0xb8, 0xdb, 0xa1,
|
||||
0x75, 0x34, 0x38, 0x01, 0x0f, 0x80, 0xc7, 0xde, 0xb1, 0x0b, 0x6a, 0x18, 0x68, 0x3a, 0xc3, 0x28,
|
||||
0xa9, 0x6f, 0x8a, 0x00, 0x76, 0xa5, 0xde, 0x94, 0xc3, 0xd0, 0xa7, 0x0d, 0xd6, 0x20, 0x64, 0x07,
|
||||
0x34, 0x4f, 0x22, 0x30, 0x8b, 0x6a, 0xdb, 0xdc, 0x3b, 0x86, 0x04, 0xa0, 0x6c, 0x91, 0xb0, 0x36,
|
||||
0x0f, 0x43, 0xa9, 0xdb, 0x31, 0x70, 0x0d, 0x9b, 0xa6, 0xd2, 0xe9, 0x1c, 0x9a, 0x33, 0x86, 0x8b,
|
||||
0x00, 0x28, 0xcb, 0xb9, 0x3b, 0x10, 0x40, 0xc6, 0x3d, 0x9f, 0x73, 0x27, 0x38, 0x72, 0x2f, 0xa0,
|
||||
0xf1, 0xeb, 0x43, 0x11, 0xf8, 0x26, 0x24, 0xf6, 0x59, 0xce, 0xa3, 0x8d, 0x89, 0xf1, 0xbb, 0xdb,
|
||||
0xdd, 0x83, 0x43, 0xba, 0xc8, 0xce, 0x93, 0xb9, 0x04, 0xd9, 0x01, 0x1d, 0x0b, 0xcf, 0x04, 0xef,
|
||||
0x02, 0x9a, 0xba, 0x37, 0xd4, 0x7b, 0x47, 0x3b, 0x30, 0x90, 0xf1, 0x88, 0x36, 0xf1, 0x41, 0x8d,
|
||||
0xa4, 0xf4, 0x89, 0xe8, 0x03, 0xa8, 0x61, 0x63, 0x10, 0xe9, 0x51, 0x1e, 0x5e, 0x7a, 0x91, 0x5d,
|
||||
0x22, 0x17, 0x6e, 0x46, 0x3e, 0xd7, 0xd0, 0x1d, 0x60, 0x1b, 0x3a, 0xe4, 0xea, 0x0e, 0xba, 0x3b,
|
||||
0x8c, 0x81, 0x5e, 0x62, 0x17, 0xc9, 0xe2, 0xf8, 0x5b, 0x64, 0xc1, 0xba, 0x8c, 0x17, 0xad, 0xb7,
|
||||
0xed, 0x18, 0x7c, 0x08, 0xb5, 0xe0, 0x41, 0x7a, 0xf1, 0x4a, 0x2e, 0xf5, 0x5e, 0xe2, 0x83, 0x48,
|
||||
0xb4, 0x9e, 0xdf, 0x4b, 0xbc, 0xca, 0x9a, 0x64, 0x61, 0x0b, 0xf4, 0xbd, 0x94, 0x25, 0xa4, 0x6c,
|
||||
0x0b, 0x65, 0x48, 0x37, 0x15, 0xc4, 0x2a, 0xa5, 0x3c, 0xc4, 0x18, 0x69, 0x6c, 0x81, 0x46, 0x30,
|
||||
0xc5, 0x96, 0x31, 0x4e, 0xd6, 0x3c, 0x57, 0x06, 0x90, 0xc2, 0x6f, 0xc3, 0x18, 0x74, 0x62, 0x19,
|
||||
0x15, 0xc1, 0x87, 0xd1, 0xcd, 0xbd, 0x08, 0x62, 0xae, 0x01, 0x65, 0x14, 0x69, 0x8f, 0xa0, 0x9c,
|
||||
0x03, 0xc0, 0x08, 0x14, 0xe1, 0xb7, 0xe7, 0x70, 0x51, 0xeb, 0x3b, 0x30, 0x87, 0x13, 0x6e, 0xb0,
|
||||
0x3d, 0x34, 0x25, 0xad, 0xa0, 0xd7, 0x89, 0x92, 0xac, 0xfe, 0x53, 0xe2, 0x3b, 0x31, 0x55, 0xec,
|
||||
0xbd, 0xad, 0x98, 0x87, 0x3a, 0xc5, 0x5b, 0xec, 0x21, 0x72, 0xc5, 0x85, 0xa3, 0x18, 0xd4, 0xf1,
|
||||
0xbe, 0x0c, 0x84, 0x37, 0xea, 0x86, 0x47, 0x32, 0x4b, 0x49, 0x64, 0x79, 0x17, 0x5a, 0x82, 0x61,
|
||||
0xb1, 0xf4, 0x14, 0x7e, 0x14, 0x63, 0xb2, 0x2b, 0xf5, 0x01, 0xb6, 0xc3, 0x6d, 0xd3, 0x60, 0xe9,
|
||||
0x63, 0xa8, 0x65, 0x57, 0xba, 0x10, 0x05, 0xc2, 0xe3, 0x6b, 0x27, 0x5c, 0x04, 0xbc, 0x17, 0x00,
|
||||
0x5d, 0xc5, 0xa0, 0x1c, 0x40, 0x1f, 0x4b, 0x36, 0x7b, 0xdf, 0x6b, 0x6c, 0x86, 0x54, 0x37, 0x65,
|
||||
0xec, 0x41, 0x07, 0xc2, 0x11, 0x7d, 0x1c, 0x8f, 0x2e, 0xd7, 0xb0, 0x2d, 0x06, 0x42, 0xd3, 0x27,
|
||||
0xac, 0x78, 0x1f, 0xba, 0x9d, 0x5d, 0xa9, 0x77, 0xb8, 0xf6, 0x8e, 0xe9, 0x75, 0xcc, 0x41, 0xdc,
|
||||
0x0b, 0xda, 0x52, 0xc6, 0xfe, 0xee, 0x1a, 0xf5, 0x19, 0x23, 0x33, 0x9d, 0x8e, 0x0b, 0x1f, 0x1f,
|
||||
0x82, 0xd2, 0x2e, 0xf7, 0x80, 0xfe, 0xb5, 0xd2, 0xf2, 0x08, 0x31, 0x79, 0x89, 0xdb, 0x0d, 0xa0,
|
||||
0x98, 0xfc, 0xb4, 0x2b, 0x43, 0xa0, 0xe7, 0x58, 0x9d, 0x4c, 0xdf, 0x0c, 0x85, 0x52, 0x43, 0xf0,
|
||||
0xa9, 0x83, 0x35, 0xd9, 0x0d, 0xf7, 0x63, 0xd9, 0xc7, 0x41, 0x4a, 0x27, 0x90, 0xba, 0x29, 0x42,
|
||||
0xa1, 0x8e, 0x4d, 0x37, 0x22, 0x64, 0x2a, 0x29, 0xce, 0x32, 0xab, 0x92, 0x49, 0x17, 0x74, 0x3c,
|
||||
0xa2, 0x93, 0xad, 0xe7, 0x1c, 0x52, 0x4f, 0x3c, 0xb2, 0x7a, 0x16, 0x08, 0x2d, 0x9e, 0x73, 0x4d,
|
||||
0x59, 0x79, 0x38, 0xd8, 0x24, 0xb7, 0x62, 0x79, 0x57, 0x84, 0x7d, 0x3a, 0x81, 0x82, 0x0f, 0x80,
|
||||
0x07, 0x46, 0x49, 0x8d, 0x54, 0x36, 0x83, 0xa1, 0xd1, 0x58, 0x36, 0xfa, 0xf1, 0x80, 0x6c, 0x93,
|
||||
0x48, 0xc2, 0x74, 0x8a, 0xc0, 0xa7, 0x53, 0x18, 0x22, 0x5b, 0x44, 0x48, 0xab, 0xb4, 0xde, 0x4f,
|
||||
0x66, 0xcf, 0xec, 0x23, 0x6c, 0x9a, 0x94, 0x13, 0xd5, 0x94, 0xd4, 0xd7, 0x45, 0xc8, 0xe3, 0x91,
|
||||
0xed, 0x54, 0xd4, 0xc7, 0xe8, 0x6d, 0x06, 0x92, 0xeb, 0x04, 0x80, 0xd6, 0xcb, 0x75, 0xb3, 0x10,
|
||||
0x98, 0x8b, 0x33, 0xa4, 0x7a, 0x33, 0xf4, 0xe1, 0x48, 0x84, 0xe0, 0xd3, 0x73, 0xa6, 0x83, 0xd8,
|
||||
0xda, 0xcb, 0x4b, 0x19, 0xc3, 0xdd, 0x40, 0x63, 0x0a, 0x18, 0x60, 0x1b, 0xb8, 0xc1, 0x55, 0x01,
|
||||
0x3a, 0xc2, 0x2c, 0xe8, 0x98, 0x75, 0xb3, 0x57, 0xbc, 0xde, 0x37, 0x59, 0x70, 0x2c, 0xef, 0xe6,
|
||||
0x98, 0xa2, 0xc7, 0xa8, 0x69, 0x0b, 0xf4, 0xc1, 0x48, 0x69, 0x18, 0xb4, 0x65, 0x78, 0x24, 0xfa,
|
||||
0x8a, 0x0a, 0xd4, 0xb4, 0x2d, 0xb9, 0x5f, 0xb8, 0x7e, 0x1b, 0xf3, 0xd0, 0x85, 0x00, 0xb8, 0x2a,
|
||||
0x4a, 0xbd, 0x63, 0x7a, 0xa8, 0x31, 0x75, 0x2d, 0x10, 0x5c, 0xd1, 0x00, 0x5d, 0x41, 0x2b, 0xed,
|
||||
0x71, 0x80, 0xef, 0xbb, 0x16, 0x68, 0x88, 0xed, 0x39, 0x64, 0x0b, 0x64, 0xd6, 0xf2, 0xef, 0xf3,
|
||||
0x58, 0x0b, 0x23, 0xe4, 0x45, 0xc7, 0x64, 0x52, 0x2c, 0xa3, 0x1c, 0x7b, 0x09, 0x47, 0x56, 0xfd,
|
||||
0x06, 0x57, 0x39, 0xf4, 0x73, 0x87, 0x2d, 0x92, 0xb9, 0xd4, 0xb5, 0x1c, 0xff, 0x85, 0xc3, 0xe6,
|
||||
0x49, 0x03, 0x5d, 0xcb, 0x30, 0x45, 0x7f, 0x69, 0x40, 0x74, 0xa2, 0x00, 0xfe, 0xca, 0x48, 0x48,
|
||||
0xbc, 0x28, 0xe0, 0xbf, 0x36, 0xca, 0x50, 0x42, 0x92, 0x44, 0x8a, 0xbe, 0xe2, 0xa0, 0xa5, 0xa9,
|
||||
0xb2, 0x04, 0xa6, 0xaf, 0x1a, 0x46, 0x94, 0x9a, 0x31, 0xbe, 0x66, 0x18, 0x13, 0x99, 0x19, 0xfa,
|
||||
0xba, 0x41, 0x6f, 0xf0, 0xd0, 0x97, 0x47, 0x47, 0x19, 0xfa, 0x86, 0xc3, 0x9a, 0x64, 0x1e, 0xaf,
|
||||
0xaf, 0xf3, 0x80, 0x87, 0x5e, 0xce, 0xff, 0xa6, 0xc3, 0xce, 0x13, 0x7a, 0x46, 0x9d, 0xa2, 0xcf,
|
||||
0x4e, 0x30, 0x9a, 0xc6, 0xd7, 0xd4, 0x11, 0xfd, 0xca, 0x84, 0x89, 0x55, 0xc2, 0x68, 0xb1, 0xaf,
|
||||
0x4e, 0xb0, 0x86, 0x0d, 0xba, 0x3d, 0xbf, 0x30, 0xc1, 0x6a, 0x64, 0xaa, 0x1b, 0x2a, 0x88, 0x35,
|
||||
0xfd, 0x1c, 0xe6, 0xf7, 0x94, 0xed, 0xc7, 0xf4, 0xf3, 0x58, 0x51, 0x93, 0x26, 0xbf, 0xe9, 0x17,
|
||||
0x70, 0xd6, 0x33, 0x17, 0x14, 0x84, 0x7e, 0xa1, 0x76, 0x14, 0xfd, 0xa2, 0xb9, 0x61, 0x87, 0x29,
|
||||
0xfd, 0x7b, 0xc9, 0x84, 0xa6, 0x38, 0x59, 0xff, 0x51, 0x42, 0x13, 0xb6, 0x40, 0xe7, 0x95, 0x4d,
|
||||
0xff, 0x59, 0x62, 0x17, 0xc9, 0xf9, 0x14, 0x33, 0x73, 0x2e, 0xab, 0xe9, 0x7f, 0x95, 0xd8, 0x65,
|
||||
0x72, 0x01, 0x9b, 0x7e, 0x96, 0x37, 0x78, 0x49, 0x28, 0x2d, 0x3c, 0x45, 0x5f, 0x2e, 0xb1, 0x4b,
|
||||
0x64, 0x71, 0x0b, 0x74, 0xf6, 0x1e, 0x05, 0xe2, 0xbf, 0x4b, 0x6c, 0x86, 0x4c, 0x63, 0xd5, 0x0b,
|
||||
0x38, 0x01, 0xfa, 0x4a, 0x09, 0x1f, 0x35, 0x3d, 0x26, 0xe6, 0xbc, 0x5a, 0xc2, 0x50, 0x7f, 0x08,
|
||||
0x7b, 0x54, 0x67, 0xd0, 0x3e, 0xe6, 0x61, 0x08, 0x81, 0xa2, 0xaf, 0x95, 0x30, 0xa0, 0x2e, 0x0c,
|
||||
0xe4, 0x09, 0x14, 0xe0, 0xd7, 0x8d, 0xd3, 0x86, 0xf9, 0x83, 0x43, 0x88, 0x47, 0x19, 0xe1, 0x8d,
|
||||
0x12, 0x3e, 0x8d, 0xe5, 0x1f, 0xa7, 0xbc, 0x59, 0x62, 0x57, 0x48, 0xd3, 0x36, 0x8b, 0xf4, 0x61,
|
||||
0x90, 0xd8, 0x07, 0x6c, 0xd6, 0xf4, 0xd9, 0x72, 0x26, 0xb1, 0x03, 0x81, 0xe6, 0xd9, 0xbd, 0x4f,
|
||||
0x96, 0xd1, 0x2e, 0x2c, 0xae, 0xbc, 0x47, 0x2b, 0xfa, 0x5c, 0x19, 0x5f, 0x74, 0x0b, 0x74, 0xd2,
|
||||
0xa6, 0x15, 0xfd, 0x14, 0xae, 0x56, 0x8d, 0x9b, 0xa1, 0x1a, 0xf6, 0x32, 0x43, 0xe9, 0xa7, 0xd3,
|
||||
0xcb, 0x1d, 0xa1, 0x74, 0x2c, 0x7a, 0x43, 0x93, 0xe9, 0x9f, 0x29, 0xa3, 0x53, 0x07, 0xa3, 0xd0,
|
||||
0x1b, 0x83, 0x9f, 0x37, 0x32, 0x13, 0xdb, 0x8c, 0x51, 0xbf, 0x29, 0xb3, 0x59, 0x42, 0x6c, 0x55,
|
||||
0x1b, 0xe0, 0xb7, 0xa9, 0x3c, 0xdc, 0xa5, 0x4e, 0x20, 0x36, 0x83, 0x86, 0xfe, 0x2e, 0x33, 0xb1,
|
||||
0xd0, 0x3b, 0xe9, 0xef, 0xcb, 0x18, 0xf4, 0x43, 0x31, 0x80, 0x43, 0xe1, 0xdd, 0xa1, 0x5f, 0xab,
|
||||
0xa2, 0x7d, 0x26, 0x26, 0x38, 0x11, 0x6c, 0x8e, 0x7c, 0xbd, 0x8a, 0x29, 0x87, 0x99, 0x6c, 0x53,
|
||||
0xee, 0x1b, 0xe6, 0x9c, 0x8c, 0x82, 0x6e, 0x87, 0x7e, 0x13, 0x77, 0x3a, 0x92, 0x9c, 0x0f, 0x0f,
|
||||
0xf6, 0xe8, 0xb7, 0xaa, 0xa8, 0x6a, 0x2d, 0x08, 0xa4, 0xc7, 0x75, 0x56, 0x4f, 0xdf, 0xae, 0x62,
|
||||
0x41, 0x16, 0xb4, 0x27, 0xef, 0xfe, 0x9d, 0xaa, 0x71, 0xd4, 0xe2, 0x26, 0x5d, 0x3b, 0xd8, 0x56,
|
||||
0xbf, 0x6b, 0xa4, 0xe2, 0x0c, 0x42, 0x4b, 0x0e, 0x35, 0xfd, 0x9e, 0xe1, 0x3b, 0xbb, 0xa6, 0xd0,
|
||||
0x3f, 0xd4, 0x92, 0x0c, 0x2d, 0x60, 0x7f, 0xac, 0xd9, 0x0a, 0x1b, 0xdf, 0x4b, 0xe8, 0x9f, 0x0c,
|
||||
0x7c, 0x76, 0x97, 0xa1, 0x7f, 0xae, 0xa1, 0x61, 0xc5, 0x75, 0x04, 0x97, 0x72, 0x45, 0xff, 0x52,
|
||||
0x43, 0x0b, 0xf2, 0xc5, 0x83, 0x7e, 0xbf, 0x8e, 0xc1, 0x4a, 0x57, 0x0e, 0xfa, 0x83, 0x3a, 0xba,
|
||||
0x79, 0x66, 0xd9, 0xa0, 0x3f, 0xac, 0x9b, 0xe7, 0xc8, 0xd6, 0x0c, 0xfa, 0xa3, 0x02, 0x80, 0x5c,
|
||||
0xf4, 0xc7, 0x75, 0xd3, 0xc3, 0xc6, 0x56, 0x0b, 0xfa, 0x93, 0x3a, 0xda, 0x76, 0x76, 0xa9, 0xa0,
|
||||
0x3f, 0xad, 0xdb, 0xe7, 0xce, 0xd6, 0x09, 0xfa, 0xb3, 0x3a, 0xd6, 0xd0, 0xfd, 0x17, 0x09, 0xfa,
|
||||
0xa2, 0xd1, 0x95, 0xaf, 0x10, 0xf4, 0xa5, 0x7a, 0x6b, 0x99, 0x54, 0x3a, 0x2a, 0x30, 0x93, 0xa7,
|
||||
0x42, 0x4a, 0x1d, 0x15, 0xd0, 0x73, 0xd8, 0xa8, 0xd7, 0xa5, 0x0c, 0x36, 0x4e, 0xa3, 0xf8, 0x99,
|
||||
0x27, 0xa8, 0xd3, 0x5a, 0x27, 0xb3, 0x6d, 0x39, 0x88, 0x78, 0x56, 0xb0, 0x66, 0xd8, 0xd8, 0x29,
|
||||
0x05, 0xbe, 0x4d, 0x95, 0x73, 0xd8, 0xed, 0x37, 0x4e, 0xc1, 0x1b, 0x9a, 0x99, 0xe8, 0xe0, 0x11,
|
||||
0x2f, 0x61, 0x90, 0x7d, 0x3a, 0xd1, 0xfa, 0x30, 0xa1, 0x6d, 0x19, 0x2a, 0xa1, 0x34, 0x84, 0xde,
|
||||
0x68, 0x1b, 0x4e, 0x20, 0x30, 0x93, 0x57, 0xc7, 0x32, 0xec, 0xd3, 0x73, 0xe6, 0xbb, 0x05, 0xcc,
|
||||
0xf7, 0x87, 0x9d, 0xcf, 0xeb, 0xb8, 0x9b, 0x98, 0x8f, 0x93, 0x06, 0x21, 0x1b, 0x27, 0x10, 0xea,
|
||||
0x21, 0x0f, 0x82, 0x11, 0x2d, 0xe1, 0xb9, 0x3d, 0x54, 0x5a, 0x0e, 0xc4, 0x27, 0x70, 0x4c, 0xb7,
|
||||
0x3e, 0xeb, 0x90, 0x9a, 0x1d, 0xc6, 0x99, 0x69, 0xf6, 0xb8, 0x0f, 0xa1, 0x2f, 0x8c, 0x70, 0xdc,
|
||||
0xad, 0x0d, 0x94, 0x6c, 0x10, 0x4e, 0xce, 0x74, 0xa0, 0x79, 0x6c, 0x2c, 0x34, 0x9f, 0x14, 0xc9,
|
||||
0xbd, 0xd8, 0xd8, 0xe9, 0xd3, 0xc9, 0x1c, 0xcc, 0x7d, 0x99, 0xc2, 0x25, 0xb2, 0x28, 0x6e, 0x2d,
|
||||
0xf4, 0xdb, 0x01, 0x70, 0x9c, 0xd7, 0x95, 0xd6, 0x75, 0x42, 0xf2, 0x4f, 0x4a, 0x63, 0x6b, 0x3e,
|
||||
0x22, 0xcf, 0xa1, 0xc7, 0x5b, 0x81, 0xec, 0xf1, 0x80, 0x3a, 0xb8, 0x21, 0x98, 0x07, 0x9f, 0x68,
|
||||
0x3d, 0x3f, 0x49, 0x66, 0xcf, 0x7c, 0x40, 0xa2, 0xc9, 0xd9, 0x61, 0x2d, 0xc0, 0x57, 0xb9, 0x42,
|
||||
0x1e, 0xc8, 0x90, 0x7b, 0x56, 0x02, 0x07, 0x97, 0xce, 0x8c, 0x7c, 0x66, 0x37, 0x98, 0x60, 0x57,
|
||||
0xc9, 0xa5, 0x9c, 0x78, 0xef, 0x46, 0x80, 0x6d, 0xb9, 0x99, 0x31, 0x9c, 0x5d, 0x0d, 0xca, 0x18,
|
||||
0xad, 0x8c, 0x8a, 0x95, 0x6e, 0x3f, 0xf7, 0xf2, 0xaf, 0x5d, 0x3b, 0xf2, 0xe8, 0x14, 0x7e, 0x81,
|
||||
0xe5, 0x36, 0x66, 0x29, 0x43, 0x2b, 0x18, 0xc7, 0x8c, 0x90, 0x8c, 0xa3, 0xe9, 0x31, 0x30, 0x19,
|
||||
0x4b, 0x55, 0x0c, 0x6e, 0x06, 0x62, 0x3f, 0xca, 0x5b, 0x01, 0xc1, 0xef, 0x82, 0x33, 0x21, 0xb0,
|
||||
0x3d, 0xa7, 0x36, 0x46, 0x31, 0x58, 0x07, 0x34, 0x17, 0x01, 0xad, 0xe3, 0x0e, 0x34, 0x16, 0x17,
|
||||
0x7b, 0x63, 0x66, 0x4c, 0x79, 0x32, 0xe1, 0x1a, 0xb8, 0xed, 0xe4, 0x2b, 0xbb, 0x99, 0x8d, 0xb3,
|
||||
0x63, 0x98, 0xe9, 0x7d, 0x94, 0x8e, 0xa9, 0x2b, 0x0c, 0x71, 0x3a, 0x37, 0xee, 0xa8, 0x49, 0x12,
|
||||
0xca, 0xc6, 0xa2, 0x6b, 0xed, 0xde, 0xbb, 0x1b, 0x42, 0xac, 0x8e, 0x45, 0x44, 0xe7, 0xc7, 0x82,
|
||||
0x66, 0xdb, 0x8f, 0xc9, 0x8b, 0x85, 0xb1, 0x50, 0xa0, 0xe9, 0xf9, 0xa5, 0xf3, 0xe3, 0x0f, 0x66,
|
||||
0x1a, 0x40, 0x4e, 0x5d, 0x1c, 0xa3, 0xee, 0xf0, 0x90, 0xf7, 0x0b, 0x0a, 0x2f, 0x8c, 0x29, 0x2c,
|
||||
0x74, 0x9e, 0xe6, 0xfb, 0x24, 0x99, 0xcb, 0xfe, 0xee, 0xb8, 0x05, 0xa7, 0xfa, 0x96, 0xec, 0xdd,
|
||||
0x66, 0x57, 0x57, 0xed, 0x5f, 0x98, 0xab, 0xe9, 0x5f, 0x98, 0xab, 0x3b, 0xa0, 0x14, 0x8a, 0x8c,
|
||||
0x4c, 0x7e, 0x34, 0xff, 0x56, 0x31, 0xff, 0xe3, 0x3c, 0x74, 0xff, 0x7f, 0xce, 0x0a, 0xff, 0xcb,
|
||||
0xb8, 0xb3, 0x51, 0xe1, 0xb4, 0xd7, 0xbb, 0xbd, 0xbe, 0x4d, 0x1a, 0x42, 0xa6, 0xf7, 0xfa, 0x71,
|
||||
0xe4, 0xad, 0xd7, 0xda, 0xe6, 0xde, 0x3e, 0xca, 0xd8, 0x77, 0x3e, 0xb2, 0xd2, 0x17, 0xfa, 0x78,
|
||||
0xd8, 0x43, 0x69, 0xd7, 0x2c, 0xdb, 0x63, 0x42, 0x26, 0xbf, 0xae, 0xf1, 0x48, 0x5c, 0xb3, 0x6a,
|
||||
0xa2, 0xde, 0x97, 0x1d, 0xa7, 0x37, 0x65, 0x34, 0x3f, 0xf9, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0x87, 0x4b, 0xf7, 0xea, 0x97, 0x15, 0x00, 0x00,
|
||||
}
|
||||
|
||||
@ -17,11 +17,27 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/milvus-io/milvus/api/commonpb"
|
||||
)
|
||||
|
||||
var (
|
||||
// ErrNodeIDNotMatch stands for the error that grpc target id and node session id not match.
|
||||
ErrNodeIDNotMatch = errors.New("target node id not match")
|
||||
)
|
||||
|
||||
// WrapNodeIDNotMatchError wraps `ErrNodeIDNotMatch` with targetID and sessionID.
|
||||
func WrapNodeIDNotMatchError(targetID, nodeID int64) error {
|
||||
return fmt.Errorf("%w target id = %d, node id = %d", ErrNodeIDNotMatch, targetID, nodeID)
|
||||
}
|
||||
|
||||
// WrapNodeIDNotMatchMsg fmt error msg with `ErrNodeIDNotMatch`, targetID and sessionID.
|
||||
func WrapNodeIDNotMatchMsg(targetID, nodeID int64) string {
|
||||
return fmt.Sprintf("%s target id = %d, node id = %d", ErrNodeIDNotMatch.Error(), targetID, nodeID)
|
||||
}
|
||||
|
||||
type IgnorableError struct {
|
||||
msg string
|
||||
}
|
||||
|
||||
@ -287,6 +287,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_common_2eproto::offsets[] PROT
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::common::MsgBase, msgid_),
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::common::MsgBase, timestamp_),
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::common::MsgBase, sourceid_),
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::common::MsgBase, targetid_),
|
||||
~0u, // no _has_bits_
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::common::MsgHeader, _internal_metadata_),
|
||||
~0u, // no _extensions_
|
||||
@ -319,9 +320,9 @@ static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOB
|
||||
{ 35, -1, sizeof(::milvus::proto::common::PlaceholderGroup)},
|
||||
{ 41, -1, sizeof(::milvus::proto::common::Address)},
|
||||
{ 48, -1, sizeof(::milvus::proto::common::MsgBase)},
|
||||
{ 57, -1, sizeof(::milvus::proto::common::MsgHeader)},
|
||||
{ 63, -1, sizeof(::milvus::proto::common::DMLMsgHeader)},
|
||||
{ 70, -1, sizeof(::milvus::proto::common::PrivilegeExt)},
|
||||
{ 58, -1, sizeof(::milvus::proto::common::MsgHeader)},
|
||||
{ 64, -1, sizeof(::milvus::proto::common::DMLMsgHeader)},
|
||||
{ 71, -1, sizeof(::milvus::proto::common::PrivilegeExt)},
|
||||
};
|
||||
|
||||
static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
|
||||
@ -350,127 +351,128 @@ const char descriptor_table_protodef_common_2eproto[] PROTOBUF_SECTION_VARIABLE(
|
||||
"ommon.PlaceholderType\022\016\n\006values\030\003 \003(\014\"O\n"
|
||||
"\020PlaceholderGroup\022;\n\014placeholders\030\001 \003(\0132"
|
||||
"%.milvus.proto.common.PlaceholderValue\"#"
|
||||
"\n\007Address\022\n\n\002ip\030\001 \001(\t\022\014\n\004port\030\002 \001(\003\"m\n\007M"
|
||||
"\n\007Address\022\n\n\002ip\030\001 \001(\t\022\014\n\004port\030\002 \001(\003\"\177\n\007M"
|
||||
"sgBase\022.\n\010msg_type\030\001 \001(\0162\034.milvus.proto."
|
||||
"common.MsgType\022\r\n\005msgID\030\002 \001(\003\022\021\n\ttimesta"
|
||||
"mp\030\003 \001(\004\022\020\n\010sourceID\030\004 \001(\003\"7\n\tMsgHeader\022"
|
||||
"*\n\004base\030\001 \001(\0132\034.milvus.proto.common.MsgB"
|
||||
"ase\"M\n\014DMLMsgHeader\022*\n\004base\030\001 \001(\0132\034.milv"
|
||||
"us.proto.common.MsgBase\022\021\n\tshardName\030\002 \001"
|
||||
"(\t\"\273\001\n\014PrivilegeExt\0224\n\013object_type\030\001 \001(\016"
|
||||
"2\037.milvus.proto.common.ObjectType\022>\n\020obj"
|
||||
"ect_privilege\030\002 \001(\0162$.milvus.proto.commo"
|
||||
"n.ObjectPrivilege\022\031\n\021object_name_index\030\003"
|
||||
" \001(\005\022\032\n\022object_name_indexs\030\004 \001(\005*\202\t\n\tErr"
|
||||
"orCode\022\013\n\007Success\020\000\022\023\n\017UnexpectedError\020\001"
|
||||
"\022\021\n\rConnectFailed\020\002\022\024\n\020PermissionDenied\020"
|
||||
"\003\022\027\n\023CollectionNotExists\020\004\022\023\n\017IllegalArg"
|
||||
"ument\020\005\022\024\n\020IllegalDimension\020\007\022\024\n\020Illegal"
|
||||
"IndexType\020\010\022\031\n\025IllegalCollectionName\020\t\022\017"
|
||||
"\n\013IllegalTOPK\020\n\022\024\n\020IllegalRowRecord\020\013\022\023\n"
|
||||
"\017IllegalVectorID\020\014\022\027\n\023IllegalSearchResul"
|
||||
"t\020\r\022\020\n\014FileNotFound\020\016\022\016\n\nMetaFailed\020\017\022\017\n"
|
||||
"\013CacheFailed\020\020\022\026\n\022CannotCreateFolder\020\021\022\024"
|
||||
"\n\020CannotCreateFile\020\022\022\026\n\022CannotDeleteFold"
|
||||
"er\020\023\022\024\n\020CannotDeleteFile\020\024\022\023\n\017BuildIndex"
|
||||
"Error\020\025\022\020\n\014IllegalNLIST\020\026\022\025\n\021IllegalMetr"
|
||||
"icType\020\027\022\017\n\013OutOfMemory\020\030\022\021\n\rIndexNotExi"
|
||||
"st\020\031\022\023\n\017EmptyCollection\020\032\022\033\n\027UpdateImpor"
|
||||
"tTaskFailure\020\033\022\032\n\026CollectionNameNotFound"
|
||||
"\020\034\022\033\n\027CreateCredentialFailure\020\035\022\033\n\027Updat"
|
||||
"eCredentialFailure\020\036\022\033\n\027DeleteCredential"
|
||||
"Failure\020\037\022\030\n\024GetCredentialFailure\020 \022\030\n\024L"
|
||||
"istCredUsersFailure\020!\022\022\n\016GetUserFailure\020"
|
||||
"\"\022\025\n\021CreateRoleFailure\020#\022\023\n\017DropRoleFail"
|
||||
"ure\020$\022\032\n\026OperateUserRoleFailure\020%\022\025\n\021Sel"
|
||||
"ectRoleFailure\020&\022\025\n\021SelectUserFailure\020\'\022"
|
||||
"\031\n\025SelectResourceFailure\020(\022\033\n\027OperatePri"
|
||||
"vilegeFailure\020)\022\026\n\022SelectGrantFailure\020*\022"
|
||||
"!\n\035RefreshPolicyInfoCacheFailure\020+\022\025\n\021Li"
|
||||
"stPolicyFailure\020,\022\022\n\016NotShardLeader\020-\022\026\n"
|
||||
"\022NoReplicaAvailable\020.\022\023\n\017SegmentNotFound"
|
||||
"\020/\022\r\n\tForceDeny\0200\022\r\n\tRateLimit\0201\022\017\n\013Data"
|
||||
"CoordNA\020d\022\022\n\rDDRequestRace\020\350\007*c\n\nIndexSt"
|
||||
"ate\022\022\n\016IndexStateNone\020\000\022\014\n\010Unissued\020\001\022\016\n"
|
||||
"\nInProgress\020\002\022\014\n\010Finished\020\003\022\n\n\006Failed\020\004\022"
|
||||
"\t\n\005Retry\020\005*\202\001\n\014SegmentState\022\024\n\020SegmentSt"
|
||||
"ateNone\020\000\022\014\n\010NotExist\020\001\022\013\n\007Growing\020\002\022\n\n\006"
|
||||
"Sealed\020\003\022\013\n\007Flushed\020\004\022\014\n\010Flushing\020\005\022\013\n\007D"
|
||||
"ropped\020\006\022\r\n\tImporting\020\007*>\n\017PlaceholderTy"
|
||||
"pe\022\010\n\004None\020\000\022\020\n\014BinaryVector\020d\022\017\n\013FloatV"
|
||||
"ector\020e*\370\014\n\007MsgType\022\r\n\tUndefined\020\000\022\024\n\020Cr"
|
||||
"eateCollection\020d\022\022\n\016DropCollection\020e\022\021\n\r"
|
||||
"HasCollection\020f\022\026\n\022DescribeCollection\020g\022"
|
||||
"\023\n\017ShowCollections\020h\022\024\n\020GetSystemConfigs"
|
||||
"\020i\022\022\n\016LoadCollection\020j\022\025\n\021ReleaseCollect"
|
||||
"ion\020k\022\017\n\013CreateAlias\020l\022\r\n\tDropAlias\020m\022\016\n"
|
||||
"\nAlterAlias\020n\022\024\n\017CreatePartition\020\310\001\022\022\n\rD"
|
||||
"ropPartition\020\311\001\022\021\n\014HasPartition\020\312\001\022\026\n\021De"
|
||||
"scribePartition\020\313\001\022\023\n\016ShowPartitions\020\314\001\022"
|
||||
"\023\n\016LoadPartitions\020\315\001\022\026\n\021ReleasePartition"
|
||||
"s\020\316\001\022\021\n\014ShowSegments\020\372\001\022\024\n\017DescribeSegme"
|
||||
"nt\020\373\001\022\021\n\014LoadSegments\020\374\001\022\024\n\017ReleaseSegme"
|
||||
"nts\020\375\001\022\024\n\017HandoffSegments\020\376\001\022\030\n\023LoadBala"
|
||||
"nceSegments\020\377\001\022\025\n\020DescribeSegments\020\200\002\022\020\n"
|
||||
"\013CreateIndex\020\254\002\022\022\n\rDescribeIndex\020\255\002\022\016\n\tD"
|
||||
"ropIndex\020\256\002\022\013\n\006Insert\020\220\003\022\013\n\006Delete\020\221\003\022\n\n"
|
||||
"\005Flush\020\222\003\022\027\n\022ResendSegmentStats\020\223\003\022\013\n\006Se"
|
||||
"arch\020\364\003\022\021\n\014SearchResult\020\365\003\022\022\n\rGetIndexSt"
|
||||
"ate\020\366\003\022\032\n\025GetIndexBuildProgress\020\367\003\022\034\n\027Ge"
|
||||
"tCollectionStatistics\020\370\003\022\033\n\026GetPartition"
|
||||
"Statistics\020\371\003\022\r\n\010Retrieve\020\372\003\022\023\n\016Retrieve"
|
||||
"Result\020\373\003\022\024\n\017WatchDmChannels\020\374\003\022\025\n\020Remov"
|
||||
"eDmChannels\020\375\003\022\027\n\022WatchQueryChannels\020\376\003\022"
|
||||
"\030\n\023RemoveQueryChannels\020\377\003\022\035\n\030SealedSegme"
|
||||
"ntsChangeInfo\020\200\004\022\027\n\022WatchDeltaChannels\020\201"
|
||||
"\004\022\024\n\017GetShardLeaders\020\202\004\022\020\n\013GetReplicas\020\203"
|
||||
"\004\022\023\n\016UnsubDmChannel\020\204\004\022\024\n\017GetDistributio"
|
||||
"n\020\205\004\022\025\n\020SyncDistribution\020\206\004\022\020\n\013SegmentIn"
|
||||
"fo\020\330\004\022\017\n\nSystemInfo\020\331\004\022\024\n\017GetRecoveryInf"
|
||||
"o\020\332\004\022\024\n\017GetSegmentState\020\333\004\022\r\n\010TimeTick\020\260"
|
||||
"\t\022\023\n\016QueryNodeStats\020\261\t\022\016\n\tLoadIndex\020\262\t\022\016"
|
||||
"\n\tRequestID\020\263\t\022\017\n\nRequestTSO\020\264\t\022\024\n\017Alloc"
|
||||
"ateSegment\020\265\t\022\026\n\021SegmentStatistics\020\266\t\022\025\n"
|
||||
"\020SegmentFlushDone\020\267\t\022\017\n\nDataNodeTt\020\270\t\022\025\n"
|
||||
"\020CreateCredential\020\334\013\022\022\n\rGetCredential\020\335\013"
|
||||
"\022\025\n\020DeleteCredential\020\336\013\022\025\n\020UpdateCredent"
|
||||
"ial\020\337\013\022\026\n\021ListCredUsernames\020\340\013\022\017\n\nCreate"
|
||||
"Role\020\300\014\022\r\n\010DropRole\020\301\014\022\024\n\017OperateUserRol"
|
||||
"e\020\302\014\022\017\n\nSelectRole\020\303\014\022\017\n\nSelectUser\020\304\014\022\023"
|
||||
"\n\016SelectResource\020\305\014\022\025\n\020OperatePrivilege\020"
|
||||
"\306\014\022\020\n\013SelectGrant\020\307\014\022\033\n\026RefreshPolicyInf"
|
||||
"oCache\020\310\014\022\017\n\nListPolicy\020\311\014*\"\n\007DslType\022\007\n"
|
||||
"\003Dsl\020\000\022\016\n\nBoolExprV1\020\001*B\n\017CompactionStat"
|
||||
"e\022\021\n\rUndefiedState\020\000\022\r\n\tExecuting\020\001\022\r\n\tC"
|
||||
"ompleted\020\002*X\n\020ConsistencyLevel\022\n\n\006Strong"
|
||||
"\020\000\022\013\n\007Session\020\001\022\013\n\007Bounded\020\002\022\016\n\nEventual"
|
||||
"ly\020\003\022\016\n\nCustomized\020\004*\213\001\n\013ImportState\022\021\n\r"
|
||||
"ImportPending\020\000\022\020\n\014ImportFailed\020\001\022\021\n\rImp"
|
||||
"ortStarted\020\002\022\023\n\017ImportPersisted\020\005\022\023\n\017Imp"
|
||||
"ortCompleted\020\006\022\032\n\026ImportFailedAndCleaned"
|
||||
"\020\007*2\n\nObjectType\022\016\n\nCollection\020\000\022\n\n\006Glob"
|
||||
"al\020\001\022\010\n\004User\020\002*\206\005\n\017ObjectPrivilege\022\020\n\014Pr"
|
||||
"ivilegeAll\020\000\022\035\n\031PrivilegeCreateCollectio"
|
||||
"n\020\001\022\033\n\027PrivilegeDropCollection\020\002\022\037\n\033Priv"
|
||||
"ilegeDescribeCollection\020\003\022\034\n\030PrivilegeSh"
|
||||
"owCollections\020\004\022\021\n\rPrivilegeLoad\020\005\022\024\n\020Pr"
|
||||
"ivilegeRelease\020\006\022\027\n\023PrivilegeCompaction\020"
|
||||
"\007\022\023\n\017PrivilegeInsert\020\010\022\023\n\017PrivilegeDelet"
|
||||
"e\020\t\022\032\n\026PrivilegeGetStatistics\020\n\022\030\n\024Privi"
|
||||
"legeCreateIndex\020\013\022\030\n\024PrivilegeIndexDetai"
|
||||
"l\020\014\022\026\n\022PrivilegeDropIndex\020\r\022\023\n\017Privilege"
|
||||
"Search\020\016\022\022\n\016PrivilegeFlush\020\017\022\022\n\016Privileg"
|
||||
"eQuery\020\020\022\030\n\024PrivilegeLoadBalance\020\021\022\023\n\017Pr"
|
||||
"ivilegeImport\020\022\022\034\n\030PrivilegeCreateOwners"
|
||||
"hip\020\023\022\027\n\023PrivilegeUpdateUser\020\024\022\032\n\026Privil"
|
||||
"egeDropOwnership\020\025\022\034\n\030PrivilegeSelectOwn"
|
||||
"ership\020\026\022\034\n\030PrivilegeManageOwnership\020\027\022\027"
|
||||
"\n\023PrivilegeSelectUser\020\030:^\n\021privilege_ext"
|
||||
"_obj\022\037.google.protobuf.MessageOptions\030\351\007"
|
||||
" \001(\0132!.milvus.proto.common.PrivilegeExtB"
|
||||
"L\n\016io.milvus.grpcB\013CommonProtoP\001Z(github"
|
||||
".com/milvus-io/milvus/api/commonpb\240\001\001b\006p"
|
||||
"roto3"
|
||||
"mp\030\003 \001(\004\022\020\n\010sourceID\030\004 \001(\003\022\020\n\010targetID\030\005"
|
||||
" \001(\003\"7\n\tMsgHeader\022*\n\004base\030\001 \001(\0132\034.milvus"
|
||||
".proto.common.MsgBase\"M\n\014DMLMsgHeader\022*\n"
|
||||
"\004base\030\001 \001(\0132\034.milvus.proto.common.MsgBas"
|
||||
"e\022\021\n\tshardName\030\002 \001(\t\"\273\001\n\014PrivilegeExt\0224\n"
|
||||
"\013object_type\030\001 \001(\0162\037.milvus.proto.common"
|
||||
".ObjectType\022>\n\020object_privilege\030\002 \001(\0162$."
|
||||
"milvus.proto.common.ObjectPrivilege\022\031\n\021o"
|
||||
"bject_name_index\030\003 \001(\005\022\032\n\022object_name_in"
|
||||
"dexs\030\004 \001(\005*\226\t\n\tErrorCode\022\013\n\007Success\020\000\022\023\n"
|
||||
"\017UnexpectedError\020\001\022\021\n\rConnectFailed\020\002\022\024\n"
|
||||
"\020PermissionDenied\020\003\022\027\n\023CollectionNotExis"
|
||||
"ts\020\004\022\023\n\017IllegalArgument\020\005\022\024\n\020IllegalDime"
|
||||
"nsion\020\007\022\024\n\020IllegalIndexType\020\010\022\031\n\025Illegal"
|
||||
"CollectionName\020\t\022\017\n\013IllegalTOPK\020\n\022\024\n\020Ill"
|
||||
"egalRowRecord\020\013\022\023\n\017IllegalVectorID\020\014\022\027\n\023"
|
||||
"IllegalSearchResult\020\r\022\020\n\014FileNotFound\020\016\022"
|
||||
"\016\n\nMetaFailed\020\017\022\017\n\013CacheFailed\020\020\022\026\n\022Cann"
|
||||
"otCreateFolder\020\021\022\024\n\020CannotCreateFile\020\022\022\026"
|
||||
"\n\022CannotDeleteFolder\020\023\022\024\n\020CannotDeleteFi"
|
||||
"le\020\024\022\023\n\017BuildIndexError\020\025\022\020\n\014IllegalNLIS"
|
||||
"T\020\026\022\025\n\021IllegalMetricType\020\027\022\017\n\013OutOfMemor"
|
||||
"y\020\030\022\021\n\rIndexNotExist\020\031\022\023\n\017EmptyCollectio"
|
||||
"n\020\032\022\033\n\027UpdateImportTaskFailure\020\033\022\032\n\026Coll"
|
||||
"ectionNameNotFound\020\034\022\033\n\027CreateCredential"
|
||||
"Failure\020\035\022\033\n\027UpdateCredentialFailure\020\036\022\033"
|
||||
"\n\027DeleteCredentialFailure\020\037\022\030\n\024GetCreden"
|
||||
"tialFailure\020 \022\030\n\024ListCredUsersFailure\020!\022"
|
||||
"\022\n\016GetUserFailure\020\"\022\025\n\021CreateRoleFailure"
|
||||
"\020#\022\023\n\017DropRoleFailure\020$\022\032\n\026OperateUserRo"
|
||||
"leFailure\020%\022\025\n\021SelectRoleFailure\020&\022\025\n\021Se"
|
||||
"lectUserFailure\020\'\022\031\n\025SelectResourceFailu"
|
||||
"re\020(\022\033\n\027OperatePrivilegeFailure\020)\022\026\n\022Sel"
|
||||
"ectGrantFailure\020*\022!\n\035RefreshPolicyInfoCa"
|
||||
"cheFailure\020+\022\025\n\021ListPolicyFailure\020,\022\022\n\016N"
|
||||
"otShardLeader\020-\022\026\n\022NoReplicaAvailable\020.\022"
|
||||
"\023\n\017SegmentNotFound\020/\022\r\n\tForceDeny\0200\022\r\n\tR"
|
||||
"ateLimit\0201\022\022\n\016NodeIDNotMatch\0202\022\017\n\013DataCo"
|
||||
"ordNA\020d\022\022\n\rDDRequestRace\020\350\007*c\n\nIndexStat"
|
||||
"e\022\022\n\016IndexStateNone\020\000\022\014\n\010Unissued\020\001\022\016\n\nI"
|
||||
"nProgress\020\002\022\014\n\010Finished\020\003\022\n\n\006Failed\020\004\022\t\n"
|
||||
"\005Retry\020\005*\202\001\n\014SegmentState\022\024\n\020SegmentStat"
|
||||
"eNone\020\000\022\014\n\010NotExist\020\001\022\013\n\007Growing\020\002\022\n\n\006Se"
|
||||
"aled\020\003\022\013\n\007Flushed\020\004\022\014\n\010Flushing\020\005\022\013\n\007Dro"
|
||||
"pped\020\006\022\r\n\tImporting\020\007*>\n\017PlaceholderType"
|
||||
"\022\010\n\004None\020\000\022\020\n\014BinaryVector\020d\022\017\n\013FloatVec"
|
||||
"tor\020e*\370\014\n\007MsgType\022\r\n\tUndefined\020\000\022\024\n\020Crea"
|
||||
"teCollection\020d\022\022\n\016DropCollection\020e\022\021\n\rHa"
|
||||
"sCollection\020f\022\026\n\022DescribeCollection\020g\022\023\n"
|
||||
"\017ShowCollections\020h\022\024\n\020GetSystemConfigs\020i"
|
||||
"\022\022\n\016LoadCollection\020j\022\025\n\021ReleaseCollectio"
|
||||
"n\020k\022\017\n\013CreateAlias\020l\022\r\n\tDropAlias\020m\022\016\n\nA"
|
||||
"lterAlias\020n\022\024\n\017CreatePartition\020\310\001\022\022\n\rDro"
|
||||
"pPartition\020\311\001\022\021\n\014HasPartition\020\312\001\022\026\n\021Desc"
|
||||
"ribePartition\020\313\001\022\023\n\016ShowPartitions\020\314\001\022\023\n"
|
||||
"\016LoadPartitions\020\315\001\022\026\n\021ReleasePartitions\020"
|
||||
"\316\001\022\021\n\014ShowSegments\020\372\001\022\024\n\017DescribeSegment"
|
||||
"\020\373\001\022\021\n\014LoadSegments\020\374\001\022\024\n\017ReleaseSegment"
|
||||
"s\020\375\001\022\024\n\017HandoffSegments\020\376\001\022\030\n\023LoadBalanc"
|
||||
"eSegments\020\377\001\022\025\n\020DescribeSegments\020\200\002\022\020\n\013C"
|
||||
"reateIndex\020\254\002\022\022\n\rDescribeIndex\020\255\002\022\016\n\tDro"
|
||||
"pIndex\020\256\002\022\013\n\006Insert\020\220\003\022\013\n\006Delete\020\221\003\022\n\n\005F"
|
||||
"lush\020\222\003\022\027\n\022ResendSegmentStats\020\223\003\022\013\n\006Sear"
|
||||
"ch\020\364\003\022\021\n\014SearchResult\020\365\003\022\022\n\rGetIndexStat"
|
||||
"e\020\366\003\022\032\n\025GetIndexBuildProgress\020\367\003\022\034\n\027GetC"
|
||||
"ollectionStatistics\020\370\003\022\033\n\026GetPartitionSt"
|
||||
"atistics\020\371\003\022\r\n\010Retrieve\020\372\003\022\023\n\016RetrieveRe"
|
||||
"sult\020\373\003\022\024\n\017WatchDmChannels\020\374\003\022\025\n\020RemoveD"
|
||||
"mChannels\020\375\003\022\027\n\022WatchQueryChannels\020\376\003\022\030\n"
|
||||
"\023RemoveQueryChannels\020\377\003\022\035\n\030SealedSegment"
|
||||
"sChangeInfo\020\200\004\022\027\n\022WatchDeltaChannels\020\201\004\022"
|
||||
"\024\n\017GetShardLeaders\020\202\004\022\020\n\013GetReplicas\020\203\004\022"
|
||||
"\023\n\016UnsubDmChannel\020\204\004\022\024\n\017GetDistribution\020"
|
||||
"\205\004\022\025\n\020SyncDistribution\020\206\004\022\020\n\013SegmentInfo"
|
||||
"\020\330\004\022\017\n\nSystemInfo\020\331\004\022\024\n\017GetRecoveryInfo\020"
|
||||
"\332\004\022\024\n\017GetSegmentState\020\333\004\022\r\n\010TimeTick\020\260\t\022"
|
||||
"\023\n\016QueryNodeStats\020\261\t\022\016\n\tLoadIndex\020\262\t\022\016\n\t"
|
||||
"RequestID\020\263\t\022\017\n\nRequestTSO\020\264\t\022\024\n\017Allocat"
|
||||
"eSegment\020\265\t\022\026\n\021SegmentStatistics\020\266\t\022\025\n\020S"
|
||||
"egmentFlushDone\020\267\t\022\017\n\nDataNodeTt\020\270\t\022\025\n\020C"
|
||||
"reateCredential\020\334\013\022\022\n\rGetCredential\020\335\013\022\025"
|
||||
"\n\020DeleteCredential\020\336\013\022\025\n\020UpdateCredentia"
|
||||
"l\020\337\013\022\026\n\021ListCredUsernames\020\340\013\022\017\n\nCreateRo"
|
||||
"le\020\300\014\022\r\n\010DropRole\020\301\014\022\024\n\017OperateUserRole\020"
|
||||
"\302\014\022\017\n\nSelectRole\020\303\014\022\017\n\nSelectUser\020\304\014\022\023\n\016"
|
||||
"SelectResource\020\305\014\022\025\n\020OperatePrivilege\020\306\014"
|
||||
"\022\020\n\013SelectGrant\020\307\014\022\033\n\026RefreshPolicyInfoC"
|
||||
"ache\020\310\014\022\017\n\nListPolicy\020\311\014*\"\n\007DslType\022\007\n\003D"
|
||||
"sl\020\000\022\016\n\nBoolExprV1\020\001*B\n\017CompactionState\022"
|
||||
"\021\n\rUndefiedState\020\000\022\r\n\tExecuting\020\001\022\r\n\tCom"
|
||||
"pleted\020\002*X\n\020ConsistencyLevel\022\n\n\006Strong\020\000"
|
||||
"\022\013\n\007Session\020\001\022\013\n\007Bounded\020\002\022\016\n\nEventually"
|
||||
"\020\003\022\016\n\nCustomized\020\004*\213\001\n\013ImportState\022\021\n\rIm"
|
||||
"portPending\020\000\022\020\n\014ImportFailed\020\001\022\021\n\rImpor"
|
||||
"tStarted\020\002\022\023\n\017ImportPersisted\020\005\022\023\n\017Impor"
|
||||
"tCompleted\020\006\022\032\n\026ImportFailedAndCleaned\020\007"
|
||||
"*2\n\nObjectType\022\016\n\nCollection\020\000\022\n\n\006Global"
|
||||
"\020\001\022\010\n\004User\020\002*\206\005\n\017ObjectPrivilege\022\020\n\014Priv"
|
||||
"ilegeAll\020\000\022\035\n\031PrivilegeCreateCollection\020"
|
||||
"\001\022\033\n\027PrivilegeDropCollection\020\002\022\037\n\033Privil"
|
||||
"egeDescribeCollection\020\003\022\034\n\030PrivilegeShow"
|
||||
"Collections\020\004\022\021\n\rPrivilegeLoad\020\005\022\024\n\020Priv"
|
||||
"ilegeRelease\020\006\022\027\n\023PrivilegeCompaction\020\007\022"
|
||||
"\023\n\017PrivilegeInsert\020\010\022\023\n\017PrivilegeDelete\020"
|
||||
"\t\022\032\n\026PrivilegeGetStatistics\020\n\022\030\n\024Privile"
|
||||
"geCreateIndex\020\013\022\030\n\024PrivilegeIndexDetail\020"
|
||||
"\014\022\026\n\022PrivilegeDropIndex\020\r\022\023\n\017PrivilegeSe"
|
||||
"arch\020\016\022\022\n\016PrivilegeFlush\020\017\022\022\n\016PrivilegeQ"
|
||||
"uery\020\020\022\030\n\024PrivilegeLoadBalance\020\021\022\023\n\017Priv"
|
||||
"ilegeImport\020\022\022\034\n\030PrivilegeCreateOwnershi"
|
||||
"p\020\023\022\027\n\023PrivilegeUpdateUser\020\024\022\032\n\026Privileg"
|
||||
"eDropOwnership\020\025\022\034\n\030PrivilegeSelectOwner"
|
||||
"ship\020\026\022\034\n\030PrivilegeManageOwnership\020\027\022\027\n\023"
|
||||
"PrivilegeSelectUser\020\030:^\n\021privilege_ext_o"
|
||||
"bj\022\037.google.protobuf.MessageOptions\030\351\007 \001"
|
||||
"(\0132!.milvus.proto.common.PrivilegeExtBL\n"
|
||||
"\016io.milvus.grpcB\013CommonProtoP\001Z(github.c"
|
||||
"om/milvus-io/milvus/api/commonpb\240\001\001b\006pro"
|
||||
"to3"
|
||||
;
|
||||
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_common_2eproto_deps[1] = {
|
||||
&::descriptor_table_google_2fprotobuf_2fdescriptor_2eproto,
|
||||
@ -491,7 +493,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_com
|
||||
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_common_2eproto_once;
|
||||
static bool descriptor_table_common_2eproto_initialized = false;
|
||||
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_common_2eproto = {
|
||||
&descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 5245,
|
||||
&descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 5283,
|
||||
&descriptor_table_common_2eproto_once, descriptor_table_common_2eproto_sccs, descriptor_table_common_2eproto_deps, 11, 1,
|
||||
schemas, file_default_instances, TableStruct_common_2eproto::offsets,
|
||||
file_level_metadata_common_2eproto, 11, file_level_enum_descriptors_common_2eproto, file_level_service_descriptors_common_2eproto,
|
||||
@ -557,6 +559,7 @@ bool ErrorCode_IsValid(int value) {
|
||||
case 47:
|
||||
case 48:
|
||||
case 49:
|
||||
case 50:
|
||||
case 100:
|
||||
case 1000:
|
||||
return true;
|
||||
@ -3084,6 +3087,13 @@ const char* MsgBase::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::in
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// int64 targetID = 5;
|
||||
case 5:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
|
||||
targetid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
@ -3167,6 +3177,19 @@ bool MsgBase::MergePartialFromCodedStream(
|
||||
break;
|
||||
}
|
||||
|
||||
// int64 targetID = 5;
|
||||
case 5: {
|
||||
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (40 & 0xFF)) {
|
||||
|
||||
DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
|
||||
::PROTOBUF_NAMESPACE_ID::int64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64>(
|
||||
input, &targetid_)));
|
||||
} else {
|
||||
goto handle_unusual;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
handle_unusual:
|
||||
if (tag == 0) {
|
||||
@ -3215,6 +3238,11 @@ void MsgBase::SerializeWithCachedSizes(
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64(4, this->sourceid(), output);
|
||||
}
|
||||
|
||||
// int64 targetID = 5;
|
||||
if (this->targetid() != 0) {
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64(5, this->targetid(), output);
|
||||
}
|
||||
|
||||
if (_internal_metadata_.have_unknown_fields()) {
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
|
||||
_internal_metadata_.unknown_fields(), output);
|
||||
@ -3249,6 +3277,11 @@ void MsgBase::SerializeWithCachedSizes(
|
||||
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(4, this->sourceid(), target);
|
||||
}
|
||||
|
||||
// int64 targetID = 5;
|
||||
if (this->targetid() != 0) {
|
||||
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->targetid(), target);
|
||||
}
|
||||
|
||||
if (_internal_metadata_.have_unknown_fields()) {
|
||||
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
|
||||
_internal_metadata_.unknown_fields(), target);
|
||||
@ -3291,6 +3324,13 @@ size_t MsgBase::ByteSizeLong() const {
|
||||
this->sourceid());
|
||||
}
|
||||
|
||||
// int64 targetID = 5;
|
||||
if (this->targetid() != 0) {
|
||||
total_size += 1 +
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
|
||||
this->targetid());
|
||||
}
|
||||
|
||||
// .milvus.proto.common.MsgType msg_type = 1;
|
||||
if (this->msg_type() != 0) {
|
||||
total_size += 1 +
|
||||
@ -3333,6 +3373,9 @@ void MsgBase::MergeFrom(const MsgBase& from) {
|
||||
if (from.sourceid() != 0) {
|
||||
set_sourceid(from.sourceid());
|
||||
}
|
||||
if (from.targetid() != 0) {
|
||||
set_targetid(from.targetid());
|
||||
}
|
||||
if (from.msg_type() != 0) {
|
||||
set_msg_type(from.msg_type());
|
||||
}
|
||||
@ -3362,6 +3405,7 @@ void MsgBase::InternalSwap(MsgBase* other) {
|
||||
swap(msgid_, other->msgid_);
|
||||
swap(timestamp_, other->timestamp_);
|
||||
swap(sourceid_, other->sourceid_);
|
||||
swap(targetid_, other->targetid_);
|
||||
swap(msg_type_, other->msg_type_);
|
||||
}
|
||||
|
||||
|
||||
@ -162,6 +162,7 @@ enum ErrorCode : int {
|
||||
SegmentNotFound = 47,
|
||||
ForceDeny = 48,
|
||||
RateLimit = 49,
|
||||
NodeIDNotMatch = 50,
|
||||
DataCoordNA = 100,
|
||||
DDRequestRace = 1000,
|
||||
ErrorCode_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
|
||||
@ -1700,6 +1701,7 @@ class MsgBase :
|
||||
kMsgIDFieldNumber = 2,
|
||||
kTimestampFieldNumber = 3,
|
||||
kSourceIDFieldNumber = 4,
|
||||
kTargetIDFieldNumber = 5,
|
||||
kMsgTypeFieldNumber = 1,
|
||||
};
|
||||
// int64 msgID = 2;
|
||||
@ -1717,6 +1719,11 @@ class MsgBase :
|
||||
::PROTOBUF_NAMESPACE_ID::int64 sourceid() const;
|
||||
void set_sourceid(::PROTOBUF_NAMESPACE_ID::int64 value);
|
||||
|
||||
// int64 targetID = 5;
|
||||
void clear_targetid();
|
||||
::PROTOBUF_NAMESPACE_ID::int64 targetid() const;
|
||||
void set_targetid(::PROTOBUF_NAMESPACE_ID::int64 value);
|
||||
|
||||
// .milvus.proto.common.MsgType msg_type = 1;
|
||||
void clear_msg_type();
|
||||
::milvus::proto::common::MsgType msg_type() const;
|
||||
@ -1730,6 +1737,7 @@ class MsgBase :
|
||||
::PROTOBUF_NAMESPACE_ID::int64 msgid_;
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 timestamp_;
|
||||
::PROTOBUF_NAMESPACE_ID::int64 sourceid_;
|
||||
::PROTOBUF_NAMESPACE_ID::int64 targetid_;
|
||||
int msg_type_;
|
||||
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
|
||||
friend struct ::TableStruct_common_2eproto;
|
||||
@ -2811,6 +2819,20 @@ inline void MsgBase::set_sourceid(::PROTOBUF_NAMESPACE_ID::int64 value) {
|
||||
// @@protoc_insertion_point(field_set:milvus.proto.common.MsgBase.sourceID)
|
||||
}
|
||||
|
||||
// int64 targetID = 5;
|
||||
inline void MsgBase::clear_targetid() {
|
||||
targetid_ = PROTOBUF_LONGLONG(0);
|
||||
}
|
||||
inline ::PROTOBUF_NAMESPACE_ID::int64 MsgBase::targetid() const {
|
||||
// @@protoc_insertion_point(field_get:milvus.proto.common.MsgBase.targetID)
|
||||
return targetid_;
|
||||
}
|
||||
inline void MsgBase::set_targetid(::PROTOBUF_NAMESPACE_ID::int64 value) {
|
||||
|
||||
targetid_ = value;
|
||||
// @@protoc_insertion_point(field_set:milvus.proto.common.MsgBase.targetID)
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// MsgHeader
|
||||
|
||||
@ -60,6 +60,7 @@ enum ErrorCode {
|
||||
SegmentNotFound = 47;
|
||||
ForceDeny = 48;
|
||||
RateLimit = 49;
|
||||
NodeIDNotMatch = 50;
|
||||
|
||||
// Service availability.
|
||||
// NA: Not Available.
|
||||
@ -240,6 +241,7 @@ message MsgBase {
|
||||
int64 msgID = 2;
|
||||
uint64 timestamp = 3;
|
||||
int64 sourceID = 4;
|
||||
int64 targetID = 5;
|
||||
}
|
||||
|
||||
enum DslType {
|
||||
|
||||
8
internal/querycoordv2/dist/dist_handler.go
vendored
8
internal/querycoordv2/dist/dist_handler.go
vendored
@ -54,7 +54,9 @@ func (dh *distHandler) start(ctx context.Context) {
|
||||
case <-ticker.C:
|
||||
dh.mu.Lock()
|
||||
cctx, cancel := context.WithTimeout(ctx, distReqTimeout)
|
||||
resp, err := dh.client.GetDataDistribution(cctx, dh.nodeID, &querypb.GetDataDistributionRequest{})
|
||||
resp, err := dh.client.GetDataDistribution(cctx, dh.nodeID, &querypb.GetDataDistributionRequest{
|
||||
Base: &commonpb.MsgBase{MsgType: commonpb.MsgType_GetDistribution},
|
||||
})
|
||||
cancel()
|
||||
|
||||
if err != nil || resp.GetStatus().GetErrorCode() != commonpb.ErrorCode_Success {
|
||||
@ -175,7 +177,9 @@ func (dh *distHandler) getDistribution(ctx context.Context) {
|
||||
dh.mu.Lock()
|
||||
defer dh.mu.Unlock()
|
||||
cctx, cancel := context.WithTimeout(ctx, distReqTimeout)
|
||||
resp, err := dh.client.GetDataDistribution(cctx, dh.nodeID, &querypb.GetDataDistributionRequest{})
|
||||
resp, err := dh.client.GetDataDistribution(cctx, dh.nodeID, &querypb.GetDataDistributionRequest{
|
||||
Base: &commonpb.MsgBase{MsgType: commonpb.MsgType_GetDistribution},
|
||||
})
|
||||
cancel()
|
||||
|
||||
if err != nil || resp.GetStatus().GetErrorCode() != commonpb.ErrorCode_Success {
|
||||
|
||||
@ -7,6 +7,7 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/milvus-io/milvus/api/commonpb"
|
||||
"github.com/milvus-io/milvus/api/milvuspb"
|
||||
grpcquerynodeclient "github.com/milvus-io/milvus/internal/distributed/querynode/client"
|
||||
@ -92,6 +93,8 @@ func (c *QueryCluster) LoadSegments(ctx context.Context, nodeID int64, req *quer
|
||||
var status *commonpb.Status
|
||||
var err error
|
||||
err1 := c.send(ctx, nodeID, func(cli *grpcquerynodeclient.Client) {
|
||||
req := proto.Clone(req).(*querypb.LoadSegmentsRequest)
|
||||
req.Base.TargetID = nodeID
|
||||
status, err = cli.LoadSegments(ctx, req)
|
||||
})
|
||||
if err1 != nil {
|
||||
@ -104,6 +107,8 @@ func (c *QueryCluster) WatchDmChannels(ctx context.Context, nodeID int64, req *q
|
||||
var status *commonpb.Status
|
||||
var err error
|
||||
err1 := c.send(ctx, nodeID, func(cli *grpcquerynodeclient.Client) {
|
||||
req := proto.Clone(req).(*querypb.WatchDmChannelsRequest)
|
||||
req.Base.TargetID = nodeID
|
||||
status, err = cli.WatchDmChannels(ctx, req)
|
||||
})
|
||||
if err1 != nil {
|
||||
@ -116,6 +121,8 @@ func (c *QueryCluster) UnsubDmChannel(ctx context.Context, nodeID int64, req *qu
|
||||
var status *commonpb.Status
|
||||
var err error
|
||||
err1 := c.send(ctx, nodeID, func(cli *grpcquerynodeclient.Client) {
|
||||
req := proto.Clone(req).(*querypb.UnsubDmChannelRequest)
|
||||
req.Base.TargetID = nodeID
|
||||
status, err = cli.UnsubDmChannel(ctx, req)
|
||||
})
|
||||
if err1 != nil {
|
||||
@ -128,6 +135,8 @@ func (c *QueryCluster) ReleaseSegments(ctx context.Context, nodeID int64, req *q
|
||||
var status *commonpb.Status
|
||||
var err error
|
||||
err1 := c.send(ctx, nodeID, func(cli *grpcquerynodeclient.Client) {
|
||||
req := proto.Clone(req).(*querypb.ReleaseSegmentsRequest)
|
||||
req.Base.TargetID = nodeID
|
||||
status, err = cli.ReleaseSegments(ctx, req)
|
||||
})
|
||||
if err1 != nil {
|
||||
@ -140,6 +149,10 @@ func (c *QueryCluster) GetDataDistribution(ctx context.Context, nodeID int64, re
|
||||
var resp *querypb.GetDataDistributionResponse
|
||||
var err error
|
||||
err1 := c.send(ctx, nodeID, func(cli *grpcquerynodeclient.Client) {
|
||||
req := proto.Clone(req).(*querypb.GetDataDistributionRequest)
|
||||
req.Base = &commonpb.MsgBase{
|
||||
TargetID: nodeID,
|
||||
}
|
||||
resp, err = cli.GetDataDistribution(ctx, req)
|
||||
})
|
||||
if err1 != nil {
|
||||
@ -168,6 +181,8 @@ func (c *QueryCluster) SyncDistribution(ctx context.Context, nodeID int64, req *
|
||||
err error
|
||||
)
|
||||
err1 := c.send(ctx, nodeID, func(cli *grpcquerynodeclient.Client) {
|
||||
req := proto.Clone(req).(*querypb.SyncDistributionRequest)
|
||||
req.Base.TargetID = nodeID
|
||||
resp, err = cli.SyncDistribution(ctx, req)
|
||||
})
|
||||
if err1 != nil {
|
||||
|
||||
@ -162,6 +162,7 @@ func (suite *ClusterTestSuite) createFailedMockServer() querypb.QueryNodeServer
|
||||
func (suite *ClusterTestSuite) TestLoadSegments() {
|
||||
ctx := context.TODO()
|
||||
status, err := suite.cluster.LoadSegments(ctx, 0, &querypb.LoadSegmentsRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
Infos: []*querypb.SegmentLoadInfo{{}},
|
||||
})
|
||||
suite.NoError(err)
|
||||
@ -171,6 +172,7 @@ func (suite *ClusterTestSuite) TestLoadSegments() {
|
||||
}, status)
|
||||
|
||||
status, err = suite.cluster.LoadSegments(ctx, 1, &querypb.LoadSegmentsRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
Infos: []*querypb.SegmentLoadInfo{{}},
|
||||
})
|
||||
suite.NoError(err)
|
||||
@ -180,6 +182,7 @@ func (suite *ClusterTestSuite) TestLoadSegments() {
|
||||
}, status)
|
||||
|
||||
_, err = suite.cluster.LoadSegments(ctx, 3, &querypb.LoadSegmentsRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
Infos: []*querypb.SegmentLoadInfo{{}},
|
||||
})
|
||||
suite.Error(err)
|
||||
@ -188,14 +191,18 @@ func (suite *ClusterTestSuite) TestLoadSegments() {
|
||||
|
||||
func (suite *ClusterTestSuite) TestWatchDmChannels() {
|
||||
ctx := context.TODO()
|
||||
status, err := suite.cluster.WatchDmChannels(ctx, 0, &querypb.WatchDmChannelsRequest{})
|
||||
status, err := suite.cluster.WatchDmChannels(ctx, 0, &querypb.WatchDmChannelsRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
})
|
||||
suite.NoError(err)
|
||||
suite.Equal(&commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
Reason: "",
|
||||
}, status)
|
||||
|
||||
status, err = suite.cluster.WatchDmChannels(ctx, 1, &querypb.WatchDmChannelsRequest{})
|
||||
status, err = suite.cluster.WatchDmChannels(ctx, 1, &querypb.WatchDmChannelsRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
})
|
||||
suite.NoError(err)
|
||||
suite.Equal(&commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_UnexpectedError,
|
||||
@ -205,14 +212,18 @@ func (suite *ClusterTestSuite) TestWatchDmChannels() {
|
||||
|
||||
func (suite *ClusterTestSuite) TestUnsubDmChannel() {
|
||||
ctx := context.TODO()
|
||||
status, err := suite.cluster.UnsubDmChannel(ctx, 0, &querypb.UnsubDmChannelRequest{})
|
||||
status, err := suite.cluster.UnsubDmChannel(ctx, 0, &querypb.UnsubDmChannelRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
})
|
||||
suite.NoError(err)
|
||||
suite.Equal(&commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
Reason: "",
|
||||
}, status)
|
||||
|
||||
status, err = suite.cluster.UnsubDmChannel(ctx, 1, &querypb.UnsubDmChannelRequest{})
|
||||
status, err = suite.cluster.UnsubDmChannel(ctx, 1, &querypb.UnsubDmChannelRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
})
|
||||
suite.NoError(err)
|
||||
suite.Equal(&commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_UnexpectedError,
|
||||
@ -222,14 +233,18 @@ func (suite *ClusterTestSuite) TestUnsubDmChannel() {
|
||||
|
||||
func (suite *ClusterTestSuite) TestReleaseSegments() {
|
||||
ctx := context.TODO()
|
||||
status, err := suite.cluster.ReleaseSegments(ctx, 0, &querypb.ReleaseSegmentsRequest{})
|
||||
status, err := suite.cluster.ReleaseSegments(ctx, 0, &querypb.ReleaseSegmentsRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
})
|
||||
suite.NoError(err)
|
||||
suite.Equal(&commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
Reason: "",
|
||||
}, status)
|
||||
|
||||
status, err = suite.cluster.ReleaseSegments(ctx, 1, &querypb.ReleaseSegmentsRequest{})
|
||||
status, err = suite.cluster.ReleaseSegments(ctx, 1, &querypb.ReleaseSegmentsRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
})
|
||||
suite.NoError(err)
|
||||
suite.Equal(&commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_UnexpectedError,
|
||||
@ -239,14 +254,19 @@ func (suite *ClusterTestSuite) TestReleaseSegments() {
|
||||
|
||||
func (suite *ClusterTestSuite) TestGetDataDistribution() {
|
||||
ctx := context.TODO()
|
||||
resp, err := suite.cluster.GetDataDistribution(ctx, 0, &querypb.GetDataDistributionRequest{})
|
||||
resp, err := suite.cluster.GetDataDistribution(ctx, 0, &querypb.GetDataDistributionRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
})
|
||||
suite.NoError(err)
|
||||
suite.Equal(&commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
Reason: "",
|
||||
}, resp.GetStatus())
|
||||
|
||||
resp, err = suite.cluster.GetDataDistribution(ctx, 1, &querypb.GetDataDistributionRequest{})
|
||||
resp, err = suite.cluster.GetDataDistribution(ctx, 1, &querypb.GetDataDistributionRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
})
|
||||
|
||||
suite.NoError(err)
|
||||
suite.Equal(&commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_UnexpectedError,
|
||||
@ -273,14 +293,18 @@ func (suite *ClusterTestSuite) TestGetMetrics() {
|
||||
|
||||
func (suite *ClusterTestSuite) TestSyncDistribution() {
|
||||
ctx := context.TODO()
|
||||
status, err := suite.cluster.SyncDistribution(ctx, 0, &querypb.SyncDistributionRequest{})
|
||||
status, err := suite.cluster.SyncDistribution(ctx, 0, &querypb.SyncDistributionRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
})
|
||||
suite.NoError(err)
|
||||
suite.Equal(&commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
Reason: "",
|
||||
}, status)
|
||||
|
||||
status, err = suite.cluster.SyncDistribution(ctx, 1, &querypb.SyncDistributionRequest{})
|
||||
status, err = suite.cluster.SyncDistribution(ctx, 1, &querypb.SyncDistributionRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
})
|
||||
suite.NoError(err)
|
||||
suite.Equal(&commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_UnexpectedError,
|
||||
|
||||
@ -279,6 +279,7 @@ func (node *QueryNode) getStatisticsWithDmlChannel(ctx context.Context, req *que
|
||||
|
||||
// WatchDmChannels create consumers on dmChannels to receive Incremental data,which is the important part of real-time query
|
||||
func (node *QueryNode) WatchDmChannels(ctx context.Context, in *querypb.WatchDmChannelsRequest) (*commonpb.Status, error) {
|
||||
// check node healthy
|
||||
code := node.stateCode.Load().(internalpb.StateCode)
|
||||
if code != internalpb.StateCode_Healthy {
|
||||
err := fmt.Errorf("query node %d is not ready", Params.QueryNodeCfg.GetNodeID())
|
||||
@ -288,6 +289,16 @@ func (node *QueryNode) WatchDmChannels(ctx context.Context, in *querypb.WatchDmC
|
||||
}
|
||||
return status, nil
|
||||
}
|
||||
|
||||
// check target matches
|
||||
if in.GetBase().GetTargetID() != node.session.ServerID {
|
||||
status := &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_NodeIDNotMatch,
|
||||
Reason: common.WrapNodeIDNotMatchMsg(in.GetBase().GetTargetID(), node.session.ServerID),
|
||||
}
|
||||
return status, nil
|
||||
}
|
||||
|
||||
task := &watchDmChannelsTask{
|
||||
baseTask: baseTask{
|
||||
ctx: ctx,
|
||||
@ -335,6 +346,7 @@ func (node *QueryNode) WatchDmChannels(ctx context.Context, in *querypb.WatchDmC
|
||||
}
|
||||
|
||||
func (node *QueryNode) UnsubDmChannel(ctx context.Context, req *querypb.UnsubDmChannelRequest) (*commonpb.Status, error) {
|
||||
// check node healthy
|
||||
code := node.stateCode.Load().(internalpb.StateCode)
|
||||
if code != internalpb.StateCode_Healthy {
|
||||
err := fmt.Errorf("query node %d is not ready", Params.QueryNodeCfg.GetNodeID())
|
||||
@ -344,6 +356,16 @@ func (node *QueryNode) UnsubDmChannel(ctx context.Context, req *querypb.UnsubDmC
|
||||
}
|
||||
return status, nil
|
||||
}
|
||||
|
||||
// check target matches
|
||||
if req.GetBase().GetTargetID() != node.session.ServerID {
|
||||
status := &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_NodeIDNotMatch,
|
||||
Reason: common.WrapNodeIDNotMatchMsg(req.GetBase().GetTargetID(), node.session.ServerID),
|
||||
}
|
||||
return status, nil
|
||||
}
|
||||
|
||||
dct := &releaseCollectionTask{
|
||||
baseTask: baseTask{
|
||||
ctx: ctx,
|
||||
@ -385,6 +407,7 @@ func (node *QueryNode) UnsubDmChannel(ctx context.Context, req *querypb.UnsubDmC
|
||||
|
||||
// LoadSegments load historical data into query node, historical data can be vector data or index
|
||||
func (node *QueryNode) LoadSegments(ctx context.Context, in *querypb.LoadSegmentsRequest) (*commonpb.Status, error) {
|
||||
// check node healthy
|
||||
code := node.stateCode.Load().(internalpb.StateCode)
|
||||
if code != internalpb.StateCode_Healthy {
|
||||
err := fmt.Errorf("query node %d is not ready", Params.QueryNodeCfg.GetNodeID())
|
||||
@ -394,6 +417,14 @@ func (node *QueryNode) LoadSegments(ctx context.Context, in *querypb.LoadSegment
|
||||
}
|
||||
return status, nil
|
||||
}
|
||||
// check target matches
|
||||
if in.GetBase().GetTargetID() != node.session.ServerID {
|
||||
status := &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_NodeIDNotMatch,
|
||||
Reason: common.WrapNodeIDNotMatchMsg(in.GetBase().GetTargetID(), node.session.ServerID),
|
||||
}
|
||||
return status, nil
|
||||
}
|
||||
|
||||
if in.GetNeedTransfer() {
|
||||
return node.TransferLoad(ctx, in)
|
||||
@ -537,6 +568,7 @@ func (node *QueryNode) ReleasePartitions(ctx context.Context, in *querypb.Releas
|
||||
|
||||
// ReleaseSegments remove the specified segments from query node according segmentIDs, partitionIDs, and collectionID
|
||||
func (node *QueryNode) ReleaseSegments(ctx context.Context, in *querypb.ReleaseSegmentsRequest) (*commonpb.Status, error) {
|
||||
// check node healthy
|
||||
code := node.stateCode.Load().(internalpb.StateCode)
|
||||
if code != internalpb.StateCode_Healthy {
|
||||
err := fmt.Errorf("query node %d is not ready", Params.QueryNodeCfg.GetNodeID())
|
||||
@ -546,6 +578,14 @@ func (node *QueryNode) ReleaseSegments(ctx context.Context, in *querypb.ReleaseS
|
||||
}
|
||||
return status, nil
|
||||
}
|
||||
// check target matches
|
||||
if in.GetBase().GetTargetID() != node.session.ServerID {
|
||||
status := &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_NodeIDNotMatch,
|
||||
Reason: common.WrapNodeIDNotMatchMsg(in.GetBase().GetTargetID(), node.session.ServerID),
|
||||
}
|
||||
return status, nil
|
||||
}
|
||||
|
||||
if in.GetNeedTransfer() {
|
||||
return node.TransferRelease(ctx, in)
|
||||
@ -1163,6 +1203,15 @@ func (node *QueryNode) GetDataDistribution(ctx context.Context, req *querypb.Get
|
||||
}, nil
|
||||
}
|
||||
|
||||
// check target matches
|
||||
if req.GetBase().GetTargetID() != node.session.ServerID {
|
||||
status := &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_NodeIDNotMatch,
|
||||
Reason: common.WrapNodeIDNotMatchMsg(req.GetBase().GetTargetID(), node.session.ServerID),
|
||||
}
|
||||
return &querypb.GetDataDistributionResponse{Status: status}, nil
|
||||
}
|
||||
|
||||
growingSegments := node.metaReplica.getGrowingSegments()
|
||||
sealedSegments := node.metaReplica.getSealedSegments()
|
||||
shardClusters := node.ShardClusterService.GetShardClusters()
|
||||
@ -1225,6 +1274,24 @@ func (node *QueryNode) GetDataDistribution(ctx context.Context, req *querypb.Get
|
||||
|
||||
func (node *QueryNode) SyncDistribution(ctx context.Context, req *querypb.SyncDistributionRequest) (*commonpb.Status, error) {
|
||||
log := log.Ctx(ctx).With(zap.Int64("collectionID", req.GetCollectionID()), zap.String("channel", req.GetChannel()))
|
||||
// check node healthy
|
||||
code := node.stateCode.Load().(internalpb.StateCode)
|
||||
if code != internalpb.StateCode_Healthy {
|
||||
err := fmt.Errorf("query node %d is not ready", Params.QueryNodeCfg.GetNodeID())
|
||||
status := &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_UnexpectedError,
|
||||
Reason: err.Error(),
|
||||
}
|
||||
return status, nil
|
||||
}
|
||||
// check target matches
|
||||
if req.GetBase().GetTargetID() != node.session.ServerID {
|
||||
status := &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_NodeIDNotMatch,
|
||||
Reason: common.WrapNodeIDNotMatchMsg(req.GetBase().GetTargetID(), node.session.ServerID),
|
||||
}
|
||||
return status, nil
|
||||
}
|
||||
log.Debug("SyncDistribution received")
|
||||
shardCluster, ok := node.ShardClusterService.getShardCluster(req.GetChannel())
|
||||
if !ok {
|
||||
|
||||
@ -91,32 +91,89 @@ func TestImpl_WatchDmChannels(t *testing.T) {
|
||||
node, err := genSimpleQueryNode(ctx)
|
||||
assert.NoError(t, err)
|
||||
|
||||
schema := genTestCollectionSchema()
|
||||
req := &queryPb.WatchDmChannelsRequest{
|
||||
Base: &commonpb.MsgBase{
|
||||
MsgType: commonpb.MsgType_WatchDmChannels,
|
||||
MsgID: rand.Int63(),
|
||||
},
|
||||
NodeID: 0,
|
||||
CollectionID: defaultCollectionID,
|
||||
PartitionIDs: []UniqueID{defaultPartitionID},
|
||||
Schema: schema,
|
||||
Infos: []*datapb.VchannelInfo{
|
||||
{
|
||||
CollectionID: 1000,
|
||||
ChannelName: "1000-dmc0",
|
||||
t.Run("normal_run", func(t *testing.T) {
|
||||
schema := genTestCollectionSchema()
|
||||
req := &queryPb.WatchDmChannelsRequest{
|
||||
Base: &commonpb.MsgBase{
|
||||
MsgType: commonpb.MsgType_WatchDmChannels,
|
||||
MsgID: rand.Int63(),
|
||||
TargetID: node.session.ServerID,
|
||||
},
|
||||
},
|
||||
}
|
||||
NodeID: 0,
|
||||
CollectionID: defaultCollectionID,
|
||||
PartitionIDs: []UniqueID{defaultPartitionID},
|
||||
Schema: schema,
|
||||
Infos: []*datapb.VchannelInfo{
|
||||
{
|
||||
CollectionID: 1000,
|
||||
ChannelName: "1000-dmc0",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
status, err := node.WatchDmChannels(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode)
|
||||
status, err := node.WatchDmChannels(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode)
|
||||
})
|
||||
|
||||
node.UpdateStateCode(internalpb.StateCode_Abnormal)
|
||||
status, err = node.WatchDmChannels(ctx, req)
|
||||
t.Run("target not match", func(t *testing.T) {
|
||||
req := &queryPb.WatchDmChannelsRequest{
|
||||
Base: &commonpb.MsgBase{
|
||||
MsgType: commonpb.MsgType_WatchDmChannels,
|
||||
MsgID: rand.Int63(),
|
||||
TargetID: -1,
|
||||
},
|
||||
}
|
||||
status, err := node.WatchDmChannels(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_NodeIDNotMatch, status.ErrorCode)
|
||||
})
|
||||
|
||||
t.Run("server unhealthy", func(t *testing.T) {
|
||||
req := &queryPb.WatchDmChannelsRequest{
|
||||
Base: &commonpb.MsgBase{
|
||||
MsgType: commonpb.MsgType_WatchDmChannels,
|
||||
MsgID: rand.Int63(),
|
||||
},
|
||||
}
|
||||
node.UpdateStateCode(internalpb.StateCode_Abnormal)
|
||||
status, err := node.WatchDmChannels(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, status.ErrorCode)
|
||||
})
|
||||
}
|
||||
|
||||
func TestImpl_UnsubDmChannel(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
node, err := genSimpleQueryNode(ctx)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, status.ErrorCode)
|
||||
|
||||
t.Run("target not match", func(t *testing.T) {
|
||||
req := &queryPb.UnsubDmChannelRequest{
|
||||
Base: &commonpb.MsgBase{
|
||||
MsgType: commonpb.MsgType_UnsubDmChannel,
|
||||
MsgID: rand.Int63(),
|
||||
TargetID: -1,
|
||||
},
|
||||
}
|
||||
status, err := node.UnsubDmChannel(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_NodeIDNotMatch, status.ErrorCode)
|
||||
})
|
||||
|
||||
t.Run("server unhealthy", func(t *testing.T) {
|
||||
req := &queryPb.UnsubDmChannelRequest{
|
||||
Base: &commonpb.MsgBase{
|
||||
MsgType: commonpb.MsgType_UnsubDmChannel,
|
||||
MsgID: rand.Int63(),
|
||||
},
|
||||
}
|
||||
node.UpdateStateCode(internalpb.StateCode_Abnormal)
|
||||
status, err := node.UnsubDmChannel(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, status.ErrorCode)
|
||||
})
|
||||
}
|
||||
|
||||
func TestImpl_LoadSegments(t *testing.T) {
|
||||
@ -129,21 +186,39 @@ func TestImpl_LoadSegments(t *testing.T) {
|
||||
|
||||
req := &queryPb.LoadSegmentsRequest{
|
||||
Base: &commonpb.MsgBase{
|
||||
MsgType: commonpb.MsgType_WatchQueryChannels,
|
||||
MsgID: rand.Int63(),
|
||||
MsgType: commonpb.MsgType_WatchQueryChannels,
|
||||
MsgID: rand.Int63(),
|
||||
TargetID: node.session.ServerID,
|
||||
},
|
||||
DstNodeID: 0,
|
||||
Schema: schema,
|
||||
}
|
||||
|
||||
status, err := node.LoadSegments(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode)
|
||||
t.Run("normal run", func(t *testing.T) {
|
||||
status, err := node.LoadSegments(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode)
|
||||
})
|
||||
|
||||
node.UpdateStateCode(internalpb.StateCode_Abnormal)
|
||||
status, err = node.LoadSegments(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, status.ErrorCode)
|
||||
t.Run("target not match", func(t *testing.T) {
|
||||
req := &queryPb.LoadSegmentsRequest{
|
||||
Base: &commonpb.MsgBase{
|
||||
MsgType: commonpb.MsgType_WatchQueryChannels,
|
||||
MsgID: rand.Int63(),
|
||||
TargetID: -1,
|
||||
},
|
||||
}
|
||||
status, err := node.LoadSegments(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_NodeIDNotMatch, status.ErrorCode)
|
||||
})
|
||||
|
||||
t.Run("server unhealthy", func(t *testing.T) {
|
||||
node.UpdateStateCode(internalpb.StateCode_Abnormal)
|
||||
status, err := node.LoadSegments(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, status.ErrorCode)
|
||||
})
|
||||
}
|
||||
|
||||
func TestImpl_ReleaseCollection(t *testing.T) {
|
||||
@ -342,7 +417,7 @@ func TestImpl_ShowConfigurations(t *testing.T) {
|
||||
|
||||
pattern := "Cache"
|
||||
req := &internalpb.ShowConfigurationsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_WatchQueryChannels),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_WatchQueryChannels, node.session.ServerID),
|
||||
Pattern: pattern,
|
||||
}
|
||||
|
||||
@ -359,7 +434,7 @@ func TestImpl_ShowConfigurations(t *testing.T) {
|
||||
|
||||
pattern := "Cache"
|
||||
req := &internalpb.ShowConfigurationsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_WatchQueryChannels),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_WatchQueryChannels, node.session.ServerID),
|
||||
Pattern: pattern,
|
||||
}
|
||||
|
||||
@ -429,15 +504,12 @@ func TestImpl_ReleaseSegments(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(1)
|
||||
t.Run("test valid", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
node, err := genSimpleQueryNode(ctx)
|
||||
assert.NoError(t, err)
|
||||
|
||||
req := &queryPb.ReleaseSegmentsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_ReleaseSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_ReleaseSegments, node.session.ServerID),
|
||||
CollectionID: defaultCollectionID,
|
||||
PartitionIDs: []UniqueID{defaultPartitionID},
|
||||
SegmentIDs: []UniqueID{defaultSegmentID},
|
||||
@ -456,32 +528,45 @@ func TestImpl_ReleaseSegments(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
})
|
||||
|
||||
wg.Add(1)
|
||||
t.Run("test invalid query node", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
node, err := genSimpleQueryNode(ctx)
|
||||
assert.NoError(t, err)
|
||||
|
||||
req := &queryPb.ReleaseSegmentsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_ReleaseSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_ReleaseSegments, node.session.ServerID),
|
||||
CollectionID: defaultCollectionID,
|
||||
PartitionIDs: []UniqueID{defaultPartitionID},
|
||||
SegmentIDs: []UniqueID{defaultSegmentID},
|
||||
}
|
||||
|
||||
node.UpdateStateCode(internalpb.StateCode_Abnormal)
|
||||
_, err = node.ReleaseSegments(ctx, req)
|
||||
resp, err := node.ReleaseSegments(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, resp.GetErrorCode())
|
||||
})
|
||||
|
||||
wg.Add(1)
|
||||
t.Run("test segment not exists", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
t.Run("test target not matched", func(t *testing.T) {
|
||||
node, err := genSimpleQueryNode(ctx)
|
||||
assert.NoError(t, err)
|
||||
|
||||
req := &queryPb.ReleaseSegmentsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_ReleaseSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_ReleaseSegments, -1),
|
||||
CollectionID: defaultCollectionID,
|
||||
PartitionIDs: []UniqueID{defaultPartitionID},
|
||||
SegmentIDs: []UniqueID{defaultSegmentID},
|
||||
}
|
||||
|
||||
resp, err := node.ReleaseSegments(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_NodeIDNotMatch, resp.GetErrorCode())
|
||||
})
|
||||
|
||||
t.Run("test segment not exists", func(t *testing.T) {
|
||||
node, err := genSimpleQueryNode(ctx)
|
||||
assert.NoError(t, err)
|
||||
|
||||
req := &queryPb.ReleaseSegmentsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_ReleaseSegments, node.session.ServerID),
|
||||
CollectionID: defaultCollectionID,
|
||||
PartitionIDs: []UniqueID{defaultPartitionID},
|
||||
SegmentIDs: []UniqueID{defaultSegmentID},
|
||||
@ -494,16 +579,14 @@ func TestImpl_ReleaseSegments(t *testing.T) {
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode)
|
||||
})
|
||||
|
||||
wg.Add(1)
|
||||
t.Run("test no collection", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
node, err := genSimpleQueryNode(ctx)
|
||||
assert.NoError(t, err)
|
||||
err = node.metaReplica.removeCollection(defaultCollectionID)
|
||||
assert.NoError(t, err)
|
||||
|
||||
req := &queryPb.ReleaseSegmentsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_ReleaseSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_ReleaseSegments, node.session.ServerID),
|
||||
CollectionID: defaultCollectionID,
|
||||
}
|
||||
|
||||
@ -511,7 +594,6 @@ func TestImpl_ReleaseSegments(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode)
|
||||
})
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
func TestImpl_Search(t *testing.T) {
|
||||
@ -781,6 +863,31 @@ func TestSyncDistribution(t *testing.T) {
|
||||
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, resp.GetErrorCode())
|
||||
})
|
||||
|
||||
t.Run("Target not match", func(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
node, err := genSimpleQueryNode(ctx)
|
||||
defer node.Stop()
|
||||
assert.NoError(t, err)
|
||||
|
||||
resp, err := node.SyncDistribution(ctx, &querypb.SyncDistributionRequest{
|
||||
Base: &commonpb.MsgBase{TargetID: -1},
|
||||
CollectionID: defaultCollectionID,
|
||||
Channel: defaultDMLChannel,
|
||||
Actions: []*querypb.SyncAction{
|
||||
{
|
||||
Type: querypb.SyncType_Set,
|
||||
PartitionID: defaultPartitionID,
|
||||
SegmentID: defaultSegmentID,
|
||||
NodeID: 99,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_NodeIDNotMatch, resp.GetErrorCode())
|
||||
})
|
||||
|
||||
t.Run("Sync non-exist channel", func(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
@ -789,6 +896,7 @@ func TestSyncDistribution(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
resp, err := node.SyncDistribution(ctx, &querypb.SyncDistributionRequest{
|
||||
Base: &commonpb.MsgBase{TargetID: node.session.ServerID},
|
||||
CollectionID: defaultCollectionID,
|
||||
Channel: defaultDMLChannel,
|
||||
Actions: []*querypb.SyncAction{
|
||||
@ -815,6 +923,7 @@ func TestSyncDistribution(t *testing.T) {
|
||||
node.ShardClusterService.addShardCluster(defaultCollectionID, defaultReplicaID, defaultDMLChannel)
|
||||
|
||||
resp, err := node.SyncDistribution(ctx, &querypb.SyncDistributionRequest{
|
||||
Base: &commonpb.MsgBase{TargetID: node.session.ServerID},
|
||||
CollectionID: defaultCollectionID,
|
||||
Channel: defaultDMLChannel,
|
||||
Actions: []*querypb.SyncAction{
|
||||
@ -839,6 +948,7 @@ func TestSyncDistribution(t *testing.T) {
|
||||
assert.Equal(t, segmentStateLoaded, segment.state)
|
||||
assert.EqualValues(t, 1, segment.version)
|
||||
resp, err = node.SyncDistribution(ctx, &querypb.SyncDistributionRequest{
|
||||
Base: &commonpb.MsgBase{TargetID: node.session.ServerID},
|
||||
CollectionID: defaultCollectionID,
|
||||
Channel: defaultDMLChannel,
|
||||
Actions: []*querypb.SyncAction{
|
||||
@ -860,3 +970,34 @@ func TestSyncDistribution(t *testing.T) {
|
||||
require.False(t, ok)
|
||||
})
|
||||
}
|
||||
|
||||
func TestGetDataDistribution(t *testing.T) {
|
||||
t.Run("QueryNode not healthy", func(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
node, err := genSimpleQueryNode(ctx)
|
||||
defer node.Stop()
|
||||
assert.NoError(t, err)
|
||||
|
||||
node.UpdateStateCode(internalpb.StateCode_Abnormal)
|
||||
|
||||
resp, err := node.GetDataDistribution(ctx, &querypb.GetDataDistributionRequest{})
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, resp.GetStatus().GetErrorCode())
|
||||
})
|
||||
|
||||
t.Run("Target not match", func(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
node, err := genSimpleQueryNode(ctx)
|
||||
defer node.Stop()
|
||||
assert.NoError(t, err)
|
||||
|
||||
resp, err := node.GetDataDistribution(ctx, &querypb.GetDataDistributionRequest{
|
||||
Base: &commonpb.MsgBase{TargetID: -1},
|
||||
})
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_NodeIDNotMatch, resp.GetStatus().GetErrorCode())
|
||||
})
|
||||
}
|
||||
|
||||
@ -43,7 +43,7 @@ func TestGetSystemInfoMetrics(t *testing.T) {
|
||||
node.session = sessionutil.NewSession(node.queryNodeLoopCtx, Params.EtcdCfg.MetaRootPath, etcdCli)
|
||||
|
||||
req := &milvuspb.GetMetricsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_WatchQueryChannels),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_WatchQueryChannels, node.session.ServerID),
|
||||
}
|
||||
resp, err := getSystemInfoMetrics(ctx, req, node)
|
||||
assert.NoError(t, err)
|
||||
@ -70,7 +70,7 @@ func TestGetComponentConfigurationsFailed(t *testing.T) {
|
||||
node.session = sessionutil.NewSession(node.queryNodeLoopCtx, Params.EtcdCfg.MetaRootPath, etcdCli)
|
||||
|
||||
req := &internalpb.ShowConfigurationsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_WatchQueryChannels),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_WatchQueryChannels, node.session.ServerID),
|
||||
Pattern: "Cache",
|
||||
}
|
||||
|
||||
|
||||
@ -986,7 +986,7 @@ func genSimpleInsertMsg(schema *schemapb.CollectionSchema, numRows int) (*msgstr
|
||||
return &msgstream.InsertMsg{
|
||||
BaseMsg: genMsgStreamBaseMsg(),
|
||||
InsertRequest: internalpb.InsertRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_Insert),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_Insert, 0),
|
||||
CollectionName: defaultCollectionName,
|
||||
PartitionName: defaultPartitionName,
|
||||
CollectionID: defaultCollectionID,
|
||||
@ -1182,10 +1182,11 @@ func genMsgStreamBaseMsg() msgstream.BaseMsg {
|
||||
}
|
||||
}
|
||||
|
||||
func genCommonMsgBase(msgType commonpb.MsgType) *commonpb.MsgBase {
|
||||
func genCommonMsgBase(msgType commonpb.MsgType, targetID int64) *commonpb.MsgBase {
|
||||
return &commonpb.MsgBase{
|
||||
MsgType: msgType,
|
||||
MsgID: rand.Int63(),
|
||||
MsgType: msgType,
|
||||
MsgID: rand.Int63(),
|
||||
TargetID: targetID,
|
||||
}
|
||||
}
|
||||
|
||||
@ -1193,7 +1194,7 @@ func genDeleteMsg(collectionID int64, pkType schemapb.DataType, numRows int) *ms
|
||||
return &msgstream.DeleteMsg{
|
||||
BaseMsg: genMsgStreamBaseMsg(),
|
||||
DeleteRequest: internalpb.DeleteRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_Delete),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_Delete, 0),
|
||||
CollectionName: defaultCollectionName,
|
||||
PartitionName: defaultPartitionName,
|
||||
CollectionID: collectionID,
|
||||
@ -1531,7 +1532,7 @@ func genSimpleRetrievePlan(collection *Collection) (*RetrievePlan, error) {
|
||||
|
||||
func genGetCollectionStatisticRequest() (*internalpb.GetStatisticsRequest, error) {
|
||||
return &internalpb.GetStatisticsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_GetCollectionStatistics),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_GetCollectionStatistics, 0),
|
||||
DbID: 0,
|
||||
CollectionID: defaultCollectionID,
|
||||
}, nil
|
||||
@ -1539,7 +1540,7 @@ func genGetCollectionStatisticRequest() (*internalpb.GetStatisticsRequest, error
|
||||
|
||||
func genGetPartitionStatisticRequest() (*internalpb.GetStatisticsRequest, error) {
|
||||
return &internalpb.GetStatisticsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_GetPartitionStatistics),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_GetPartitionStatistics, 0),
|
||||
DbID: 0,
|
||||
CollectionID: defaultCollectionID,
|
||||
PartitionIDs: []UniqueID{defaultPartitionID},
|
||||
@ -1556,7 +1557,7 @@ func genSearchRequest(nq int64, indexType string, schema *schemapb.CollectionSch
|
||||
return nil, err2
|
||||
}
|
||||
return &internalpb.SearchRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_Search),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_Search, 0),
|
||||
CollectionID: defaultCollectionID,
|
||||
PartitionIDs: []UniqueID{defaultPartitionID},
|
||||
Dsl: simpleDSL,
|
||||
@ -1684,7 +1685,7 @@ func genSimpleChangeInfo() *querypb.SealedSegmentsChangeInfo {
|
||||
}
|
||||
|
||||
return &querypb.SealedSegmentsChangeInfo{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadBalanceSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadBalanceSegments, 0),
|
||||
Infos: []*querypb.SegmentChangeInfo{changeInfo},
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,6 +26,7 @@ import (
|
||||
"go.uber.org/atomic"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/milvus-io/milvus/api/commonpb"
|
||||
"github.com/milvus-io/milvus/internal/common"
|
||||
"github.com/milvus-io/milvus/internal/log"
|
||||
@ -696,6 +697,8 @@ func (sc *ShardCluster) LoadSegments(ctx context.Context, req *querypb.LoadSegme
|
||||
return fmt.Errorf("node not in cluster %d", req.GetDstNodeID())
|
||||
}
|
||||
|
||||
req = proto.Clone(req).(*querypb.LoadSegmentsRequest)
|
||||
req.Base.TargetID = req.GetDstNodeID()
|
||||
resp, err := node.client.LoadSegments(ctx, req)
|
||||
if err != nil {
|
||||
log.Warn("failed to dispatch load segment request", zap.Error(err))
|
||||
@ -800,6 +803,8 @@ func (sc *ShardCluster) ReleaseSegments(ctx context.Context, req *querypb.Releas
|
||||
return
|
||||
}
|
||||
|
||||
req = proto.Clone(req).(*querypb.ReleaseSegmentsRequest)
|
||||
req.Base.TargetID = req.GetNodeID()
|
||||
resp, rerr := node.client.ReleaseSegments(ctx, req)
|
||||
if err != nil {
|
||||
log.Warn("failed to dispatch release segment request", zap.Error(err))
|
||||
|
||||
@ -2492,6 +2492,7 @@ func (suite *ShardClusterSuite) TestReleaseSegments() {
|
||||
suite.SetupTest()
|
||||
|
||||
err := suite.sc.ReleaseSegments(context.Background(), &querypb.ReleaseSegmentsRequest{
|
||||
Base: &commonpb.MsgBase{},
|
||||
NodeID: test.nodeID,
|
||||
SegmentIDs: test.segmentIDs,
|
||||
Scope: test.scope,
|
||||
|
||||
@ -43,7 +43,7 @@ func TestTask_watchDmChannelsTask(t *testing.T) {
|
||||
|
||||
genWatchDMChannelsRequest := func() *querypb.WatchDmChannelsRequest {
|
||||
req := &querypb.WatchDmChannelsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_WatchDmChannels),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_WatchDmChannels, 0),
|
||||
CollectionID: defaultCollectionID,
|
||||
PartitionIDs: []UniqueID{defaultPartitionID},
|
||||
Schema: schema,
|
||||
@ -301,7 +301,7 @@ func TestTask_loadSegmentsTask(t *testing.T) {
|
||||
|
||||
genLoadEmptySegmentsRequest := func() *querypb.LoadSegmentsRequest {
|
||||
req := &querypb.LoadSegmentsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments, 0),
|
||||
CollectionID: defaultCollectionID,
|
||||
Schema: schema,
|
||||
}
|
||||
@ -345,7 +345,7 @@ func TestTask_loadSegmentsTask(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
req := &querypb.LoadSegmentsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments, node.session.ServerID),
|
||||
Schema: schema,
|
||||
Infos: []*querypb.SegmentLoadInfo{
|
||||
{
|
||||
@ -379,7 +379,7 @@ func TestTask_loadSegmentsTask(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
req := &querypb.LoadSegmentsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments, node.session.ServerID),
|
||||
Schema: schema,
|
||||
Infos: []*querypb.SegmentLoadInfo{
|
||||
{
|
||||
@ -484,7 +484,7 @@ func TestTask_loadSegmentsTask(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
req := &querypb.LoadSegmentsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments, node.session.ServerID),
|
||||
Schema: schema,
|
||||
Infos: []*querypb.SegmentLoadInfo{
|
||||
{
|
||||
@ -584,7 +584,7 @@ func TestTask_loadSegmentsTaskLoadDelta(t *testing.T) {
|
||||
CollectionID: defaultCollectionID,
|
||||
}
|
||||
loadReq := &querypb.LoadSegmentsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments, node.session.ServerID),
|
||||
Schema: schema,
|
||||
Infos: []*querypb.SegmentLoadInfo{segmentLoadInfo},
|
||||
DeltaPositions: []*internalpb.MsgPosition{
|
||||
@ -614,7 +614,7 @@ func TestTask_loadSegmentsTaskLoadDelta(t *testing.T) {
|
||||
|
||||
// load second segments with same channel
|
||||
loadReq = &querypb.LoadSegmentsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments, node.session.ServerID),
|
||||
Schema: schema,
|
||||
Infos: []*querypb.SegmentLoadInfo{
|
||||
{
|
||||
@ -662,7 +662,7 @@ func TestTask_releaseCollectionTask(t *testing.T) {
|
||||
|
||||
genReleaseCollectionRequest := func() *querypb.ReleaseCollectionRequest {
|
||||
req := &querypb.ReleaseCollectionRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_ReleaseCollection, 0),
|
||||
CollectionID: defaultCollectionID,
|
||||
}
|
||||
return req
|
||||
@ -749,7 +749,7 @@ func TestTask_releasePartitionTask(t *testing.T) {
|
||||
|
||||
genReleasePartitionsRequest := func() *querypb.ReleasePartitionsRequest {
|
||||
req := &querypb.ReleasePartitionsRequest{
|
||||
Base: genCommonMsgBase(commonpb.MsgType_LoadSegments),
|
||||
Base: genCommonMsgBase(commonpb.MsgType_ReleasePartitions, 0),
|
||||
CollectionID: defaultCollectionID,
|
||||
PartitionIDs: []UniqueID{defaultPartitionID},
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user