support try-best query reducer methods(#24075) (#24103)

Signed-off-by: MrPresent-Han <chun.han@zilliz.com>
pull/24151/head
MrPresent-Han 2023-05-17 16:23:23 +08:00 committed by GitHub
parent 2935e9f767
commit b74770b636
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 265 additions and 143 deletions

View File

@ -133,6 +133,7 @@ message RetrieveRequest {
int64 limit = 11; // Optional
bool ignoreGrowing = 12;
bool is_count = 13;
int64 iteration_extension_reduce_rate = 14;
}
message RetrieveResults {

View File

@ -1026,22 +1026,23 @@ func (m *SearchResults) GetSlicedOffset() int64 {
}
type RetrieveRequest struct {
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
ReqID int64 `protobuf:"varint,2,opt,name=reqID,proto3" json:"reqID,omitempty"`
DbID int64 `protobuf:"varint,3,opt,name=dbID,proto3" json:"dbID,omitempty"`
CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
PartitionIDs []int64 `protobuf:"varint,5,rep,packed,name=partitionIDs,proto3" json:"partitionIDs,omitempty"`
SerializedExprPlan []byte `protobuf:"bytes,6,opt,name=serialized_expr_plan,json=serializedExprPlan,proto3" json:"serialized_expr_plan,omitempty"`
OutputFieldsId []int64 `protobuf:"varint,7,rep,packed,name=output_fields_id,json=outputFieldsId,proto3" json:"output_fields_id,omitempty"`
TravelTimestamp uint64 `protobuf:"varint,8,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"`
GuaranteeTimestamp uint64 `protobuf:"varint,9,opt,name=guarantee_timestamp,json=guaranteeTimestamp,proto3" json:"guarantee_timestamp,omitempty"`
TimeoutTimestamp uint64 `protobuf:"varint,10,opt,name=timeout_timestamp,json=timeoutTimestamp,proto3" json:"timeout_timestamp,omitempty"`
Limit int64 `protobuf:"varint,11,opt,name=limit,proto3" json:"limit,omitempty"`
IgnoreGrowing bool `protobuf:"varint,12,opt,name=ignoreGrowing,proto3" json:"ignoreGrowing,omitempty"`
IsCount bool `protobuf:"varint,13,opt,name=is_count,json=isCount,proto3" json:"is_count,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
ReqID int64 `protobuf:"varint,2,opt,name=reqID,proto3" json:"reqID,omitempty"`
DbID int64 `protobuf:"varint,3,opt,name=dbID,proto3" json:"dbID,omitempty"`
CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
PartitionIDs []int64 `protobuf:"varint,5,rep,packed,name=partitionIDs,proto3" json:"partitionIDs,omitempty"`
SerializedExprPlan []byte `protobuf:"bytes,6,opt,name=serialized_expr_plan,json=serializedExprPlan,proto3" json:"serialized_expr_plan,omitempty"`
OutputFieldsId []int64 `protobuf:"varint,7,rep,packed,name=output_fields_id,json=outputFieldsId,proto3" json:"output_fields_id,omitempty"`
TravelTimestamp uint64 `protobuf:"varint,8,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"`
GuaranteeTimestamp uint64 `protobuf:"varint,9,opt,name=guarantee_timestamp,json=guaranteeTimestamp,proto3" json:"guarantee_timestamp,omitempty"`
TimeoutTimestamp uint64 `protobuf:"varint,10,opt,name=timeout_timestamp,json=timeoutTimestamp,proto3" json:"timeout_timestamp,omitempty"`
Limit int64 `protobuf:"varint,11,opt,name=limit,proto3" json:"limit,omitempty"`
IgnoreGrowing bool `protobuf:"varint,12,opt,name=ignoreGrowing,proto3" json:"ignoreGrowing,omitempty"`
IsCount bool `protobuf:"varint,13,opt,name=is_count,json=isCount,proto3" json:"is_count,omitempty"`
IterationExtensionReduceRate int64 `protobuf:"varint,14,opt,name=iteration_extension_reduce_rate,json=iterationExtensionReduceRate,proto3" json:"iteration_extension_reduce_rate,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RetrieveRequest) Reset() { *m = RetrieveRequest{} }
@ -1160,6 +1161,13 @@ func (m *RetrieveRequest) GetIsCount() bool {
return false
}
func (m *RetrieveRequest) GetIterationExtensionReduceRate() int64 {
if m != nil {
return m.IterationExtensionReduceRate
}
return 0
}
type RetrieveResults struct {
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
Status *commonpb.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
@ -1906,118 +1914,120 @@ func init() {
func init() { proto.RegisterFile("internal.proto", fileDescriptor_41f4a519b878ee3b) }
var fileDescriptor_41f4a519b878ee3b = []byte{
// 1804 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcf, 0x6f, 0x1c, 0x49,
0xf5, 0xff, 0xf6, 0xf4, 0xfc, 0x7c, 0x33, 0xb6, 0xdb, 0x15, 0x27, 0xdf, 0x8e, 0xb3, 0xbb, 0xf1,
0x36, 0x48, 0x98, 0x45, 0x1b, 0x2f, 0x5e, 0xed, 0x86, 0x03, 0x02, 0xc5, 0xee, 0xac, 0x35, 0xda,
0x71, 0x70, 0x7a, 0xa2, 0x95, 0xe0, 0xd2, 0xaa, 0x99, 0x2e, 0x8f, 0x8b, 0x74, 0x77, 0xb5, 0xab,
0xaa, 0x63, 0x3b, 0x67, 0x6e, 0x48, 0xdc, 0xb8, 0x20, 0xc1, 0x19, 0x21, 0x71, 0xe6, 0xc8, 0xdf,
0xc4, 0x75, 0xc5, 0x01, 0xd5, 0x8f, 0x9e, 0x1f, 0xf6, 0xc4, 0xb2, 0x1d, 0x01, 0xcb, 0xad, 0xea,
0xf3, 0x5e, 0xbd, 0xaa, 0x7a, 0x3f, 0x3e, 0xfd, 0xaa, 0x61, 0x95, 0xe6, 0x92, 0xf0, 0x1c, 0xa7,
0x4f, 0x0a, 0xce, 0x24, 0x43, 0xf7, 0x33, 0x9a, 0xbe, 0x29, 0x85, 0x99, 0x3d, 0xa9, 0x84, 0x9b,
0xbd, 0x31, 0xcb, 0x32, 0x96, 0x1b, 0x78, 0xb3, 0x27, 0xc6, 0x27, 0x24, 0xc3, 0x66, 0x16, 0x3c,
0x82, 0x87, 0x07, 0x44, 0xbe, 0xa2, 0x19, 0x79, 0x45, 0xc7, 0xaf, 0xf7, 0x4f, 0x70, 0x9e, 0x93,
0x34, 0x22, 0xa7, 0x25, 0x11, 0x32, 0xf8, 0x10, 0x1e, 0x1d, 0x10, 0x39, 0x94, 0x58, 0x52, 0x21,
0xe9, 0x58, 0x5c, 0x12, 0xdf, 0x87, 0x7b, 0x07, 0x44, 0x86, 0xc9, 0x25, 0xf8, 0x1b, 0x68, 0xbf,
0x60, 0x09, 0xe9, 0xe7, 0xc7, 0x0c, 0x7d, 0x09, 0x2d, 0x9c, 0x24, 0x9c, 0x08, 0xe1, 0x3b, 0x5b,
0xce, 0x76, 0x77, 0xf7, 0x83, 0x27, 0x0b, 0x67, 0xb4, 0x27, 0x7b, 0x66, 0x74, 0xa2, 0x4a, 0x19,
0x21, 0xa8, 0x73, 0x96, 0x12, 0xbf, 0xb6, 0xe5, 0x6c, 0x77, 0x22, 0x3d, 0x0e, 0x7e, 0x0d, 0xd0,
0xcf, 0xa9, 0x3c, 0xc2, 0x1c, 0x67, 0x02, 0x3d, 0x80, 0x66, 0xae, 0x76, 0x09, 0xb5, 0x61, 0x37,
0xb2, 0x33, 0x14, 0x42, 0x4f, 0x48, 0xcc, 0x65, 0x5c, 0x68, 0x3d, 0xbf, 0xb6, 0xe5, 0x6e, 0x77,
0x77, 0x3f, 0x5e, 0xba, 0xed, 0xd7, 0xe4, 0xe2, 0x1b, 0x9c, 0x96, 0xe4, 0x08, 0x53, 0x1e, 0x75,
0xf5, 0x32, 0x63, 0x3d, 0xf8, 0x25, 0xc0, 0x50, 0x72, 0x9a, 0x4f, 0x06, 0x54, 0x48, 0xb5, 0xd7,
0x1b, 0xa5, 0xa7, 0x2e, 0xe1, 0x6e, 0x77, 0x22, 0x3b, 0x43, 0x9f, 0x43, 0x53, 0x48, 0x2c, 0x4b,
0xa1, 0xcf, 0xd9, 0xdd, 0x7d, 0xb4, 0x74, 0x97, 0xa1, 0x56, 0x89, 0xac, 0x6a, 0xf0, 0xd7, 0x1a,
0x6c, 0x2c, 0x78, 0xd5, 0xfa, 0x0d, 0x7d, 0x06, 0xf5, 0x11, 0x16, 0xe4, 0x5a, 0x47, 0x1d, 0x8a,
0xc9, 0x1e, 0x16, 0x24, 0xd2, 0x9a, 0xca, 0x4b, 0xc9, 0xa8, 0x1f, 0xea, 0xdd, 0xdd, 0x48, 0x8f,
0x51, 0x00, 0xbd, 0x31, 0x4b, 0x53, 0x32, 0x96, 0x94, 0xe5, 0xfd, 0xd0, 0x77, 0xb5, 0x6c, 0x01,
0x53, 0x3a, 0x05, 0xe6, 0x92, 0x9a, 0xa9, 0xf0, 0xeb, 0x5b, 0xae, 0xd2, 0x99, 0xc7, 0xd0, 0x0f,
0xc1, 0x93, 0x1c, 0xbf, 0x21, 0x69, 0x2c, 0x69, 0x46, 0x84, 0xc4, 0x59, 0xe1, 0x37, 0xb6, 0x9c,
0xed, 0x7a, 0xb4, 0x66, 0xf0, 0x57, 0x15, 0x8c, 0x76, 0xe0, 0xde, 0xa4, 0xc4, 0x1c, 0xe7, 0x92,
0x90, 0x39, 0xed, 0xa6, 0xd6, 0x46, 0x53, 0xd1, 0x6c, 0xc1, 0x8f, 0x60, 0x5d, 0xa9, 0xb1, 0x52,
0xce, 0xa9, 0xb7, 0xb4, 0xba, 0x67, 0x05, 0x53, 0xe5, 0xe0, 0x6f, 0x0e, 0xdc, 0xbf, 0xe4, 0x2f,
0x51, 0xb0, 0x5c, 0x90, 0x3b, 0x38, 0xec, 0x2e, 0x01, 0x43, 0x4f, 0xa1, 0xa1, 0x46, 0xc2, 0x77,
0x6f, 0x9a, 0x4a, 0x46, 0x3f, 0xf8, 0x93, 0x03, 0x68, 0x9f, 0x13, 0x2c, 0xc9, 0xb3, 0x94, 0xe2,
0xf7, 0x88, 0xf3, 0xff, 0x43, 0x2b, 0x19, 0xc5, 0x39, 0xce, 0xaa, 0x82, 0x68, 0x26, 0xa3, 0x17,
0x38, 0x23, 0xe8, 0x07, 0xb0, 0x36, 0x0b, 0xac, 0x51, 0x70, 0xb5, 0xc2, 0xea, 0x0c, 0xd6, 0x8a,
0x1b, 0xd0, 0xc0, 0xea, 0x0c, 0x7e, 0x5d, 0x8b, 0xcd, 0x24, 0x10, 0xe0, 0x85, 0x9c, 0x15, 0xff,
0xae, 0xd3, 0x4d, 0x37, 0x75, 0xe7, 0x37, 0xfd, 0xa3, 0x03, 0xeb, 0xcf, 0x52, 0x49, 0xf8, 0x77,
0xd4, 0x29, 0x7f, 0xaf, 0x55, 0x51, 0xeb, 0xe7, 0x09, 0x39, 0xff, 0x6f, 0x1e, 0xf0, 0x43, 0x80,
0x63, 0x4a, 0xd2, 0xc4, 0xe8, 0x98, 0x53, 0x76, 0x34, 0xa2, 0xc5, 0x55, 0xf9, 0x37, 0xae, 0x29,
0xff, 0xe6, 0x92, 0xf2, 0xf7, 0xa1, 0xa5, 0x8d, 0xf4, 0x43, 0x5d, 0x74, 0x6e, 0x54, 0x4d, 0x15,
0x79, 0x92, 0x73, 0xc9, 0x71, 0x45, 0x9e, 0xed, 0x1b, 0x93, 0xa7, 0x5e, 0x66, 0xc9, 0xf3, 0xdb,
0x3a, 0xac, 0x0c, 0x09, 0xe6, 0xe3, 0x93, 0xbb, 0x3b, 0x6f, 0x03, 0x1a, 0x9c, 0x9c, 0x4e, 0xb9,
0xcd, 0x4c, 0xa6, 0x37, 0x76, 0xaf, 0xb9, 0x71, 0xfd, 0x06, 0x84, 0xd7, 0x58, 0x42, 0x78, 0x1e,
0xb8, 0x89, 0x48, 0xb5, 0xc3, 0x3a, 0x91, 0x1a, 0x2a, 0x9a, 0x2a, 0x52, 0x3c, 0x26, 0x27, 0x2c,
0x4d, 0x08, 0x8f, 0x27, 0x9c, 0x95, 0x86, 0xa6, 0x7a, 0x91, 0x37, 0x27, 0x38, 0x50, 0x38, 0x7a,
0x0a, 0xed, 0x44, 0xa4, 0xb1, 0xbc, 0x28, 0x88, 0xdf, 0xde, 0x72, 0xb6, 0x57, 0xdf, 0x71, 0xcd,
0x50, 0xa4, 0xaf, 0x2e, 0x0a, 0x12, 0xb5, 0x12, 0x33, 0x40, 0x9f, 0xc1, 0x86, 0x20, 0x9c, 0xe2,
0x94, 0xbe, 0x25, 0x49, 0x4c, 0xce, 0x0b, 0x1e, 0x17, 0x29, 0xce, 0xfd, 0x8e, 0xde, 0x08, 0xcd,
0x64, 0xcf, 0xcf, 0x0b, 0x7e, 0x94, 0xe2, 0x1c, 0x6d, 0x83, 0xc7, 0x4a, 0x59, 0x94, 0x32, 0xd6,
0x71, 0x13, 0x31, 0x4d, 0x7c, 0xd0, 0x37, 0x5a, 0x35, 0xf8, 0x57, 0x1a, 0xee, 0x27, 0x4b, 0x49,
0xbc, 0x7b, 0x2b, 0x12, 0xef, 0xdd, 0x8e, 0xc4, 0x57, 0x96, 0x93, 0x38, 0x5a, 0x85, 0x5a, 0x7e,
0xea, 0xaf, 0xea, 0xd0, 0xd4, 0xf2, 0x53, 0x15, 0x48, 0xc9, 0x8a, 0xd7, 0xfe, 0x9a, 0x09, 0xa4,
0x1a, 0xa3, 0x8f, 0x00, 0x32, 0x22, 0x39, 0x1d, 0x2b, 0xb7, 0xf8, 0x9e, 0x8e, 0xc3, 0x1c, 0x82,
0xbe, 0x0f, 0x2b, 0x74, 0x92, 0x33, 0x4e, 0x0e, 0x38, 0x3b, 0xa3, 0xf9, 0xc4, 0x5f, 0xdf, 0x72,
0xb6, 0xdb, 0xd1, 0x22, 0x18, 0xfc, 0xd3, 0x9d, 0x25, 0x9f, 0x28, 0x53, 0x29, 0xfe, 0x53, 0x9f,
0x89, 0x69, 0xc6, 0xba, 0xf3, 0x19, 0xfb, 0x18, 0xba, 0xe6, 0x0a, 0x26, 0x33, 0xea, 0x57, 0x6e,
0xf5, 0x18, 0xba, 0x79, 0x99, 0xc5, 0xa7, 0x25, 0xe1, 0x94, 0x08, 0x5b, 0xcb, 0x90, 0x97, 0xd9,
0x4b, 0x83, 0xa0, 0x7b, 0xd0, 0x90, 0xac, 0x88, 0x5f, 0xdb, 0x52, 0x56, 0xbe, 0xfa, 0x1a, 0xfd,
0x14, 0x36, 0x05, 0xc1, 0x29, 0x49, 0x62, 0x41, 0x26, 0x19, 0xc9, 0x65, 0x3f, 0x14, 0xb1, 0xd0,
0xd7, 0x26, 0x89, 0xdf, 0xd2, 0xc9, 0xe0, 0x1b, 0x8d, 0xe1, 0x54, 0x61, 0x68, 0xe5, 0x2a, 0xd6,
0x63, 0xd3, 0xb3, 0x2d, 0x2c, 0x6b, 0xeb, 0xe6, 0x06, 0xcd, 0x44, 0xd3, 0x05, 0x3f, 0x01, 0x7f,
0x92, 0xb2, 0x11, 0x4e, 0xe3, 0x2b, 0xbb, 0xfa, 0x1d, 0xbd, 0xd9, 0x03, 0x23, 0x1f, 0x5e, 0xda,
0x52, 0x5d, 0x4f, 0xa4, 0x74, 0x4c, 0x92, 0x78, 0x94, 0xb2, 0x91, 0x0f, 0x3a, 0xa9, 0xc1, 0x40,
0x7b, 0x29, 0x1b, 0xa9, 0x64, 0xb6, 0x0a, 0xca, 0x0d, 0x63, 0x56, 0xe6, 0x52, 0xa7, 0xa8, 0x1b,
0xad, 0x1a, 0xfc, 0x45, 0x99, 0xed, 0x2b, 0x14, 0x7d, 0x0f, 0x56, 0xac, 0x26, 0x3b, 0x3e, 0x16,
0x44, 0xea, 0xdc, 0x74, 0xa3, 0x9e, 0x01, 0x7f, 0xa1, 0xb1, 0xe0, 0x1f, 0x2e, 0xac, 0x45, 0xca,
0xbb, 0xe4, 0x0d, 0xf9, 0x5f, 0x62, 0x9f, 0x77, 0xb1, 0x40, 0xf3, 0x56, 0x2c, 0xd0, 0xba, 0x31,
0x0b, 0xb4, 0x6f, 0xc5, 0x02, 0x9d, 0xdb, 0xb1, 0x00, 0xbc, 0x83, 0x05, 0x36, 0xa0, 0x91, 0xd2,
0x8c, 0x56, 0x01, 0x36, 0x93, 0xab, 0x75, 0xdd, 0x5b, 0x52, 0xd7, 0xe8, 0x21, 0xb4, 0xa9, 0xb0,
0xf9, 0xb1, 0xa2, 0x15, 0x5a, 0x54, 0xe8, 0xc4, 0x08, 0xfe, 0xbc, 0x10, 0xf3, 0xef, 0x40, 0xd1,
0x7f, 0x02, 0x2e, 0x4d, 0x4c, 0x5b, 0xd1, 0xdd, 0xf5, 0x17, 0xed, 0xd8, 0xd7, 0x57, 0x3f, 0x14,
0x91, 0x52, 0x42, 0x3f, 0x87, 0xae, 0x8d, 0x5f, 0x82, 0x25, 0xd6, 0xb9, 0xd1, 0xdd, 0xfd, 0x68,
0xe9, 0x1a, 0x1d, 0xd0, 0x10, 0x4b, 0x1c, 0x99, 0xb6, 0x40, 0xa8, 0x31, 0xfa, 0x19, 0x3c, 0xba,
0x4a, 0x05, 0xdc, 0xba, 0x23, 0xf1, 0x9b, 0x3a, 0x25, 0x1e, 0x5e, 0xe6, 0x82, 0xca, 0x5f, 0x09,
0xfa, 0x31, 0x6c, 0xcc, 0x91, 0xc1, 0x6c, 0x61, 0x4b, 0xb3, 0xc1, 0x1c, 0x51, 0xcc, 0x96, 0x5c,
0x47, 0x07, 0xed, 0xeb, 0xe8, 0x20, 0xf8, 0xd6, 0x81, 0xce, 0x80, 0xe1, 0x44, 0xb7, 0x56, 0x77,
0x08, 0xd2, 0x07, 0xd0, 0x99, 0xee, 0x65, 0x8b, 0x73, 0x06, 0x28, 0xe9, 0xb4, 0x3b, 0xb2, 0x2d,
0xd5, 0x5c, 0xbb, 0x34, 0xd7, 0xf6, 0xd4, 0x17, 0xdb, 0x9e, 0xc7, 0xd0, 0xa5, 0xea, 0x40, 0x71,
0x81, 0xe5, 0x89, 0xa9, 0xcf, 0x4e, 0x04, 0x1a, 0x3a, 0x52, 0x88, 0xea, 0x8b, 0x2a, 0x05, 0xdd,
0x17, 0x35, 0x6f, 0xdc, 0x17, 0x59, 0x23, 0xba, 0x2f, 0xfa, 0x8d, 0xa3, 0x5e, 0xb0, 0x09, 0x39,
0x57, 0x49, 0x74, 0xd5, 0xa8, 0x73, 0x17, 0xa3, 0x8a, 0x38, 0x14, 0x71, 0x72, 0x92, 0x62, 0x39,
0x8b, 0x84, 0xb0, 0xce, 0x41, 0x79, 0x99, 0x45, 0x46, 0x64, 0xa3, 0x20, 0x82, 0xdf, 0x39, 0x00,
0x3a, 0x95, 0xcc, 0x31, 0x2e, 0x33, 0x98, 0x73, 0x7d, 0xc7, 0x58, 0x5b, 0x74, 0xdd, 0x5e, 0xe5,
0xba, 0x6b, 0x9e, 0x48, 0xd3, 0xbf, 0x14, 0xb3, 0xcb, 0x5b, 0xef, 0xea, 0x71, 0xf0, 0x7b, 0x07,
0x7a, 0xf6, 0x74, 0xe6, 0x48, 0x0b, 0x51, 0x76, 0x2e, 0x47, 0x59, 0x7f, 0x52, 0x33, 0xc6, 0x2f,
0x62, 0x41, 0xdf, 0x12, 0x7b, 0x20, 0x30, 0xd0, 0x90, 0xbe, 0x25, 0x8a, 0x2a, 0xb4, 0x4b, 0xd8,
0x99, 0xb0, 0x75, 0xd9, 0x52, 0x6e, 0x60, 0x67, 0x42, 0xd1, 0x15, 0x27, 0x63, 0x92, 0xcb, 0xf4,
0x22, 0xce, 0x58, 0x42, 0x8f, 0x29, 0x49, 0x74, 0x36, 0xb4, 0x23, 0xaf, 0x12, 0x1c, 0x5a, 0x5c,
0xbd, 0x3c, 0x91, 0xfd, 0xb7, 0x51, 0xfd, 0x20, 0x39, 0x14, 0x93, 0x3b, 0x64, 0xad, 0x72, 0xb1,
0xb1, 0xa3, 0x12, 0xd1, 0xfc, 0x93, 0xe8, 0x44, 0x0b, 0x98, 0xea, 0x7e, 0xa6, 0x04, 0x6a, 0xfc,
0x58, 0x8f, 0xe6, 0x10, 0x75, 0xf2, 0x84, 0x1c, 0xe3, 0x32, 0x9d, 0x27, 0xda, 0xba, 0x21, 0x5a,
0x2b, 0x58, 0x78, 0x33, 0xaf, 0xee, 0x73, 0x92, 0x90, 0x5c, 0x52, 0x9c, 0xea, 0x3f, 0x31, 0x9b,
0xd0, 0x2e, 0x85, 0x0a, 0x43, 0x66, 0x4e, 0xde, 0x89, 0xa6, 0x73, 0xf4, 0x29, 0x20, 0x92, 0x8f,
0xf9, 0x45, 0xa1, 0x32, 0xa8, 0xc0, 0x42, 0x9c, 0x31, 0x9e, 0xd8, 0x47, 0xcb, 0xfa, 0x54, 0x72,
0x64, 0x05, 0xe8, 0x01, 0x34, 0x25, 0xc9, 0x71, 0x2e, 0x6d, 0x8d, 0xd9, 0x99, 0xa5, 0x68, 0x51,
0x16, 0x84, 0x5b, 0x9f, 0xb6, 0xa8, 0x18, 0xaa, 0xa9, 0x7a, 0xf2, 0x88, 0x13, 0xbc, 0xfb, 0xc5,
0x97, 0x33, 0xf3, 0x0d, 0xf3, 0xe4, 0x31, 0x70, 0x65, 0x3b, 0x78, 0x0e, 0xeb, 0x03, 0x2a, 0xe4,
0x11, 0x4b, 0xe9, 0xf8, 0xe2, 0xce, 0x1f, 0xf0, 0xe0, 0xb7, 0x0e, 0xa0, 0x79, 0x3b, 0xf6, 0x8f,
0xc1, 0x8c, 0xe3, 0x9d, 0x9b, 0x73, 0xfc, 0xc7, 0xd0, 0x2b, 0xb4, 0x99, 0x98, 0xe6, 0xc7, 0xac,
0x8a, 0x5e, 0xd7, 0x60, 0xca, 0xb7, 0x42, 0x3d, 0xd4, 0x94, 0x33, 0x63, 0xce, 0x52, 0x62, 0x82,
0xd7, 0x89, 0x3a, 0x0a, 0x89, 0x14, 0x10, 0x4c, 0xe0, 0xe1, 0xf0, 0x84, 0x9d, 0xed, 0xb3, 0xfc,
0x98, 0x4e, 0x4a, 0x8e, 0x55, 0x55, 0xbd, 0xc7, 0xcb, 0xd7, 0x87, 0x56, 0x81, 0xa5, 0xaa, 0x29,
0x1b, 0xa3, 0x6a, 0x1a, 0xfc, 0xc1, 0x81, 0xcd, 0x65, 0x3b, 0xbd, 0xcf, 0xf5, 0x0f, 0x60, 0x65,
0x6c, 0xcc, 0x19, 0x6b, 0x37, 0xff, 0xa3, 0xb6, 0xb8, 0x2e, 0x78, 0x0e, 0xf5, 0x08, 0x4b, 0x82,
0x76, 0xa0, 0xc6, 0xa5, 0x3e, 0xc1, 0xea, 0xee, 0xe3, 0x77, 0x30, 0x85, 0x52, 0xd4, 0xcf, 0xa4,
0x1a, 0x97, 0xa8, 0x07, 0x0e, 0xd7, 0x37, 0x75, 0x22, 0x87, 0x7f, 0xf2, 0x17, 0x07, 0xda, 0x95,
0x18, 0xad, 0xc3, 0x4a, 0x18, 0x0e, 0xf6, 0xa7, 0x5c, 0xe5, 0xfd, 0x1f, 0xf2, 0xa0, 0x17, 0x86,
0x83, 0xa3, 0xaa, 0xb9, 0xf2, 0x1c, 0xd4, 0x83, 0x76, 0x18, 0x0e, 0x34, 0xf9, 0x78, 0x35, 0x3b,
0xfb, 0x2a, 0x2d, 0xc5, 0x89, 0xe7, 0x4e, 0x0d, 0x64, 0x05, 0x36, 0x06, 0xea, 0x68, 0x05, 0x3a,
0xe1, 0xe1, 0xa0, 0x9f, 0x0b, 0xc2, 0xa5, 0xd7, 0xb0, 0xd3, 0x90, 0xa4, 0x44, 0x12, 0xaf, 0x89,
0xd6, 0xa0, 0x1b, 0x1e, 0x0e, 0xf6, 0xca, 0xf4, 0xb5, 0xfa, 0x8e, 0x79, 0x2d, 0x2d, 0x7f, 0x39,
0x30, 0xad, 0xb2, 0xd7, 0xd6, 0xe6, 0x5f, 0x0e, 0x54, 0xf3, 0x7e, 0xe1, 0x75, 0xf6, 0x9e, 0xfe,
0xea, 0x8b, 0x09, 0x95, 0x27, 0xe5, 0x48, 0x39, 0x68, 0xc7, 0xdc, 0xf5, 0x53, 0xca, 0xec, 0x68,
0xa7, 0xba, 0xef, 0x8e, 0xbe, 0xfe, 0x74, 0x5a, 0x8c, 0x46, 0x4d, 0x8d, 0x7c, 0xfe, 0xaf, 0x00,
0x00, 0x00, 0xff, 0xff, 0x82, 0xcb, 0xf7, 0x4a, 0xe3, 0x15, 0x00, 0x00,
// 1835 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x6f, 0x1c, 0x49,
0x15, 0xa7, 0xe7, 0x7b, 0xde, 0x8c, 0x9d, 0x71, 0xc5, 0x09, 0x1d, 0x27, 0xbb, 0xf6, 0x36, 0x48,
0x98, 0x45, 0x1b, 0x2f, 0x5e, 0xed, 0x86, 0x03, 0x02, 0xc5, 0x6e, 0xaf, 0x35, 0xda, 0x71, 0x70,
0x7a, 0xa2, 0x95, 0xe0, 0xd2, 0xaa, 0x99, 0x7e, 0x1e, 0x17, 0xe9, 0x2f, 0x57, 0x55, 0xc7, 0x76,
0xce, 0xdc, 0x90, 0xb8, 0x71, 0x41, 0x82, 0x33, 0x42, 0xe2, 0x0c, 0x37, 0xfe, 0xaf, 0x15, 0x07,
0x54, 0x1f, 0x3d, 0x1f, 0xb6, 0x63, 0xd9, 0x8e, 0x80, 0xdd, 0x5b, 0xbd, 0xf7, 0x7e, 0xf5, 0xaa,
0xea, 0xbd, 0x57, 0xbf, 0x7e, 0xd5, 0xb0, 0xcc, 0x52, 0x89, 0x3c, 0xa5, 0xf1, 0xd3, 0x9c, 0x67,
0x32, 0x23, 0x0f, 0x12, 0x16, 0xbf, 0x29, 0x84, 0x91, 0x9e, 0x96, 0xc6, 0xb5, 0xee, 0x38, 0x4b,
0x92, 0x2c, 0x35, 0xea, 0xb5, 0xae, 0x18, 0x1f, 0x63, 0x42, 0x8d, 0xe4, 0x3d, 0x86, 0x47, 0xfb,
0x28, 0x5f, 0xb1, 0x04, 0x5f, 0xb1, 0xf1, 0xeb, 0xdd, 0x63, 0x9a, 0xa6, 0x18, 0x07, 0x78, 0x52,
0xa0, 0x90, 0xde, 0x07, 0xf0, 0x78, 0x1f, 0xe5, 0x50, 0x52, 0xc9, 0x84, 0x64, 0x63, 0x71, 0xc1,
0xfc, 0x00, 0xee, 0xef, 0xa3, 0xf4, 0xa3, 0x0b, 0xea, 0xaf, 0xa1, 0xf5, 0x22, 0x8b, 0xb0, 0x9f,
0x1e, 0x65, 0xe4, 0x0b, 0x68, 0xd2, 0x28, 0xe2, 0x28, 0x84, 0xeb, 0x6c, 0x38, 0x9b, 0x9d, 0xed,
0x27, 0x4f, 0x17, 0xf6, 0x68, 0x77, 0xf6, 0xdc, 0x60, 0x82, 0x12, 0x4c, 0x08, 0xd4, 0x78, 0x16,
0xa3, 0x5b, 0xd9, 0x70, 0x36, 0xdb, 0x81, 0x1e, 0x7b, 0xbf, 0x05, 0xe8, 0xa7, 0x4c, 0x1e, 0x52,
0x4e, 0x13, 0x41, 0x1e, 0x42, 0x23, 0x55, 0xab, 0xf8, 0xda, 0x71, 0x35, 0xb0, 0x12, 0xf1, 0xa1,
0x2b, 0x24, 0xe5, 0x32, 0xcc, 0x35, 0xce, 0xad, 0x6c, 0x54, 0x37, 0x3b, 0xdb, 0x1f, 0x5d, 0xb9,
0xec, 0x57, 0x78, 0xfe, 0x35, 0x8d, 0x0b, 0x3c, 0xa4, 0x8c, 0x07, 0x1d, 0x3d, 0xcd, 0x78, 0xf7,
0x7e, 0x0d, 0x30, 0x94, 0x9c, 0xa5, 0x93, 0x01, 0x13, 0x52, 0xad, 0xf5, 0x46, 0xe1, 0xd4, 0x21,
0xaa, 0x9b, 0xed, 0xc0, 0x4a, 0xe4, 0x33, 0x68, 0x08, 0x49, 0x65, 0x21, 0xf4, 0x3e, 0x3b, 0xdb,
0x8f, 0xaf, 0x5c, 0x65, 0xa8, 0x21, 0x81, 0x85, 0x7a, 0x7f, 0xaf, 0xc0, 0xea, 0x42, 0x54, 0x6d,
0xdc, 0xc8, 0xa7, 0x50, 0x1b, 0x51, 0x81, 0xd7, 0x06, 0xea, 0x40, 0x4c, 0x76, 0xa8, 0xc0, 0x40,
0x23, 0x55, 0x94, 0xa2, 0x51, 0xdf, 0xd7, 0xab, 0x57, 0x03, 0x3d, 0x26, 0x1e, 0x74, 0xc7, 0x59,
0x1c, 0xe3, 0x58, 0xb2, 0x2c, 0xed, 0xfb, 0x6e, 0x55, 0xdb, 0x16, 0x74, 0x0a, 0x93, 0x53, 0x2e,
0x99, 0x11, 0x85, 0x5b, 0xdb, 0xa8, 0x2a, 0xcc, 0xbc, 0x8e, 0xfc, 0x18, 0x7a, 0x92, 0xd3, 0x37,
0x18, 0x87, 0x92, 0x25, 0x28, 0x24, 0x4d, 0x72, 0xb7, 0xbe, 0xe1, 0x6c, 0xd6, 0x82, 0x7b, 0x46,
0xff, 0xaa, 0x54, 0x93, 0x2d, 0xb8, 0x3f, 0x29, 0x28, 0xa7, 0xa9, 0x44, 0x9c, 0x43, 0x37, 0x34,
0x9a, 0x4c, 0x4d, 0xb3, 0x09, 0x3f, 0x81, 0x15, 0x05, 0xcb, 0x0a, 0x39, 0x07, 0x6f, 0x6a, 0x78,
0xcf, 0x1a, 0xa6, 0x60, 0xef, 0x1f, 0x0e, 0x3c, 0xb8, 0x10, 0x2f, 0x91, 0x67, 0xa9, 0xc0, 0x3b,
0x04, 0xec, 0x2e, 0x09, 0x23, 0xcf, 0xa0, 0xae, 0x46, 0xc2, 0xad, 0xde, 0xb4, 0x94, 0x0c, 0xde,
0xfb, 0x8b, 0x03, 0x64, 0x97, 0x23, 0x95, 0xf8, 0x3c, 0x66, 0xf4, 0x3d, 0xf2, 0xfc, 0x7d, 0x68,
0x46, 0xa3, 0x30, 0xa5, 0x49, 0x79, 0x21, 0x1a, 0xd1, 0xe8, 0x05, 0x4d, 0x90, 0xfc, 0x08, 0xee,
0xcd, 0x12, 0x6b, 0x00, 0x55, 0x0d, 0x58, 0x9e, 0xa9, 0x35, 0x70, 0x15, 0xea, 0x54, 0xed, 0xc1,
0xad, 0x69, 0xb3, 0x11, 0x3c, 0x01, 0x3d, 0x9f, 0x67, 0xf9, 0x7f, 0x6b, 0x77, 0xd3, 0x45, 0xab,
0xf3, 0x8b, 0xfe, 0xd9, 0x81, 0x95, 0xe7, 0xb1, 0x44, 0xfe, 0x2d, 0x0d, 0xca, 0xbf, 0x2a, 0x65,
0xd6, 0xfa, 0x69, 0x84, 0x67, 0xff, 0xcf, 0x0d, 0x7e, 0x00, 0x70, 0xc4, 0x30, 0x8e, 0x0c, 0xc6,
0xec, 0xb2, 0xad, 0x35, 0xda, 0x5c, 0x5e, 0xff, 0xfa, 0x35, 0xd7, 0xbf, 0x71, 0xc5, 0xf5, 0x77,
0xa1, 0xa9, 0x9d, 0xf4, 0x7d, 0x7d, 0xe9, 0xaa, 0x41, 0x29, 0x2a, 0xf2, 0xc4, 0x33, 0xc9, 0x69,
0x49, 0x9e, 0xad, 0x1b, 0x93, 0xa7, 0x9e, 0x66, 0xc9, 0xf3, 0x9b, 0x1a, 0x2c, 0x0d, 0x91, 0xf2,
0xf1, 0xf1, 0xdd, 0x83, 0xb7, 0x0a, 0x75, 0x8e, 0x27, 0x53, 0x6e, 0x33, 0xc2, 0xf4, 0xc4, 0xd5,
0x6b, 0x4e, 0x5c, 0xbb, 0x01, 0xe1, 0xd5, 0xaf, 0x20, 0xbc, 0x1e, 0x54, 0x23, 0x11, 0xeb, 0x80,
0xb5, 0x03, 0x35, 0x54, 0x34, 0x95, 0xc7, 0x74, 0x8c, 0xc7, 0x59, 0x1c, 0x21, 0x0f, 0x27, 0x3c,
0x2b, 0x0c, 0x4d, 0x75, 0x83, 0xde, 0x9c, 0x61, 0x5f, 0xe9, 0xc9, 0x33, 0x68, 0x45, 0x22, 0x0e,
0xe5, 0x79, 0x8e, 0x6e, 0x6b, 0xc3, 0xd9, 0x5c, 0x7e, 0xc7, 0x31, 0x7d, 0x11, 0xbf, 0x3a, 0xcf,
0x31, 0x68, 0x46, 0x66, 0x40, 0x3e, 0x85, 0x55, 0x81, 0x9c, 0xd1, 0x98, 0xbd, 0xc5, 0x28, 0xc4,
0xb3, 0x9c, 0x87, 0x79, 0x4c, 0x53, 0xb7, 0xad, 0x17, 0x22, 0x33, 0xdb, 0xde, 0x59, 0xce, 0x0f,
0x63, 0x9a, 0x92, 0x4d, 0xe8, 0x65, 0x85, 0xcc, 0x0b, 0x19, 0xea, 0xbc, 0x89, 0x90, 0x45, 0x2e,
0xe8, 0x13, 0x2d, 0x1b, 0xfd, 0x97, 0x5a, 0xdd, 0x8f, 0xae, 0x24, 0xf1, 0xce, 0xad, 0x48, 0xbc,
0x7b, 0x3b, 0x12, 0x5f, 0xba, 0x9a, 0xc4, 0xc9, 0x32, 0x54, 0xd2, 0x13, 0x77, 0x59, 0xa7, 0xa6,
0x92, 0x9e, 0xa8, 0x44, 0xca, 0x2c, 0x7f, 0xed, 0xde, 0x33, 0x89, 0x54, 0x63, 0xf2, 0x21, 0x40,
0x82, 0x92, 0xb3, 0xb1, 0x0a, 0x8b, 0xdb, 0xd3, 0x79, 0x98, 0xd3, 0x90, 0x1f, 0xc2, 0x12, 0x9b,
0xa4, 0x19, 0xc7, 0x7d, 0x9e, 0x9d, 0xb2, 0x74, 0xe2, 0xae, 0x6c, 0x38, 0x9b, 0xad, 0x60, 0x51,
0xe9, 0xfd, 0xbb, 0x3a, 0x2b, 0x3e, 0x51, 0xc4, 0x52, 0xfc, 0xaf, 0x3e, 0x13, 0xd3, 0x8a, 0xad,
0xce, 0x57, 0xec, 0x3a, 0x74, 0xcc, 0x11, 0x4c, 0x65, 0xd4, 0x2e, 0x9d, 0x6a, 0x1d, 0x3a, 0x69,
0x91, 0x84, 0x27, 0x05, 0x72, 0x86, 0xc2, 0xde, 0x65, 0x48, 0x8b, 0xe4, 0xa5, 0xd1, 0x90, 0xfb,
0x50, 0x97, 0x59, 0x1e, 0xbe, 0xb6, 0x57, 0x59, 0xc5, 0xea, 0x2b, 0xf2, 0x73, 0x58, 0x13, 0x48,
0x63, 0x8c, 0x42, 0x81, 0x93, 0x04, 0x53, 0xd9, 0xf7, 0x45, 0x28, 0xf4, 0xb1, 0x31, 0x72, 0x9b,
0xba, 0x18, 0x5c, 0x83, 0x18, 0x4e, 0x01, 0x43, 0x6b, 0x57, 0xb9, 0x1e, 0x9b, 0x9e, 0x6d, 0x61,
0x5a, 0x4b, 0x37, 0x37, 0x64, 0x66, 0x9a, 0x4e, 0xf8, 0x19, 0xb8, 0x93, 0x38, 0x1b, 0xd1, 0x38,
0xbc, 0xb4, 0xaa, 0xdb, 0xd6, 0x8b, 0x3d, 0x34, 0xf6, 0xe1, 0x85, 0x25, 0xd5, 0xf1, 0x44, 0xcc,
0xc6, 0x18, 0x85, 0xa3, 0x38, 0x1b, 0xb9, 0xa0, 0x8b, 0x1a, 0x8c, 0x6a, 0x27, 0xce, 0x46, 0xaa,
0x98, 0x2d, 0x40, 0x85, 0x61, 0x9c, 0x15, 0xa9, 0xd4, 0x25, 0x5a, 0x0d, 0x96, 0x8d, 0xfe, 0x45,
0x91, 0xec, 0x2a, 0x2d, 0xf9, 0x01, 0x2c, 0x59, 0x64, 0x76, 0x74, 0x24, 0x50, 0xea, 0xda, 0xac,
0x06, 0x5d, 0xa3, 0xfc, 0x95, 0xd6, 0x79, 0xff, 0xac, 0xc1, 0xbd, 0x40, 0x45, 0x17, 0xdf, 0xe0,
0x77, 0x89, 0x7d, 0xde, 0xc5, 0x02, 0x8d, 0x5b, 0xb1, 0x40, 0xf3, 0xc6, 0x2c, 0xd0, 0xba, 0x15,
0x0b, 0xb4, 0x6f, 0xc7, 0x02, 0xf0, 0x0e, 0x16, 0x58, 0x85, 0x7a, 0xcc, 0x12, 0x56, 0x26, 0xd8,
0x08, 0x97, 0xef, 0x75, 0xf7, 0x8a, 0x7b, 0x4d, 0x1e, 0x41, 0x8b, 0x09, 0x5b, 0x1f, 0x4b, 0x1a,
0xd0, 0x64, 0xc2, 0x14, 0xc6, 0x1e, 0xac, 0x33, 0x89, 0x9c, 0xea, 0xcf, 0x29, 0x9e, 0x49, 0x4c,
0x85, 0x1a, 0x71, 0x8c, 0x8a, 0x31, 0x86, 0x9c, 0x4a, 0xb4, 0xcc, 0xf3, 0x64, 0x0a, 0xdb, 0x2b,
0x51, 0x81, 0x06, 0x05, 0x54, 0xa2, 0xf7, 0xd7, 0xea, 0x7c, 0xe9, 0x7c, 0x0b, 0xb8, 0xe3, 0x63,
0xa8, 0xb2, 0xc8, 0x74, 0x27, 0x9d, 0x6d, 0x77, 0xd1, 0x8f, 0x7d, 0xc4, 0xf5, 0x7d, 0x11, 0x28,
0x10, 0xf9, 0x25, 0x74, 0x6c, 0x19, 0x44, 0x54, 0x52, 0x5d, 0x62, 0x9d, 0xed, 0x0f, 0xaf, 0x9c,
0xa3, 0xeb, 0xc2, 0xa7, 0x92, 0x06, 0xa6, 0xbb, 0x10, 0x6a, 0x4c, 0x7e, 0x01, 0x8f, 0x2f, 0x33,
0x0a, 0xb7, 0xe1, 0x88, 0xdc, 0x86, 0xae, 0xac, 0x47, 0x17, 0x29, 0xa5, 0x8c, 0x57, 0x44, 0x7e,
0x0a, 0xab, 0x73, 0x9c, 0x32, 0x9b, 0xd8, 0xd4, 0xa4, 0x32, 0xc7, 0x37, 0xb3, 0x29, 0xd7, 0xb1,
0x4a, 0xeb, 0x3a, 0x56, 0xf1, 0xbe, 0x71, 0xa0, 0x3d, 0xc8, 0x68, 0xa4, 0x3b, 0xb4, 0x3b, 0x24,
0xe9, 0x09, 0xb4, 0xa7, 0x6b, 0xd9, 0x3b, 0x3e, 0x53, 0x28, 0xeb, 0xb4, 0xc9, 0xb2, 0x9d, 0xd9,
0x5c, 0xd7, 0x35, 0xd7, 0x3d, 0xd5, 0x16, 0xbb, 0xa7, 0x75, 0xe8, 0x30, 0xb5, 0xa1, 0x30, 0xa7,
0xf2, 0xd8, 0x5c, 0xf3, 0x76, 0x00, 0x5a, 0x75, 0xa8, 0x34, 0xaa, 0xbd, 0x2a, 0x01, 0xba, 0xbd,
0x6a, 0xdc, 0xb8, 0xbd, 0xb2, 0x4e, 0x74, 0x7b, 0xf5, 0x3b, 0x47, 0x3d, 0x84, 0x23, 0x3c, 0x53,
0x45, 0x74, 0xd9, 0xa9, 0x73, 0x17, 0xa7, 0x8a, 0x7f, 0x14, 0xff, 0x72, 0x8c, 0xa9, 0x9c, 0x65,
0x42, 0xd8, 0xe0, 0x90, 0xb4, 0x48, 0x02, 0x63, 0xb2, 0x59, 0x10, 0xde, 0x1f, 0x1c, 0x00, 0x5d,
0x4a, 0x66, 0x1b, 0x17, 0x89, 0xd0, 0xb9, 0xbe, 0xf1, 0xac, 0x2c, 0x86, 0x6e, 0xa7, 0x0c, 0xdd,
0x35, 0x2f, 0xad, 0xe9, 0xcf, 0x8e, 0xd9, 0xe1, 0x6d, 0x74, 0xf5, 0xd8, 0xfb, 0xa3, 0x03, 0x5d,
0xbb, 0x3b, 0xb3, 0xa5, 0x85, 0x2c, 0x3b, 0x17, 0xb3, 0xac, 0xbf, 0xcc, 0x49, 0xc6, 0xcf, 0x43,
0xc1, 0xde, 0xa2, 0xdd, 0x10, 0x18, 0xd5, 0x90, 0xbd, 0x45, 0xc5, 0x38, 0x3a, 0x24, 0xd9, 0xa9,
0xb0, 0xf7, 0xb2, 0xa9, 0xc2, 0x90, 0x9d, 0x0a, 0xc5, 0x7a, 0x1c, 0xc7, 0x98, 0xca, 0xf8, 0x3c,
0x4c, 0xb2, 0x88, 0x1d, 0x31, 0x8c, 0x74, 0x35, 0xb4, 0x82, 0x5e, 0x69, 0x38, 0xb0, 0x7a, 0xf5,
0x80, 0x25, 0xf6, 0x17, 0x49, 0xf9, 0x9f, 0xe5, 0x40, 0x4c, 0xee, 0x50, 0xb5, 0x2a, 0xc4, 0xc6,
0x8f, 0x2a, 0x44, 0xf3, 0x6b, 0xa3, 0x1d, 0x2c, 0xe8, 0x54, 0x13, 0x35, 0xe5, 0x61, 0x13, 0xc7,
0x5a, 0x30, 0xa7, 0x51, 0x3b, 0x8f, 0xf0, 0x88, 0x16, 0xf1, 0x3c, 0x5f, 0xd7, 0x0c, 0x5f, 0x5b,
0xc3, 0xc2, 0xd3, 0x7b, 0x79, 0x97, 0x63, 0x84, 0xa9, 0x64, 0x34, 0xd6, 0x3f, 0x74, 0xd6, 0xa0,
0x55, 0x08, 0x95, 0x86, 0xc4, 0xec, 0xbc, 0x1d, 0x4c, 0x65, 0xf2, 0x09, 0x10, 0x4c, 0xc7, 0xfc,
0x3c, 0x57, 0x15, 0x94, 0x53, 0x21, 0x4e, 0x33, 0x1e, 0xd9, 0xb7, 0xcf, 0xca, 0xd4, 0x72, 0x68,
0x0d, 0xe4, 0x21, 0x34, 0x24, 0xa6, 0x34, 0x95, 0xf6, 0x8e, 0x59, 0xc9, 0x32, 0xbd, 0x28, 0x72,
0xe4, 0x36, 0xa6, 0x4d, 0x26, 0x86, 0x4a, 0x54, 0x2f, 0x27, 0x71, 0x4c, 0xb7, 0x3f, 0xff, 0x62,
0xe6, 0xbe, 0x6e, 0x5e, 0x4e, 0x46, 0x5d, 0xfa, 0xf6, 0xf6, 0x60, 0x65, 0xc0, 0x84, 0x3c, 0xcc,
0x62, 0x36, 0x3e, 0xbf, 0x73, 0x1f, 0xe0, 0xfd, 0xde, 0x01, 0x32, 0xef, 0xc7, 0xfe, 0x78, 0x98,
0x71, 0xbc, 0x73, 0x73, 0x8e, 0xff, 0x08, 0xba, 0xb9, 0x76, 0x13, 0xb2, 0xf4, 0x28, 0x2b, 0xb3,
0xd7, 0x31, 0x3a, 0x15, 0x5b, 0xa1, 0xde, 0x7b, 0x2a, 0x98, 0x21, 0xcf, 0x62, 0x34, 0xc9, 0x6b,
0x07, 0x6d, 0xa5, 0x09, 0x94, 0xc2, 0x9b, 0xc0, 0xa3, 0xe1, 0x71, 0x76, 0xba, 0x9b, 0xa5, 0x47,
0x6c, 0x52, 0x98, 0x0f, 0xd9, 0x7b, 0x3c, 0xa0, 0x5d, 0x68, 0xe6, 0x54, 0xaa, 0x3b, 0x65, 0x73,
0x54, 0x8a, 0xde, 0x9f, 0x1c, 0x58, 0xbb, 0x6a, 0xa5, 0xf7, 0x39, 0xfe, 0x3e, 0x2c, 0x8d, 0x8d,
0x3b, 0xe3, 0xed, 0xe6, 0x3f, 0xe6, 0x16, 0xe7, 0x79, 0x7b, 0x50, 0x53, 0x9f, 0x6b, 0xb2, 0x05,
0x15, 0x2e, 0xf5, 0x0e, 0x96, 0xb7, 0xd7, 0xdf, 0xc1, 0x14, 0x0a, 0xa8, 0x5f, 0x5b, 0x15, 0x2e,
0x49, 0x17, 0x1c, 0xae, 0x4f, 0xea, 0x04, 0x0e, 0xff, 0xf8, 0x6f, 0x0e, 0xb4, 0x4a, 0x33, 0x59,
0x81, 0x25, 0xdf, 0x1f, 0xec, 0x4e, 0xb9, 0xaa, 0xf7, 0x3d, 0xd2, 0x83, 0xae, 0xef, 0x0f, 0x0e,
0xcb, 0x1e, 0xad, 0xe7, 0x90, 0x2e, 0xb4, 0x7c, 0x7f, 0xa0, 0xc9, 0xa7, 0x57, 0xb1, 0xd2, 0x97,
0x71, 0x21, 0x8e, 0x7b, 0xd5, 0xa9, 0x83, 0x24, 0xa7, 0xc6, 0x41, 0x8d, 0x2c, 0x41, 0xdb, 0x3f,
0x18, 0xf4, 0x53, 0x81, 0x5c, 0xf6, 0xea, 0x56, 0xf4, 0x31, 0x46, 0x89, 0xbd, 0x06, 0xb9, 0x07,
0x1d, 0xff, 0x60, 0xb0, 0x53, 0xc4, 0xaf, 0xd5, 0x77, 0xac, 0xd7, 0xd4, 0xf6, 0x97, 0x03, 0xd3,
0x71, 0xf7, 0x5a, 0xda, 0xfd, 0xcb, 0x81, 0x7a, 0x03, 0x9c, 0xf7, 0xda, 0x3b, 0xcf, 0x7e, 0xf3,
0xf9, 0x84, 0xc9, 0xe3, 0x62, 0xa4, 0x02, 0xb4, 0x65, 0xce, 0xfa, 0x09, 0xcb, 0xec, 0x68, 0xab,
0x3c, 0xef, 0x96, 0x3e, 0xfe, 0x54, 0xcc, 0x47, 0xa3, 0x86, 0xd6, 0x7c, 0xf6, 0x9f, 0x00, 0x00,
0x00, 0xff, 0xff, 0x56, 0x6c, 0x12, 0x3b, 0x2a, 0x16, 0x00, 0x00,
}

View File

@ -3,11 +3,10 @@ package proxy
import (
"context"
"github.com/milvus-io/milvus/internal/proto/planpb"
"github.com/milvus-io/milvus-proto/go-api/milvuspb"
"github.com/milvus-io/milvus-proto/go-api/schemapb"
"github.com/milvus-io/milvus/internal/proto/internalpb"
"github.com/milvus-io/milvus/internal/proto/planpb"
)
type milvusReducer interface {
@ -17,6 +16,11 @@ type milvusReducer interface {
func createMilvusReducer(ctx context.Context, params *queryParams, req *internalpb.RetrieveRequest, schema *schemapb.CollectionSchema, plan *planpb.PlanNode, collectionName string) milvusReducer {
if plan.GetQuery().GetIsCount() {
return &cntReducer{}
} else if req.GetIterationExtensionReduceRate() > 0 {
params.limit = params.limit * req.GetIterationExtensionReduceRate()
if params.limit > Params.CommonCfg.TopKLimit.GetAsInt64() {
params.limit = Params.CommonCfg.TopKLimit.GetAsInt64()
}
}
return newDefaultLimitReducer(ctx, params, req, schema, collectionName)
}

View File

@ -3,6 +3,7 @@ package proxy
import (
"testing"
"github.com/milvus-io/milvus/internal/proto/internalpb"
"github.com/milvus-io/milvus/internal/proto/planpb"
"github.com/stretchr/testify/assert"
)
@ -25,4 +26,26 @@ func Test_createMilvusReducer(t *testing.T) {
r = createMilvusReducer(nil, nil, nil, nil, n, "")
_, ok = r.(*cntReducer)
assert.True(t, ok)
req := &internalpb.RetrieveRequest{
IterationExtensionReduceRate: 100,
}
params := &queryParams{
limit: 10,
}
r = createMilvusReducer(nil, params, req, nil, nil, "")
defaultReducer, typeOk := r.(*defaultLimitReducer)
assert.True(t, typeOk)
assert.Equal(t, int64(10*100), defaultReducer.params.limit)
req = &internalpb.RetrieveRequest{
IterationExtensionReduceRate: 1000,
}
params = &queryParams{
limit: 100,
}
r = createMilvusReducer(nil, params, req, nil, nil, "")
defaultReducer, typeOk = r.(*defaultLimitReducer)
assert.True(t, typeOk)
assert.Equal(t, int64(16384), defaultReducer.params.limit)
}

View File

@ -43,15 +43,16 @@ import (
)
const (
IgnoreGrowingKey = "ignore_growing"
AnnsFieldKey = "anns_field"
TopKKey = "topk"
NQKey = "nq"
MetricTypeKey = common.MetricTypeKey
SearchParamsKey = "params"
RoundDecimalKey = "round_decimal"
OffsetKey = "offset"
LimitKey = "limit"
IgnoreGrowingKey = "ignore_growing"
IterationExtensionReduceRateKey = "iteration_extension_reduce_rate"
AnnsFieldKey = "anns_field"
TopKKey = "topk"
NQKey = "nq"
MetricTypeKey = common.MetricTypeKey
SearchParamsKey = "params"
RoundDecimalKey = "round_decimal"
OffsetKey = "offset"
LimitKey = "limit"
InsertTaskName = "InsertTask"
CreateCollectionTaskName = "CreateCollectionTask"

View File

@ -287,7 +287,7 @@ func (t *queryTask) PreExecute(ctx context.Context) error {
}
log.Debug("Get partitions in collection.", zap.Int64s("partitionIDs", t.RetrieveRequest.GetPartitionIDs()))
//fetch search_growing from search param
//fetch search_growing from query param
var ignoreGrowing bool
for i, kv := range t.request.GetQueryParams() {
if kv.GetKey() == IgnoreGrowingKey {
@ -301,6 +301,20 @@ func (t *queryTask) PreExecute(ctx context.Context) error {
}
t.RetrieveRequest.IgnoreGrowing = ignoreGrowing
//fetch iteration_extension_reduce_rate from query param
var iterationExtensionReduceRate int64
for i, kv := range t.request.GetQueryParams() {
if kv.GetKey() == IterationExtensionReduceRateKey {
iterationExtensionReduceRate, err = strconv.ParseInt(kv.Value, 0, 64)
if err != nil {
return errors.New("parse query iteration_extension_reduce_rate failed")
}
t.request.QueryParams = append(t.request.GetQueryParams()[:i], t.request.GetQueryParams()[i+1:]...)
break
}
}
t.RetrieveRequest.IterationExtensionReduceRate = iterationExtensionReduceRate
queryParams, err := parseQueryParams(t.request.GetQueryParams())
if err != nil {
return err

View File

@ -151,6 +151,10 @@ func TestQueryTask_all(t *testing.T) {
Key: IgnoreGrowingKey,
Value: "false",
},
{
Key: IterationExtensionReduceRateKey,
Value: "10",
},
},
},
qc: qc,
@ -169,6 +173,14 @@ func TestQueryTask_all(t *testing.T) {
// after preExecute
assert.Greater(t, task.TimeoutTimestamp, typeutil.ZeroTimestamp)
// check iteration extension reduce
assert.Equal(t, int64(10), task.RetrieveRequest.IterationExtensionReduceRate)
task.request.QueryParams = append(task.request.QueryParams, &commonpb.KeyValuePair{
Key: IterationExtensionReduceRateKey,
Value: "10XXX",
})
assert.Error(t, task.PreExecute(ctx))
task.ctx = ctx
task.queryShardPolicy = errPolicy
assert.Error(t, task.Execute(ctx))

View File

@ -25,6 +25,24 @@ func newDefaultLimitReducer(req *querypb.QueryRequest, schema *schemapb.Collecti
}
}
type extensionLimitReducer struct {
req *querypb.QueryRequest
schema *schemapb.CollectionSchema
extendedLimit int64
}
func (r *extensionLimitReducer) Reduce(ctx context.Context, results []*internalpb.RetrieveResults) (*internalpb.RetrieveResults, error) {
return mergeInternalRetrieveResultsAndFillIfEmpty(ctx, results, r.extendedLimit, r.req.GetReq().GetOutputFieldsId(), r.schema)
}
func newExtensionLimitReducer(req *querypb.QueryRequest, schema *schemapb.CollectionSchema, extLimit int64) *extensionLimitReducer {
return &extensionLimitReducer{
req: req,
schema: schema,
extendedLimit: extLimit,
}
}
type defaultLimitReducerSegcore struct {
req *querypb.QueryRequest
schema *schemapb.CollectionSchema
@ -40,3 +58,21 @@ func newDefaultLimitReducerSegcore(req *querypb.QueryRequest, schema *schemapb.C
schema: schema,
}
}
type extensionLimitSegcoreReducer struct {
req *querypb.QueryRequest
schema *schemapb.CollectionSchema
extendedLimit int64
}
func (r *extensionLimitSegcoreReducer) Reduce(ctx context.Context, results []*segcorepb.RetrieveResults) (*segcorepb.RetrieveResults, error) {
return mergeSegcoreRetrieveResultsAndFillIfEmpty(ctx, results, r.extendedLimit, r.req.GetReq().GetOutputFieldsId(), r.schema)
}
func newExtensionLimitSegcoreReducer(req *querypb.QueryRequest, schema *schemapb.CollectionSchema, extLimit int64) *extensionLimitSegcoreReducer {
return &extensionLimitSegcoreReducer{
req: req,
schema: schema,
extendedLimit: extLimit,
}
}

View File

@ -17,6 +17,9 @@ type internalReducer interface {
func CreateInternalReducer(req *querypb.QueryRequest, schema *schemapb.CollectionSchema) internalReducer {
if req.GetReq().GetIsCount() {
return &cntReducer{}
} else if req.GetReq().GetIterationExtensionReduceRate() > 0 {
extendedLimit := req.GetReq().GetIterationExtensionReduceRate() * req.GetReq().Limit
return newExtensionLimitReducer(req, schema, extendedLimit)
}
return newDefaultLimitReducer(req, schema)
}
@ -28,6 +31,9 @@ type segCoreReducer interface {
func CreateSegCoreReducer(req *querypb.QueryRequest, schema *schemapb.CollectionSchema) segCoreReducer {
if req.GetReq().GetIsCount() {
return &cntReducerSegCore{}
} else if req.GetReq().GetIterationExtensionReduceRate() > 0 {
extendedLimit := req.GetReq().GetIterationExtensionReduceRate() * req.GetReq().Limit
return newExtensionLimitSegcoreReducer(req, schema, extendedLimit)
}
return newDefaultLimitReducerSegcore(req, schema)
}

View File

@ -40,6 +40,14 @@ func (suite *ReducerFactorySuite) TestCreateInternalReducer() {
suite.ir = CreateInternalReducer(req, nil)
_, suite.ok = suite.ir.(*cntReducer)
suite.True(suite.ok)
req.GetReq().IsCount = false
req.GetReq().IterationExtensionReduceRate = 10
req.GetReq().Limit = 10
suite.ir = CreateInternalReducer(req, nil)
extReducer, typeOk := suite.ir.(*extensionLimitReducer)
suite.True(typeOk)
suite.Equal(int64(100), extReducer.extendedLimit)
}
func (suite *ReducerFactorySuite) TestCreateSegCoreReducer() {
@ -55,8 +63,15 @@ func (suite *ReducerFactorySuite) TestCreateSegCoreReducer() {
suite.True(suite.ok)
req.Req.IsCount = true
suite.sr = CreateSegCoreReducer(req, nil)
_, suite.ok = suite.sr.(*cntReducerSegCore)
suite.True(suite.ok)
req.GetReq().IsCount = false
req.GetReq().IterationExtensionReduceRate = 10
req.GetReq().Limit = 10
suite.sr = CreateSegCoreReducer(req, nil)
extReducer, typeOk := suite.sr.(*extensionLimitSegcoreReducer)
suite.True(typeOk)
suite.Equal(int64(100), extReducer.extendedLimit)
}