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:
congqixia 2022-10-08 20:26:57 +08:00 committed by GitHub
parent 7e620a7ad1
commit 8c1c8000ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 718 additions and 364 deletions

View File

@ -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,
}

View File

@ -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
}

View File

@ -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_);
}

View File

@ -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

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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,

View File

@ -279,6 +279,7 @@ func (node *QueryNode) getStatisticsWithDmlChannel(ctx context.Context, req *que
// WatchDmChannels create consumers on dmChannels to receive Incremental datawhich 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 {

View File

@ -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())
})
}

View File

@ -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",
}

View File

@ -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},
}
}

View File

@ -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))

View File

@ -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,

View File

@ -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},
}