未验证 提交 8a63dba1 编写于 作者: J Jiquan Long 提交者: GitHub

Add consistency level field in collection meta (#13766)

Signed-off-by: Ndragondriver <jiquan.long@zilliz.com>
上级 fd720aa7
...@@ -169,7 +169,7 @@ static void InitDefaultsscc_info_Status_common_2eproto() { ...@@ -169,7 +169,7 @@ static void InitDefaultsscc_info_Status_common_2eproto() {
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_Status_common_2eproto}, {}}; {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_Status_common_2eproto}, {}};
static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_common_2eproto[8]; static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_common_2eproto[8];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_common_2eproto[6]; static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_common_2eproto[7];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_common_2eproto = nullptr; static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_common_2eproto = nullptr;
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_common_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_common_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
...@@ -317,8 +317,10 @@ const char descriptor_table_protodef_common_2eproto[] PROTOBUF_SECTION_VARIABLE( ...@@ -317,8 +317,10 @@ const char descriptor_table_protodef_common_2eproto[] PROTOBUF_SECTION_VARIABLE(
"\020\267\t\022\017\n\nDataNodeTt\020\270\t*\"\n\007DslType\022\007\n\003Dsl\020\000" "\020\267\t\022\017\n\nDataNodeTt\020\270\t*\"\n\007DslType\022\007\n\003Dsl\020\000"
"\022\016\n\nBoolExprV1\020\001*B\n\017CompactionState\022\021\n\rU" "\022\016\n\nBoolExprV1\020\001*B\n\017CompactionState\022\021\n\rU"
"ndefiedState\020\000\022\r\n\tExecuting\020\001\022\r\n\tComplet" "ndefiedState\020\000\022\r\n\tExecuting\020\001\022\r\n\tComplet"
"ed\020\002B5Z3github.com/milvus-io/milvus/inte" "ed\020\002*X\n\020ConsistencyLevel\022\n\n\006Strong\020\000\022\013\n\007"
"rnal/proto/commonpbb\006proto3" "Session\020\001\022\013\n\007Bounded\020\002\022\016\n\nEventually\020\003\022\016"
"\n\nCustomized\020\004B5Z3github.com/milvus-io/m"
"ilvus/internal/proto/commonpbb\006proto3"
; ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_common_2eproto_deps[1] = { static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_common_2eproto_deps[1] = {
}; };
...@@ -335,7 +337,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_com ...@@ -335,7 +337,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_com
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_common_2eproto_once; static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_common_2eproto_once;
static bool descriptor_table_common_2eproto_initialized = false; static bool descriptor_table_common_2eproto_initialized = false;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_common_2eproto = { const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_common_2eproto = {
&descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 2627, &descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 2717,
&descriptor_table_common_2eproto_once, descriptor_table_common_2eproto_sccs, descriptor_table_common_2eproto_deps, 8, 0, &descriptor_table_common_2eproto_once, descriptor_table_common_2eproto_sccs, descriptor_table_common_2eproto_deps, 8, 0,
schemas, file_default_instances, TableStruct_common_2eproto::offsets, schemas, file_default_instances, TableStruct_common_2eproto::offsets,
file_level_metadata_common_2eproto, 8, file_level_enum_descriptors_common_2eproto, file_level_service_descriptors_common_2eproto, file_level_metadata_common_2eproto, 8, file_level_enum_descriptors_common_2eproto, file_level_service_descriptors_common_2eproto,
...@@ -519,6 +521,23 @@ bool CompactionState_IsValid(int value) { ...@@ -519,6 +521,23 @@ bool CompactionState_IsValid(int value) {
} }
} }
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ConsistencyLevel_descriptor() {
::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_common_2eproto);
return file_level_enum_descriptors_common_2eproto[6];
}
bool ConsistencyLevel_IsValid(int value) {
switch (value) {
case 0:
case 1:
case 2:
case 3:
case 4:
return true;
default:
return false;
}
}
// =================================================================== // ===================================================================
......
...@@ -338,6 +338,34 @@ inline bool CompactionState_Parse( ...@@ -338,6 +338,34 @@ inline bool CompactionState_Parse(
return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CompactionState>( return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CompactionState>(
CompactionState_descriptor(), name, value); CompactionState_descriptor(), name, value);
} }
enum ConsistencyLevel : int {
Strong = 0,
Session = 1,
Bounded = 2,
Eventually = 3,
Customized = 4,
ConsistencyLevel_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
ConsistencyLevel_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool ConsistencyLevel_IsValid(int value);
constexpr ConsistencyLevel ConsistencyLevel_MIN = Strong;
constexpr ConsistencyLevel ConsistencyLevel_MAX = Customized;
constexpr int ConsistencyLevel_ARRAYSIZE = ConsistencyLevel_MAX + 1;
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ConsistencyLevel_descriptor();
template<typename T>
inline const std::string& ConsistencyLevel_Name(T enum_t_value) {
static_assert(::std::is_same<T, ConsistencyLevel>::value ||
::std::is_integral<T>::value,
"Incorrect type passed to function ConsistencyLevel_Name.");
return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
ConsistencyLevel_descriptor(), enum_t_value);
}
inline bool ConsistencyLevel_Parse(
const std::string& name, ConsistencyLevel* value) {
return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ConsistencyLevel>(
ConsistencyLevel_descriptor(), name, value);
}
// =================================================================== // ===================================================================
class Status : class Status :
...@@ -2185,6 +2213,11 @@ template <> ...@@ -2185,6 +2213,11 @@ template <>
inline const EnumDescriptor* GetEnumDescriptor< ::milvus::proto::common::CompactionState>() { inline const EnumDescriptor* GetEnumDescriptor< ::milvus::proto::common::CompactionState>() {
return ::milvus::proto::common::CompactionState_descriptor(); return ::milvus::proto::common::CompactionState_descriptor();
} }
template <> struct is_proto_enum< ::milvus::proto::common::ConsistencyLevel> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::milvus::proto::common::ConsistencyLevel>() {
return ::milvus::proto::common::ConsistencyLevel_descriptor();
}
PROTOBUF_NAMESPACE_CLOSE PROTOBUF_NAMESPACE_CLOSE
......
此差异已折叠。
...@@ -1057,6 +1057,7 @@ class CreateCollectionRequest : ...@@ -1057,6 +1057,7 @@ class CreateCollectionRequest :
kSchemaFieldNumber = 4, kSchemaFieldNumber = 4,
kBaseFieldNumber = 1, kBaseFieldNumber = 1,
kShardsNumFieldNumber = 5, kShardsNumFieldNumber = 5,
kConsistencyLevelFieldNumber = 6,
}; };
// string db_name = 2; // string db_name = 2;
void clear_db_name(); void clear_db_name();
...@@ -1104,6 +1105,11 @@ class CreateCollectionRequest : ...@@ -1104,6 +1105,11 @@ class CreateCollectionRequest :
::PROTOBUF_NAMESPACE_ID::int32 shards_num() const; ::PROTOBUF_NAMESPACE_ID::int32 shards_num() const;
void set_shards_num(::PROTOBUF_NAMESPACE_ID::int32 value); void set_shards_num(::PROTOBUF_NAMESPACE_ID::int32 value);
// .milvus.proto.common.ConsistencyLevel consistency_level = 6;
void clear_consistency_level();
::milvus::proto::common::ConsistencyLevel consistency_level() const;
void set_consistency_level(::milvus::proto::common::ConsistencyLevel value);
// @@protoc_insertion_point(class_scope:milvus.proto.milvus.CreateCollectionRequest) // @@protoc_insertion_point(class_scope:milvus.proto.milvus.CreateCollectionRequest)
private: private:
class _Internal; class _Internal;
...@@ -1114,6 +1120,7 @@ class CreateCollectionRequest : ...@@ -1114,6 +1120,7 @@ class CreateCollectionRequest :
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr schema_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr schema_;
::milvus::proto::common::MsgBase* base_; ::milvus::proto::common::MsgBase* base_;
::PROTOBUF_NAMESPACE_ID::int32 shards_num_; ::PROTOBUF_NAMESPACE_ID::int32 shards_num_;
int consistency_level_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
friend struct ::TableStruct_milvus_2eproto; friend struct ::TableStruct_milvus_2eproto;
}; };
...@@ -2031,6 +2038,7 @@ class DescribeCollectionResponse : ...@@ -2031,6 +2038,7 @@ class DescribeCollectionResponse :
kCreatedTimestampFieldNumber = 6, kCreatedTimestampFieldNumber = 6,
kCreatedUtcTimestampFieldNumber = 7, kCreatedUtcTimestampFieldNumber = 7,
kShardsNumFieldNumber = 8, kShardsNumFieldNumber = 8,
kConsistencyLevelFieldNumber = 11,
}; };
// repeated string virtual_channel_names = 4; // repeated string virtual_channel_names = 4;
int virtual_channel_names_size() const; int virtual_channel_names_size() const;
...@@ -2130,6 +2138,11 @@ class DescribeCollectionResponse : ...@@ -2130,6 +2138,11 @@ class DescribeCollectionResponse :
::PROTOBUF_NAMESPACE_ID::int32 shards_num() const; ::PROTOBUF_NAMESPACE_ID::int32 shards_num() const;
void set_shards_num(::PROTOBUF_NAMESPACE_ID::int32 value); void set_shards_num(::PROTOBUF_NAMESPACE_ID::int32 value);
// .milvus.proto.common.ConsistencyLevel consistency_level = 11;
void clear_consistency_level();
::milvus::proto::common::ConsistencyLevel consistency_level() const;
void set_consistency_level(::milvus::proto::common::ConsistencyLevel value);
// @@protoc_insertion_point(class_scope:milvus.proto.milvus.DescribeCollectionResponse) // @@protoc_insertion_point(class_scope:milvus.proto.milvus.DescribeCollectionResponse)
private: private:
class _Internal; class _Internal;
...@@ -2145,6 +2158,7 @@ class DescribeCollectionResponse : ...@@ -2145,6 +2158,7 @@ class DescribeCollectionResponse :
::PROTOBUF_NAMESPACE_ID::uint64 created_timestamp_; ::PROTOBUF_NAMESPACE_ID::uint64 created_timestamp_;
::PROTOBUF_NAMESPACE_ID::uint64 created_utc_timestamp_; ::PROTOBUF_NAMESPACE_ID::uint64 created_utc_timestamp_;
::PROTOBUF_NAMESPACE_ID::int32 shards_num_; ::PROTOBUF_NAMESPACE_ID::int32 shards_num_;
int consistency_level_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
friend struct ::TableStruct_milvus_2eproto; friend struct ::TableStruct_milvus_2eproto;
}; };
...@@ -13859,6 +13873,20 @@ inline void CreateCollectionRequest::set_shards_num(::PROTOBUF_NAMESPACE_ID::int ...@@ -13859,6 +13873,20 @@ inline void CreateCollectionRequest::set_shards_num(::PROTOBUF_NAMESPACE_ID::int
// @@protoc_insertion_point(field_set:milvus.proto.milvus.CreateCollectionRequest.shards_num) // @@protoc_insertion_point(field_set:milvus.proto.milvus.CreateCollectionRequest.shards_num)
} }
// .milvus.proto.common.ConsistencyLevel consistency_level = 6;
inline void CreateCollectionRequest::clear_consistency_level() {
consistency_level_ = 0;
}
inline ::milvus::proto::common::ConsistencyLevel CreateCollectionRequest::consistency_level() const {
// @@protoc_insertion_point(field_get:milvus.proto.milvus.CreateCollectionRequest.consistency_level)
return static_cast< ::milvus::proto::common::ConsistencyLevel >(consistency_level_);
}
inline void CreateCollectionRequest::set_consistency_level(::milvus::proto::common::ConsistencyLevel value) {
consistency_level_ = value;
// @@protoc_insertion_point(field_set:milvus.proto.milvus.CreateCollectionRequest.consistency_level)
}
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// DropCollectionRequest // DropCollectionRequest
...@@ -14889,6 +14917,20 @@ DescribeCollectionResponse::start_positions() const { ...@@ -14889,6 +14917,20 @@ DescribeCollectionResponse::start_positions() const {
return start_positions_; return start_positions_;
} }
// .milvus.proto.common.ConsistencyLevel consistency_level = 11;
inline void DescribeCollectionResponse::clear_consistency_level() {
consistency_level_ = 0;
}
inline ::milvus::proto::common::ConsistencyLevel DescribeCollectionResponse::consistency_level() const {
// @@protoc_insertion_point(field_get:milvus.proto.milvus.DescribeCollectionResponse.consistency_level)
return static_cast< ::milvus::proto::common::ConsistencyLevel >(consistency_level_);
}
inline void DescribeCollectionResponse::set_consistency_level(::milvus::proto::common::ConsistencyLevel value) {
consistency_level_ = value;
// @@protoc_insertion_point(field_set:milvus.proto.milvus.DescribeCollectionResponse.consistency_level)
}
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// LoadCollectionRequest // LoadCollectionRequest
......
...@@ -183,3 +183,11 @@ enum CompactionState { ...@@ -183,3 +183,11 @@ enum CompactionState {
Executing = 1; Executing = 1;
Completed = 2; Completed = 2;
} }
enum ConsistencyLevel {
Strong = 0;
Session = 1; // default in PyMilvus
Bounded = 2;
Eventually = 3;
Customized = 4; // Users pass their own `guarantee_timestamp`.
}
...@@ -446,6 +446,40 @@ func (CompactionState) EnumDescriptor() ([]byte, []int) { ...@@ -446,6 +446,40 @@ func (CompactionState) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_555bd8c177793206, []int{5} return fileDescriptor_555bd8c177793206, []int{5}
} }
type ConsistencyLevel int32
const (
ConsistencyLevel_Strong ConsistencyLevel = 0
ConsistencyLevel_Session ConsistencyLevel = 1
ConsistencyLevel_Bounded ConsistencyLevel = 2
ConsistencyLevel_Eventually ConsistencyLevel = 3
ConsistencyLevel_Customized ConsistencyLevel = 4
)
var ConsistencyLevel_name = map[int32]string{
0: "Strong",
1: "Session",
2: "Bounded",
3: "Eventually",
4: "Customized",
}
var ConsistencyLevel_value = map[string]int32{
"Strong": 0,
"Session": 1,
"Bounded": 2,
"Eventually": 3,
"Customized": 4,
}
func (x ConsistencyLevel) String() string {
return proto.EnumName(ConsistencyLevel_name, int32(x))
}
func (ConsistencyLevel) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_555bd8c177793206, []int{6}
}
type Status struct { type Status struct {
ErrorCode ErrorCode `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=milvus.proto.common.ErrorCode" json:"error_code,omitempty"` ErrorCode ErrorCode `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=milvus.proto.common.ErrorCode" json:"error_code,omitempty"`
Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
...@@ -831,6 +865,7 @@ func init() { ...@@ -831,6 +865,7 @@ func init() {
proto.RegisterEnum("milvus.proto.common.MsgType", MsgType_name, MsgType_value) proto.RegisterEnum("milvus.proto.common.MsgType", MsgType_name, MsgType_value)
proto.RegisterEnum("milvus.proto.common.DslType", DslType_name, DslType_value) proto.RegisterEnum("milvus.proto.common.DslType", DslType_name, DslType_value)
proto.RegisterEnum("milvus.proto.common.CompactionState", CompactionState_name, CompactionState_value) proto.RegisterEnum("milvus.proto.common.CompactionState", CompactionState_name, CompactionState_value)
proto.RegisterEnum("milvus.proto.common.ConsistencyLevel", ConsistencyLevel_name, ConsistencyLevel_value)
proto.RegisterType((*Status)(nil), "milvus.proto.common.Status") proto.RegisterType((*Status)(nil), "milvus.proto.common.Status")
proto.RegisterType((*KeyValuePair)(nil), "milvus.proto.common.KeyValuePair") proto.RegisterType((*KeyValuePair)(nil), "milvus.proto.common.KeyValuePair")
proto.RegisterType((*KeyDataPair)(nil), "milvus.proto.common.KeyDataPair") proto.RegisterType((*KeyDataPair)(nil), "milvus.proto.common.KeyDataPair")
...@@ -844,96 +879,99 @@ func init() { ...@@ -844,96 +879,99 @@ func init() {
func init() { proto.RegisterFile("common.proto", fileDescriptor_555bd8c177793206) } func init() { proto.RegisterFile("common.proto", fileDescriptor_555bd8c177793206) }
var fileDescriptor_555bd8c177793206 = []byte{ var fileDescriptor_555bd8c177793206 = []byte{
// 1446 bytes of a gzipped FileDescriptorProto // 1503 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4b, 0x73, 0x1b, 0xc7, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xdd, 0x72, 0x1b, 0x4b,
0x11, 0xe6, 0x62, 0x41, 0x82, 0x18, 0x82, 0xe4, 0x70, 0xf8, 0x10, 0xa5, 0x30, 0x29, 0x15, 0x4e, 0x11, 0xf6, 0x6a, 0x15, 0xcb, 0x6a, 0xcb, 0xf6, 0x64, 0xfc, 0x13, 0x9f, 0x10, 0xa8, 0x94, 0xaf,
0x2a, 0x56, 0x89, 0x4c, 0xa2, 0x4a, 0x72, 0xd2, 0x81, 0xc4, 0xf2, 0x81, 0x92, 0xf8, 0xc8, 0x82, 0x52, 0xae, 0x3a, 0x09, 0x90, 0x02, 0xae, 0xce, 0x85, 0xa5, 0xb5, 0x1d, 0x55, 0x62, 0xc7, 0x48,
0x52, 0x52, 0x39, 0x44, 0x35, 0xdc, 0x6d, 0x02, 0x13, 0xed, 0xce, 0x20, 0x33, 0xb3, 0x14, 0x71, 0x4e, 0x38, 0xc5, 0x05, 0xa9, 0xf1, 0x6e, 0x5b, 0x1a, 0x32, 0x3b, 0x23, 0x66, 0x66, 0x1d, 0x8b,
0x4b, 0xfe, 0x41, 0xa2, 0xfc, 0x8d, 0xd8, 0xe5, 0xb7, 0x5d, 0xfe, 0x05, 0x7e, 0x9f, 0x6d, 0xff, 0x2b, 0x78, 0x03, 0x38, 0xbc, 0x06, 0x50, 0xfc, 0x43, 0xf1, 0x04, 0xfc, 0x5f, 0x03, 0x4f, 0xc0,
0x02, 0xff, 0x00, 0x3f, 0xf5, 0x74, 0xf5, 0xec, 0x02, 0x58, 0x55, 0x49, 0x27, 0xdf, 0xa6, 0xbf, 0x03, 0xf0, 0x7b, 0x7e, 0xa9, 0x9e, 0x5d, 0x49, 0x7b, 0xaa, 0x4e, 0xae, 0xce, 0xdd, 0xf6, 0xd7,
0xee, 0xfe, 0xba, 0xa7, 0xbb, 0xa7, 0x77, 0x49, 0x23, 0x52, 0x69, 0xaa, 0xe4, 0x46, 0x5f, 0x2b, 0xdd, 0x5f, 0xf7, 0x74, 0xf7, 0xf4, 0x0e, 0x74, 0x52, 0x93, 0xe7, 0x46, 0xdf, 0x9f, 0x58, 0xe3,
0xab, 0xd8, 0x62, 0x2a, 0x92, 0xf3, 0xcc, 0xe4, 0xd2, 0x46, 0xae, 0x6a, 0xde, 0x23, 0x53, 0x1d, 0x0d, 0xdf, 0xcc, 0xa5, 0xba, 0x2a, 0x5c, 0x29, 0xdd, 0x2f, 0x55, 0x7b, 0x2f, 0x60, 0x79, 0xe8,
0xcb, 0x6d, 0x66, 0xd8, 0x4d, 0x42, 0x40, 0x6b, 0xa5, 0xef, 0x45, 0x2a, 0x86, 0x55, 0xef, 0xaa, 0x85, 0x2f, 0x1c, 0x7f, 0x0b, 0x00, 0xad, 0x35, 0xf6, 0x45, 0x6a, 0x32, 0xdc, 0x8d, 0xee, 0x46,
0x77, 0x6d, 0xee, 0xf7, 0xbf, 0xd9, 0x78, 0x89, 0xcf, 0xc6, 0x0e, 0x9a, 0xb5, 0x54, 0x0c, 0x61, 0xf7, 0xd6, 0xbf, 0xf8, 0xb9, 0xfb, 0x9f, 0xe0, 0x73, 0xff, 0x90, 0xcc, 0x7a, 0x26, 0xc3, 0x41,
0x1d, 0x86, 0x47, 0xb6, 0x42, 0xa6, 0x34, 0x70, 0xa3, 0xe4, 0x6a, 0xe5, 0xaa, 0x77, 0xad, 0x1e, 0x1b, 0x67, 0x9f, 0x7c, 0x07, 0x96, 0x2d, 0x0a, 0x67, 0xf4, 0x6e, 0xe3, 0x6e, 0x74, 0xaf, 0x3d,
0x16, 0x52, 0xf3, 0x8f, 0xa4, 0x71, 0x0b, 0x06, 0x77, 0x79, 0x92, 0xc1, 0x31, 0x17, 0x9a, 0x51, 0xa8, 0xa4, 0xbd, 0x2f, 0x43, 0xe7, 0x31, 0x4e, 0x9f, 0x0b, 0x55, 0xe0, 0x99, 0x90, 0x96, 0x33,
0xe2, 0xdf, 0x87, 0x81, 0xe3, 0xaf, 0x87, 0x78, 0x64, 0x4b, 0x64, 0xf2, 0x1c, 0xd5, 0x85, 0x63, 0x88, 0x5f, 0xe2, 0x34, 0xf0, 0xb7, 0x07, 0xf4, 0xc9, 0xb7, 0xe0, 0xc6, 0x15, 0xa9, 0x2b, 0xc7,
0x2e, 0x34, 0x6f, 0x90, 0x99, 0x5b, 0x30, 0x08, 0xb8, 0xe5, 0xaf, 0x70, 0x63, 0xa4, 0x1a, 0x73, 0x52, 0xd8, 0x7b, 0x08, 0xab, 0x8f, 0x71, 0x9a, 0x08, 0x2f, 0x5e, 0xe3, 0xc6, 0xa1, 0x99, 0x09,
0xcb, 0x9d, 0x57, 0x23, 0x74, 0xe7, 0xe6, 0x1a, 0xa9, 0x6e, 0x27, 0xea, 0x74, 0x4c, 0xe9, 0x39, 0x2f, 0x82, 0x57, 0x67, 0x10, 0xbe, 0xf7, 0xee, 0x40, 0xb3, 0xab, 0xcc, 0xc5, 0x82, 0x32, 0x0a,
0x65, 0x41, 0x79, 0x9d, 0xd4, 0xb6, 0xe2, 0x58, 0x83, 0x31, 0x6c, 0x8e, 0x54, 0x44, 0xbf, 0x60, 0xca, 0x8a, 0xf2, 0x4d, 0x68, 0x1d, 0x64, 0x99, 0x45, 0xe7, 0xf8, 0x3a, 0x34, 0xe4, 0xa4, 0x62,
0xab, 0x88, 0x3e, 0x92, 0xf5, 0x95, 0xb6, 0x8e, 0xcc, 0x0f, 0xdd, 0xb9, 0xf9, 0xd0, 0x23, 0xb5, 0x6b, 0xc8, 0x09, 0x91, 0x4d, 0x8c, 0xf5, 0x81, 0x2c, 0x1e, 0x84, 0xef, 0xbd, 0x77, 0x22, 0x68,
0x03, 0xd3, 0xdd, 0xe6, 0x06, 0xd8, 0x9f, 0xc8, 0x74, 0x6a, 0xba, 0xf7, 0xec, 0xa0, 0x3f, 0x2c, 0x9d, 0xb8, 0x51, 0x57, 0x38, 0xe4, 0x5f, 0x81, 0x95, 0xdc, 0x8d, 0x5e, 0xf8, 0xe9, 0x64, 0x56,
0xcd, 0xda, 0x4b, 0x4b, 0x73, 0x60, 0xba, 0x27, 0x83, 0x3e, 0x84, 0xb5, 0x34, 0x3f, 0x60, 0x26, 0x9a, 0x3b, 0x9f, 0x58, 0x9a, 0x13, 0x37, 0x3a, 0x9f, 0x4e, 0x70, 0xd0, 0xca, 0xcb, 0x0f, 0xca,
0xa9, 0xe9, 0xb6, 0x83, 0x82, 0x39, 0x17, 0xd8, 0x1a, 0xa9, 0x5b, 0x91, 0x82, 0xb1, 0x3c, 0xed, 0x24, 0x77, 0xa3, 0x7e, 0x52, 0x31, 0x97, 0x02, 0xbf, 0x03, 0x6d, 0x2f, 0x73, 0x74, 0x5e, 0xe4,
0xaf, 0xfa, 0x57, 0xbd, 0x6b, 0xd5, 0x70, 0x0c, 0xb0, 0x2b, 0x64, 0xda, 0xa8, 0x4c, 0x47, 0xd0, 0x93, 0xdd, 0xf8, 0x6e, 0x74, 0xaf, 0x39, 0x58, 0x00, 0xfc, 0x36, 0xac, 0x38, 0x53, 0xd8, 0x14,
0x0e, 0x56, 0xab, 0xce, 0x6d, 0x24, 0x37, 0x6f, 0x92, 0xfa, 0x81, 0xe9, 0xee, 0x03, 0x8f, 0x41, 0xfb, 0xc9, 0x6e, 0x33, 0xb8, 0xcd, 0xe5, 0xbd, 0xb7, 0xa0, 0x7d, 0xe2, 0x46, 0x8f, 0x50, 0x64,
0xb3, 0xdf, 0x92, 0xea, 0x29, 0x37, 0x79, 0x46, 0x33, 0xaf, 0xce, 0x08, 0x6f, 0x10, 0x3a, 0xcb, 0x68, 0xf9, 0xe7, 0xa1, 0x79, 0x21, 0x5c, 0x99, 0xd1, 0xea, 0xeb, 0x33, 0xa2, 0x13, 0x0c, 0x82,
0xe6, 0xdf, 0x49, 0x23, 0x38, 0xb8, 0xfd, 0x0b, 0x18, 0x30, 0x75, 0xd3, 0xe3, 0x3a, 0x3e, 0xe4, 0xe5, 0xde, 0x37, 0xa0, 0x93, 0x9c, 0x3c, 0xf9, 0x14, 0x0c, 0x94, 0xba, 0x1b, 0x0b, 0x9b, 0x9d,
0xe9, 0xb0, 0x63, 0x63, 0x60, 0xfd, 0xc3, 0x2a, 0xa9, 0x8f, 0xc6, 0x83, 0xcd, 0x90, 0x5a, 0x27, 0x8a, 0x7c, 0xd6, 0xb1, 0x05, 0xb0, 0xff, 0xdb, 0x26, 0xb4, 0xe7, 0xe3, 0xc1, 0x57, 0xa1, 0x35,
0x8b, 0x22, 0x30, 0x86, 0x4e, 0xb0, 0x45, 0x32, 0x7f, 0x47, 0xc2, 0x45, 0x1f, 0x22, 0x0b, 0xb1, 0x2c, 0xd2, 0x14, 0x9d, 0x63, 0x4b, 0x7c, 0x13, 0x36, 0x9e, 0x69, 0xbc, 0x9e, 0x60, 0xea, 0x31,
0xb3, 0xa1, 0x1e, 0x5b, 0x20, 0xb3, 0x2d, 0x25, 0x25, 0x44, 0x76, 0x97, 0x8b, 0x04, 0x62, 0x5a, 0x0b, 0x36, 0x2c, 0xe2, 0x37, 0x61, 0xad, 0x67, 0xb4, 0xc6, 0xd4, 0x1f, 0x09, 0xa9, 0x30, 0x63,
0x61, 0x4b, 0x84, 0x1e, 0x83, 0x4e, 0x85, 0x31, 0x42, 0xc9, 0x00, 0xa4, 0x80, 0x98, 0xfa, 0xec, 0x0d, 0xbe, 0x05, 0xec, 0x0c, 0x6d, 0x2e, 0x9d, 0x93, 0x46, 0x27, 0xa8, 0x25, 0x66, 0x2c, 0xe6,
0x12, 0x59, 0x6c, 0xa9, 0x24, 0x81, 0xc8, 0x0a, 0x25, 0x0f, 0x95, 0xdd, 0xb9, 0x10, 0xc6, 0x1a, 0xb7, 0x60, 0xb3, 0x67, 0x94, 0xc2, 0xd4, 0x4b, 0xa3, 0x4f, 0x8d, 0x3f, 0xbc, 0x96, 0xce, 0x3b,
0x5a, 0x45, 0xda, 0x76, 0x92, 0x40, 0x97, 0x27, 0x5b, 0xba, 0x9b, 0xa5, 0x20, 0x2d, 0x9d, 0x44, 0xd6, 0x24, 0xda, 0xbe, 0x52, 0x38, 0x12, 0xea, 0xc0, 0x8e, 0x8a, 0x1c, 0xb5, 0x67, 0x37, 0x88,
0x8e, 0x02, 0x0c, 0x44, 0x0a, 0x12, 0x99, 0x68, 0xad, 0x84, 0xb6, 0x65, 0x0c, 0x17, 0xd8, 0x1f, 0xa3, 0x02, 0x13, 0x99, 0xa3, 0x26, 0x26, 0xd6, 0xaa, 0xa1, 0x7d, 0x9d, 0xe1, 0x35, 0xf5, 0x87,
0x3a, 0xcd, 0x2e, 0x93, 0xe5, 0x02, 0x2d, 0x05, 0xe0, 0x29, 0xd0, 0x3a, 0x9b, 0x27, 0x33, 0x85, 0xad, 0xf0, 0x37, 0x60, 0xbb, 0x42, 0x6b, 0x01, 0x44, 0x8e, 0xac, 0xcd, 0x37, 0x60, 0xb5, 0x52,
0xea, 0xe4, 0xe8, 0xf8, 0x16, 0x25, 0x25, 0x86, 0x50, 0x3d, 0x08, 0x21, 0x52, 0x3a, 0xa6, 0x33, 0x9d, 0x3f, 0x3d, 0x7b, 0xcc, 0xa0, 0xc6, 0x30, 0x30, 0xaf, 0x06, 0x98, 0x1a, 0x9b, 0xb1, 0xd5,
0xa5, 0x14, 0xee, 0x42, 0x64, 0x95, 0x6e, 0x07, 0xb4, 0x81, 0x09, 0x17, 0x60, 0x07, 0xb8, 0x8e, 0x5a, 0x0a, 0xcf, 0x31, 0xf5, 0xc6, 0xf6, 0x13, 0xd6, 0xa1, 0x84, 0x2b, 0x70, 0x88, 0xc2, 0xa6,
0x7a, 0x21, 0x98, 0x2c, 0xb1, 0x74, 0x96, 0x51, 0xd2, 0xd8, 0x15, 0x09, 0x1c, 0x2a, 0xbb, 0xab, 0xe3, 0x01, 0xba, 0x42, 0x79, 0xb6, 0xc6, 0x19, 0x74, 0x8e, 0xa4, 0xc2, 0x53, 0xe3, 0x8f, 0x4c,
0x32, 0x19, 0xd3, 0x39, 0x36, 0x47, 0xc8, 0x01, 0x58, 0x5e, 0x54, 0x60, 0x1e, 0xc3, 0xb6, 0x78, 0xa1, 0x33, 0xb6, 0xce, 0xd7, 0x01, 0x4e, 0xd0, 0x8b, 0xaa, 0x02, 0x1b, 0x14, 0xb6, 0x27, 0xd2,
0xd4, 0x83, 0x02, 0xa0, 0x6c, 0x85, 0xb0, 0x16, 0x97, 0x52, 0xd9, 0x96, 0x06, 0x6e, 0x61, 0x57, 0x31, 0x56, 0x00, 0xe3, 0x3b, 0xc0, 0x7b, 0x42, 0x6b, 0xe3, 0x7b, 0x16, 0x85, 0xc7, 0x23, 0xa3,
0x25, 0x31, 0x68, 0xba, 0x80, 0xe9, 0xbc, 0x80, 0x8b, 0x04, 0x28, 0x1b, 0x5b, 0x07, 0x90, 0xc0, 0x32, 0xb4, 0xec, 0x26, 0xa5, 0xf3, 0x31, 0x5c, 0x2a, 0x64, 0x7c, 0x61, 0x9d, 0xa0, 0xc2, 0xb9,
0xc8, 0x7a, 0x71, 0x6c, 0x5d, 0xe0, 0x68, 0xbd, 0x84, 0xc9, 0x6f, 0x67, 0x22, 0x89, 0x5d, 0x49, 0xf5, 0xe6, 0xc2, 0xba, 0xc2, 0xc9, 0x7a, 0x8b, 0x92, 0xef, 0x16, 0x52, 0x65, 0xa1, 0x24, 0x65,
0xf2, 0xb6, 0x2c, 0x63, 0x8e, 0x45, 0xf2, 0x87, 0xb7, 0xdb, 0x9d, 0x13, 0xba, 0xc2, 0x96, 0xc9, 0x5b, 0xb6, 0x29, 0xc7, 0x2a, 0xf9, 0xd3, 0x27, 0xfd, 0xe1, 0x39, 0xdb, 0xe1, 0xdb, 0x70, 0xb3,
0x42, 0x81, 0x1c, 0x80, 0xd5, 0x22, 0x72, 0xc5, 0xbb, 0x84, 0xa9, 0x1e, 0x65, 0xf6, 0xe8, 0xec, 0x42, 0x4e, 0xd0, 0x5b, 0x99, 0x86, 0xe2, 0xdd, 0xa2, 0x54, 0x9f, 0x16, 0xfe, 0xe9, 0xe5, 0x09,
0x00, 0x52, 0xa5, 0x07, 0x74, 0x15, 0x1b, 0xea, 0x98, 0x86, 0x2d, 0xa2, 0x97, 0x31, 0xc2, 0x4e, 0xe6, 0xc6, 0x4e, 0xd9, 0x2e, 0x35, 0x34, 0x30, 0xcd, 0x5a, 0xc4, 0xde, 0xa0, 0x08, 0x87, 0xf9,
0xda, 0xb7, 0x83, 0x71, 0x79, 0xe9, 0x15, 0xc6, 0xc8, 0x6c, 0x10, 0x84, 0xf0, 0xcf, 0x0c, 0x8c, 0xc4, 0x4f, 0x17, 0xe5, 0x65, 0xb7, 0x39, 0x87, 0xb5, 0x24, 0x19, 0xe0, 0xb7, 0x0a, 0x74, 0x7e,
0x0d, 0x79, 0x04, 0xf4, 0x9b, 0xda, 0xfa, 0x5f, 0x09, 0x71, 0xbe, 0xb8, 0x90, 0x80, 0x31, 0x32, 0x20, 0x52, 0x64, 0xff, 0x68, 0xed, 0xbf, 0x0d, 0x10, 0x7c, 0x69, 0x21, 0x21, 0xe7, 0xb0, 0xbe,
0x37, 0x96, 0x0e, 0x95, 0x04, 0x3a, 0xc1, 0x1a, 0x64, 0xfa, 0x8e, 0x14, 0xc6, 0x64, 0x10, 0x53, 0x90, 0x4e, 0x8d, 0x46, 0xb6, 0xc4, 0x3b, 0xb0, 0xf2, 0x4c, 0x4b, 0xe7, 0x0a, 0xcc, 0x58, 0x44,
0x0f, 0xeb, 0xd6, 0x96, 0xc7, 0x5a, 0x75, 0xf1, 0x49, 0xd3, 0x0a, 0x6a, 0x77, 0x85, 0x14, 0xa6, 0x75, 0xeb, 0xeb, 0x33, 0x6b, 0x46, 0x74, 0xa5, 0x59, 0x83, 0xb4, 0x47, 0x52, 0x4b, 0x37, 0x0e,
0xe7, 0x26, 0x86, 0x90, 0xa9, 0xa2, 0x80, 0xd5, 0x75, 0x43, 0x1a, 0x1d, 0xe8, 0xe2, 0x70, 0xe4, 0x13, 0x03, 0xb0, 0x5c, 0x15, 0xb0, 0xb9, 0xef, 0xa0, 0x33, 0xc4, 0x11, 0x0d, 0x47, 0xc9, 0xbd,
0xdc, 0x4b, 0x84, 0x96, 0xe5, 0x31, 0xfb, 0x28, 0x6d, 0x0f, 0x87, 0x77, 0x4f, 0xab, 0x07, 0x42, 0x05, 0xac, 0x2e, 0x2f, 0xd8, 0xe7, 0x69, 0x47, 0x34, 0xbc, 0xc7, 0xd6, 0xbc, 0x92, 0x7a, 0xc4,
0x76, 0x69, 0x05, 0xc9, 0x3a, 0xc0, 0x13, 0x47, 0x3c, 0x43, 0x6a, 0xbb, 0x49, 0xe6, 0xa2, 0x54, 0x1a, 0x44, 0x36, 0x44, 0xa1, 0x02, 0xf1, 0x2a, 0xb4, 0x8e, 0x54, 0x11, 0xa2, 0x34, 0x43, 0x4c,
0x5d, 0x4c, 0x14, 0xd0, 0x6c, 0x12, 0x55, 0x81, 0x56, 0xfd, 0x3e, 0xc4, 0x74, 0x6a, 0xfd, 0x7f, 0x12, 0xc8, 0xec, 0x06, 0xa9, 0x12, 0x6b, 0x26, 0x13, 0xcc, 0xd8, 0xf2, 0xfe, 0x0f, 0xda, 0x61,
0x75, 0xb7, 0x3f, 0xdc, 0x1a, 0x98, 0x25, 0xf5, 0x3b, 0x32, 0x86, 0x33, 0x21, 0x21, 0xa6, 0x13, 0x7f, 0x84, 0x35, 0xb0, 0x06, 0xed, 0x67, 0x3a, 0xc3, 0x4b, 0xa9, 0x31, 0x63, 0x4b, 0xa1, 0x15,
0xae, 0x15, 0xae, 0x65, 0xa5, 0x9a, 0xc4, 0x78, 0x63, 0xf4, 0x2e, 0x61, 0x80, 0xf5, 0xdc, 0xe7, 0xa1, 0x65, 0xb5, 0x9a, 0x64, 0x74, 0x62, 0xf2, 0xae, 0x61, 0x48, 0xf5, 0x7c, 0x24, 0x5c, 0x0d,
0xa6, 0x04, 0x9d, 0x61, 0x7f, 0x03, 0x30, 0x91, 0x16, 0xa7, 0x65, 0xf7, 0x2e, 0xd6, 0xb9, 0xd3, 0xba, 0xa4, 0xfe, 0x26, 0xe8, 0x52, 0x2b, 0x2f, 0xea, 0xee, 0x23, 0xaa, 0xf3, 0x70, 0x6c, 0x5e,
0x53, 0x0f, 0xc6, 0x98, 0xa1, 0x3d, 0x8c, 0xb4, 0x07, 0xb6, 0x33, 0x30, 0x16, 0xd2, 0x96, 0x92, 0x2d, 0x30, 0xc7, 0xc6, 0x14, 0xe9, 0x18, 0xfd, 0x70, 0xea, 0x3c, 0xe6, 0x3d, 0xa3, 0x2f, 0xe5,
0x67, 0xa2, 0x6b, 0xa8, 0xc0, 0x48, 0xb7, 0x15, 0x8f, 0x4b, 0xee, 0xff, 0xc0, 0x0e, 0x87, 0x90, 0xc8, 0x31, 0x49, 0x91, 0x9e, 0x18, 0x91, 0xd5, 0xdc, 0xbf, 0x49, 0x1d, 0x1e, 0xa0, 0x42, 0xe1,
0x00, 0x37, 0x65, 0xd6, 0xfb, 0x6e, 0x18, 0x5d, 0xaa, 0x5b, 0x89, 0xe0, 0x86, 0x26, 0x78, 0x15, 0xea, 0xac, 0x2f, 0xc3, 0x30, 0x86, 0x54, 0x0f, 0x94, 0x14, 0x8e, 0x29, 0x3a, 0x0a, 0x65, 0x59,
0xcc, 0x32, 0x17, 0x53, 0x6c, 0xc2, 0x56, 0x62, 0x41, 0xe7, 0xb2, 0x64, 0x4b, 0x64, 0x3e, 0xb7, 0x8a, 0x39, 0x35, 0xe1, 0x40, 0x79, 0xb4, 0xa5, 0xac, 0xf9, 0x16, 0x6c, 0x94, 0xf6, 0x67, 0xc2,
0x3f, 0xe6, 0xda, 0x0a, 0x47, 0xf2, 0x91, 0xe7, 0xda, 0xad, 0x55, 0x7f, 0x8c, 0x7d, 0x8c, 0x6f, 0x7a, 0x19, 0x48, 0x7e, 0x17, 0x85, 0x76, 0x5b, 0x33, 0x59, 0x60, 0xbf, 0xa7, 0xbb, 0xdf, 0x79,
0xbf, 0xb1, 0xcf, 0xcd, 0x18, 0xfa, 0xc4, 0x63, 0x2b, 0x64, 0x61, 0x78, 0xb5, 0x31, 0xfe, 0xa9, 0x24, 0xdc, 0x02, 0xfa, 0x43, 0xc4, 0x77, 0xe0, 0xe6, 0xec, 0x68, 0x0b, 0xfc, 0x8f, 0x11, 0xdf,
0xc7, 0x16, 0xc9, 0x1c, 0x5e, 0x6d, 0x84, 0x19, 0xfa, 0x99, 0x03, 0xf1, 0x12, 0x25, 0xf0, 0x73, 0x84, 0x75, 0x3a, 0xda, 0x1c, 0x73, 0xec, 0x4f, 0x01, 0xa4, 0x43, 0xd4, 0xc0, 0x3f, 0x07, 0x86,
0xc7, 0x50, 0xdc, 0xa2, 0x84, 0x7f, 0xe1, 0x82, 0x21, 0x43, 0xd1, 0x75, 0x43, 0x1f, 0x79, 0x98, 0xea, 0x14, 0x35, 0xfc, 0x2f, 0x21, 0x18, 0x31, 0x54, 0x5d, 0x77, 0xec, 0xdd, 0x88, 0x32, 0x9d,
0xe9, 0x30, 0x58, 0x01, 0xd3, 0xc7, 0xce, 0x10, 0x59, 0x47, 0x86, 0x4f, 0x9c, 0x61, 0xc1, 0x39, 0x05, 0xab, 0x60, 0xf6, 0x5e, 0x30, 0x24, 0xd6, 0xb9, 0xe1, 0xfb, 0xc1, 0xb0, 0xe2, 0x9c, 0xa3,
0x42, 0x9f, 0x3a, 0x74, 0x9f, 0xcb, 0x58, 0x9d, 0x9d, 0x8d, 0xd0, 0x67, 0x1e, 0x5b, 0x25, 0x8b, 0x1f, 0x04, 0xf4, 0x91, 0xd0, 0x99, 0xb9, 0xbc, 0x9c, 0xa3, 0x1f, 0x46, 0x7c, 0x17, 0x36, 0xc9,
0xe8, 0xbe, 0xcd, 0x13, 0x2e, 0xa3, 0xb1, 0xfd, 0x73, 0x8f, 0xd1, 0x61, 0x21, 0xdd, 0x54, 0xd3, 0xbd, 0x2b, 0x94, 0xd0, 0xe9, 0xc2, 0xfe, 0xa3, 0x88, 0xb3, 0x59, 0x21, 0xc3, 0x54, 0xb3, 0x1f,
0xff, 0x57, 0x5c, 0x51, 0x8a, 0x04, 0x72, 0xec, 0xb5, 0x0a, 0x9b, 0xcb, 0xab, 0x9b, 0xcb, 0xaf, 0x36, 0x42, 0x51, 0xaa, 0x04, 0x4a, 0xec, 0x47, 0x0d, 0xbe, 0x5e, 0x56, 0xb7, 0x94, 0x7f, 0xdc,
0x57, 0xd8, 0x0c, 0x99, 0x6a, 0x4b, 0x03, 0xda, 0xd2, 0xff, 0xe0, 0xe4, 0x4d, 0xe5, 0x6f, 0x97, 0xe0, 0xab, 0xb0, 0xdc, 0xd7, 0x0e, 0xad, 0x67, 0xdf, 0xa3, 0xc9, 0x5b, 0x2e, 0xef, 0x2e, 0xfb,
0xfe, 0x17, 0xe7, 0x7b, 0xd2, 0x4d, 0x1e, 0x7d, 0xe8, 0x14, 0xf9, 0x96, 0xa1, 0xdf, 0xfa, 0xee, 0x3e, 0xcd, 0xf7, 0x8d, 0x30, 0x79, 0xec, 0x9d, 0xa0, 0x28, 0xb7, 0x0c, 0xfb, 0x67, 0x1c, 0x8e,
0xaa, 0xe5, 0x95, 0xf3, 0x9d, 0x8f, 0x91, 0xf6, 0xc0, 0x8e, 0x9f, 0x13, 0xfd, 0xde, 0x67, 0x57, 0x5a, 0x5f, 0x39, 0xff, 0x8a, 0x29, 0xd2, 0x31, 0xfa, 0xc5, 0x75, 0x62, 0xff, 0x8e, 0xf9, 0x6d,
0xc8, 0xf2, 0x10, 0x73, 0x0b, 0x60, 0xf4, 0x90, 0x7e, 0xf0, 0xd9, 0x1a, 0xb9, 0xb4, 0x07, 0x76, 0xd8, 0x9e, 0x61, 0x61, 0x01, 0xcc, 0x2f, 0xd2, 0x7f, 0x62, 0x7e, 0x07, 0x6e, 0x1d, 0xa3, 0x5f,
0x3c, 0x07, 0xe8, 0x24, 0x8c, 0x15, 0x91, 0xa1, 0x3f, 0xfa, 0xec, 0x57, 0x64, 0x65, 0x0f, 0xec, 0xcc, 0x01, 0x39, 0x49, 0xe7, 0x65, 0xea, 0xd8, 0x7f, 0x63, 0xfe, 0x19, 0xd8, 0x39, 0x46, 0x3f,
0xa8, 0xbe, 0x25, 0xe5, 0x4f, 0x3e, 0x9b, 0x25, 0xd3, 0x21, 0x6e, 0x08, 0x38, 0x07, 0xfa, 0xc8, 0xaf, 0x6f, 0x4d, 0xf9, 0xbf, 0x98, 0xaf, 0xc1, 0xca, 0x80, 0x36, 0x04, 0x5e, 0x21, 0x7b, 0x37,
0xc7, 0x26, 0x0d, 0xc5, 0x22, 0x9d, 0xc7, 0x3e, 0x96, 0xee, 0x2f, 0xdc, 0x46, 0xbd, 0x20, 0x6d, 0xa6, 0x26, 0xcd, 0xc4, 0x2a, 0x9d, 0xf7, 0x62, 0x2a, 0xdd, 0xd7, 0x84, 0x4f, 0xc7, 0x49, 0xde,
0xf5, 0xb8, 0x94, 0x90, 0x18, 0xfa, 0xc4, 0x67, 0xcb, 0x84, 0x86, 0x90, 0xaa, 0x73, 0x28, 0xc1, 0x1b, 0x0b, 0xad, 0x51, 0x39, 0xf6, 0x7e, 0xcc, 0xb7, 0x81, 0x0d, 0x30, 0x37, 0x57, 0x58, 0x83,
0x4f, 0x71, 0xf3, 0x33, 0x67, 0xfc, 0xe7, 0x0c, 0xf4, 0x60, 0xa4, 0x78, 0xe6, 0x63, 0xa9, 0x73, 0x3f, 0xa0, 0xcd, 0xcf, 0x83, 0xf1, 0x57, 0x0b, 0xb4, 0xd3, 0xb9, 0xe2, 0xc3, 0x98, 0x4a, 0x5d,
0xfb, 0x17, 0x35, 0xcf, 0x7d, 0xf6, 0x6b, 0xb2, 0x9a, 0xbf, 0xd6, 0x61, 0xfd, 0x51, 0xd9, 0x85, 0xda, 0x7f, 0x5c, 0xf3, 0x51, 0xcc, 0x3f, 0x0b, 0xbb, 0xe5, 0x6d, 0x9d, 0xd5, 0x9f, 0x94, 0x23,
0xb6, 0x3c, 0x53, 0xf4, 0x5f, 0xd5, 0x11, 0x63, 0x00, 0x89, 0xe5, 0x23, 0xbf, 0x7f, 0x57, 0xb1, 0xec, 0xeb, 0x4b, 0xc3, 0xbe, 0xd3, 0x9c, 0x33, 0x26, 0xa8, 0xbc, 0x98, 0xfb, 0x7d, 0xb7, 0x49,
0x45, 0x85, 0x87, 0x33, 0xfd, 0xb2, 0xca, 0xe6, 0x09, 0xc9, 0xdf, 0x8e, 0x03, 0xbe, 0xaa, 0x62, 0x2d, 0xaa, 0x3c, 0x82, 0xe9, 0x5f, 0x9b, 0x7c, 0x03, 0xa0, 0xbc, 0x3b, 0x01, 0xf8, 0x5b, 0x93,
0xea, 0x7b, 0x60, 0x71, 0xf5, 0x9f, 0x83, 0x1e, 0x38, 0xf4, 0xeb, 0x2a, 0x5e, 0xfa, 0x44, 0xa4, 0x52, 0x3f, 0x46, 0x4f, 0xab, 0xff, 0x0a, 0xed, 0x34, 0xa0, 0x7f, 0x6f, 0xd2, 0xa1, 0xcf, 0x65,
0x70, 0x22, 0xa2, 0xfb, 0xf4, 0x8d, 0x3a, 0x5e, 0xda, 0xe5, 0x74, 0xa8, 0x62, 0xc0, 0xea, 0x18, 0x8e, 0xe7, 0x32, 0x7d, 0xc9, 0x7e, 0xd2, 0xa6, 0x43, 0x87, 0x9c, 0x4e, 0x4d, 0x86, 0x54, 0x1d,
0xfa, 0x66, 0x1d, 0x3b, 0x8b, 0x93, 0x91, 0x77, 0xf6, 0x2d, 0x27, 0x17, 0xfb, 0xaf, 0x1d, 0xd0, 0xc7, 0x7e, 0xda, 0xa6, 0xce, 0xd2, 0x64, 0x94, 0x9d, 0xfd, 0x59, 0x90, 0xab, 0xfd, 0xd7, 0x4f,
0xb7, 0xf1, 0x63, 0x43, 0x0a, 0xf9, 0xa4, 0x73, 0x44, 0xdf, 0xa9, 0x63, 0xa8, 0xad, 0x24, 0x51, 0xd8, 0xcf, 0xe9, 0x67, 0x03, 0x95, 0x7c, 0x3e, 0x7c, 0xca, 0x7e, 0xd1, 0xa6, 0x50, 0x07, 0x4a,
0x11, 0xb7, 0xa3, 0xf9, 0x7c, 0xb7, 0x8e, 0x03, 0x5e, 0x5a, 0x5d, 0x45, 0xdd, 0xdf, 0xab, 0x63, 0x99, 0x54, 0xf8, 0xf9, 0x7c, 0xfe, 0xb2, 0x4d, 0x03, 0x5e, 0x5b, 0x5d, 0x55, 0xdd, 0x7f, 0xd5,
0xf5, 0x0a, 0xdc, 0x4d, 0x45, 0x80, 0x2b, 0xed, 0x7d, 0xc7, 0x8a, 0xff, 0x50, 0x98, 0xc9, 0x89, 0xa6, 0xea, 0x55, 0x78, 0x98, 0x8a, 0x84, 0x56, 0xda, 0xaf, 0x03, 0x2b, 0xbd, 0xa1, 0x28, 0x93,
0xa5, 0x1f, 0xd4, 0xd7, 0x9b, 0xa4, 0x16, 0x98, 0xc4, 0x2d, 0xa5, 0x1a, 0xf1, 0x03, 0x93, 0xd0, 0x73, 0xcf, 0x7e, 0xd3, 0xde, 0xdf, 0x83, 0x56, 0xe2, 0x54, 0x58, 0x4a, 0x2d, 0x88, 0x13, 0xa7,
0x09, 0x7c, 0xc3, 0xdb, 0x4a, 0x25, 0x3b, 0x17, 0x7d, 0x7d, 0xf7, 0x77, 0xd4, 0x5b, 0xdf, 0x26, 0xd8, 0x12, 0xdd, 0xe1, 0xae, 0x31, 0xea, 0xf0, 0x7a, 0x62, 0x9f, 0x7f, 0x81, 0x45, 0xfb, 0x5d,
0xf3, 0x2d, 0x95, 0xf6, 0xf9, 0xa8, 0xf7, 0x6e, 0x0f, 0xe5, 0x0b, 0x0c, 0xe2, 0x7c, 0x82, 0x26, 0xd8, 0xe8, 0x99, 0x7c, 0x22, 0xe6, 0xbd, 0x0f, 0x7b, 0xa8, 0x5c, 0x60, 0x98, 0x95, 0x13, 0xb4,
0x70, 0x11, 0xec, 0x5c, 0x40, 0x94, 0x59, 0xdc, 0x7d, 0x1e, 0x8a, 0xe8, 0x84, 0xe3, 0x19, 0xd3, 0x44, 0x8b, 0xe0, 0xf0, 0x1a, 0xd3, 0xc2, 0xd3, 0xee, 0x8b, 0x48, 0x24, 0x27, 0x1a, 0xcf, 0x8c,
0xca, 0xf6, 0x1f, 0xfe, 0x76, 0xa3, 0x2b, 0x6c, 0x2f, 0x3b, 0xc5, 0xdf, 0x88, 0xcd, 0xfc, 0xbf, 0x35, 0xf6, 0xdf, 0x06, 0xd6, 0x33, 0xda, 0x49, 0xe7, 0x51, 0xa7, 0xd3, 0x27, 0x78, 0x85, 0x2a,
0xe2, 0xba, 0x50, 0xc5, 0x69, 0x53, 0x48, 0x0b, 0x5a, 0xf2, 0x64, 0xd3, 0xfd, 0x6a, 0x6c, 0xe6, 0x6c, 0x51, 0x6f, 0x8d, 0x1e, 0xb1, 0xa5, 0xf0, 0x36, 0xc0, 0xf0, 0x8f, 0x2f, 0x77, 0x6d, 0x97,
0xbf, 0x1a, 0xfd, 0xd3, 0xd3, 0x29, 0x27, 0xdf, 0xf8, 0x39, 0x00, 0x00, 0xff, 0xff, 0xe5, 0x98, 0x7e, 0x86, 0xe1, 0x01, 0xb0, 0x0e, 0x70, 0x78, 0x85, 0xda, 0x17, 0x42, 0xa9, 0x29, 0x8b, 0x49,
0xc8, 0xe4, 0xbb, 0x0a, 0x00, 0x00, 0xee, 0x15, 0xce, 0x9b, 0x5c, 0x7e, 0x9b, 0x56, 0x6e, 0xf7, 0x4b, 0x5f, 0x7f, 0x38, 0x92, 0x7e,
0x5c, 0x5c, 0xd0, 0x03, 0xe5, 0x41, 0xf9, 0x62, 0x79, 0x53, 0x9a, 0xea, 0xeb, 0x81, 0xd4, 0x1e,
0xad, 0x16, 0xea, 0x41, 0x78, 0xc4, 0x3c, 0x28, 0x1f, 0x31, 0x93, 0x8b, 0x8b, 0xe5, 0x20, 0x3f,
0xfc, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x23, 0x0e, 0xd4, 0xcf, 0x15, 0x0b, 0x00, 0x00,
} }
...@@ -41,6 +41,7 @@ message CollectionInfo { ...@@ -41,6 +41,7 @@ message CollectionInfo {
repeated uint64 partition_created_timestamps = 9; repeated uint64 partition_created_timestamps = 9;
int32 shards_num = 10; int32 shards_num = 10;
repeated common.KeyDataPair start_positions = 11; repeated common.KeyDataPair start_positions = 11;
common.ConsistencyLevel consistency_level = 12;
} }
message SegmentIndexInfo { message SegmentIndexInfo {
......
...@@ -254,6 +254,7 @@ type CollectionInfo struct { ...@@ -254,6 +254,7 @@ type CollectionInfo struct {
PartitionCreatedTimestamps []uint64 `protobuf:"varint,9,rep,packed,name=partition_created_timestamps,json=partitionCreatedTimestamps,proto3" json:"partition_created_timestamps,omitempty"` PartitionCreatedTimestamps []uint64 `protobuf:"varint,9,rep,packed,name=partition_created_timestamps,json=partitionCreatedTimestamps,proto3" json:"partition_created_timestamps,omitempty"`
ShardsNum int32 `protobuf:"varint,10,opt,name=shards_num,json=shardsNum,proto3" json:"shards_num,omitempty"` ShardsNum int32 `protobuf:"varint,10,opt,name=shards_num,json=shardsNum,proto3" json:"shards_num,omitempty"`
StartPositions []*commonpb.KeyDataPair `protobuf:"bytes,11,rep,name=start_positions,json=startPositions,proto3" json:"start_positions,omitempty"` StartPositions []*commonpb.KeyDataPair `protobuf:"bytes,11,rep,name=start_positions,json=startPositions,proto3" json:"start_positions,omitempty"`
ConsistencyLevel commonpb.ConsistencyLevel `protobuf:"varint,12,opt,name=consistency_level,json=consistencyLevel,proto3,enum=milvus.proto.common.ConsistencyLevel" json:"consistency_level,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
...@@ -361,6 +362,13 @@ func (m *CollectionInfo) GetStartPositions() []*commonpb.KeyDataPair { ...@@ -361,6 +362,13 @@ func (m *CollectionInfo) GetStartPositions() []*commonpb.KeyDataPair {
return nil return nil
} }
func (m *CollectionInfo) GetConsistencyLevel() commonpb.ConsistencyLevel {
if m != nil {
return m.ConsistencyLevel
}
return commonpb.ConsistencyLevel_Strong
}
type SegmentIndexInfo struct { type SegmentIndexInfo struct {
CollectionID int64 `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"` CollectionID int64 `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
PartitionID int64 `protobuf:"varint,2,opt,name=partitionID,proto3" json:"partitionID,omitempty"` PartitionID int64 `protobuf:"varint,2,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
...@@ -540,52 +548,54 @@ func init() { ...@@ -540,52 +548,54 @@ func init() {
func init() { proto.RegisterFile("etcd_meta.proto", fileDescriptor_975d306d62b73e88) } func init() { proto.RegisterFile("etcd_meta.proto", fileDescriptor_975d306d62b73e88) }
var fileDescriptor_975d306d62b73e88 = []byte{ var fileDescriptor_975d306d62b73e88 = []byte{
// 745 bytes of a gzipped FileDescriptorProto // 777 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xcd, 0x6e, 0xe3, 0x36, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0x4d, 0x6f, 0xeb, 0x44,
0x10, 0x86, 0x22, 0xc7, 0x8e, 0xc6, 0x8e, 0x9d, 0xb0, 0x3f, 0x20, 0x82, 0xb4, 0x55, 0x04, 0x24, 0x14, 0x95, 0x9b, 0x34, 0x79, 0xbe, 0x71, 0xd3, 0x76, 0xf8, 0xd0, 0xa8, 0x2a, 0xe0, 0x67, 0xe9,
0x15, 0x50, 0xd4, 0x46, 0x93, 0xa2, 0xb7, 0x02, 0x6d, 0x23, 0x04, 0x30, 0x8a, 0x06, 0xae, 0x62, 0x3d, 0x2c, 0x21, 0x5a, 0xd1, 0x87, 0xd8, 0x21, 0x01, 0xb5, 0x9e, 0x14, 0x01, 0x55, 0x99, 0x57,
0xf4, 0xd0, 0x8b, 0x40, 0x4b, 0xb4, 0x4d, 0x40, 0xa4, 0xbc, 0x22, 0x15, 0xc4, 0xb7, 0x3d, 0xef, 0xb1, 0x60, 0x63, 0x4d, 0xec, 0xdb, 0x66, 0x24, 0xcf, 0x38, 0x78, 0xc6, 0xd5, 0xcb, 0x8e, 0x35,
0x23, 0xec, 0x23, 0xec, 0x8b, 0xed, 0x61, 0x5f, 0x62, 0x21, 0x52, 0x92, 0xed, 0xc4, 0x39, 0xee, 0x3f, 0x81, 0x3f, 0xc8, 0x82, 0xff, 0x80, 0x90, 0x67, 0x6c, 0xe7, 0xa3, 0xe9, 0x92, 0x5d, 0xee,
0x4d, 0xf3, 0xcd, 0x0c, 0xf9, 0xcd, 0xc7, 0x6f, 0x04, 0x03, 0xaa, 0xe2, 0x24, 0xe2, 0x54, 0x91, 0xb9, 0x1f, 0xbe, 0xf7, 0xcc, 0x39, 0x81, 0x63, 0x34, 0x59, 0x9e, 0x4a, 0x34, 0xfc, 0x62, 0x59,
0xe1, 0x2a, 0xcf, 0x54, 0x86, 0x4e, 0x39, 0x4b, 0x1f, 0x0b, 0x69, 0xa2, 0x61, 0x99, 0x3d, 0xeb, 0x95, 0xa6, 0x24, 0xa7, 0x52, 0x14, 0x8f, 0xb5, 0x76, 0xd1, 0x45, 0x93, 0x3d, 0x0b, 0xb2, 0x52,
0xc5, 0x19, 0xe7, 0x99, 0x30, 0xd0, 0x59, 0x4f, 0xc6, 0x4b, 0xca, 0xab, 0x72, 0xef, 0xbd, 0x05, 0xca, 0x52, 0x39, 0xe8, 0x2c, 0xd0, 0xd9, 0x02, 0x65, 0x5b, 0x1e, 0xfd, 0xe5, 0x01, 0xdc, 0xa1,
0x30, 0xa5, 0x82, 0x08, 0xf5, 0x0f, 0x55, 0x04, 0xf5, 0xe1, 0x60, 0x1c, 0x60, 0xcb, 0xb5, 0x7c, 0xe2, 0xca, 0xfc, 0x8c, 0x86, 0x93, 0x29, 0x1c, 0xcc, 0x12, 0xea, 0x85, 0x5e, 0x3c, 0x60, 0x07,
0x3b, 0x3c, 0x18, 0x07, 0xe8, 0x0a, 0x06, 0xa2, 0xe0, 0xd1, 0x9b, 0x82, 0xe6, 0xeb, 0x48, 0x64, 0xb3, 0x84, 0xbc, 0x86, 0x63, 0x55, 0xcb, 0xf4, 0xf7, 0x1a, 0xab, 0x55, 0xaa, 0xca, 0x1c, 0x35,
0x09, 0x95, 0xf8, 0x40, 0x27, 0x8f, 0x45, 0xc1, 0xff, 0x2d, 0xd1, 0xfb, 0x12, 0x44, 0x3f, 0xc1, 0x3d, 0xb0, 0xc9, 0x23, 0x55, 0xcb, 0x5f, 0x1a, 0xf4, 0xa6, 0x01, 0xc9, 0x17, 0x70, 0x2a, 0x94,
0x29, 0x13, 0x92, 0xe6, 0x2a, 0x8a, 0x97, 0x44, 0x08, 0x9a, 0x8e, 0x03, 0x89, 0x6d, 0xd7, 0xf6, 0xc6, 0xca, 0xa4, 0xd9, 0x82, 0x2b, 0x85, 0xc5, 0x2c, 0xd1, 0x74, 0x10, 0x0e, 0x62, 0x9f, 0x9d,
0x9d, 0xf0, 0xc4, 0x24, 0x6e, 0x1b, 0x1c, 0xfd, 0x08, 0x03, 0x73, 0x60, 0x53, 0x8b, 0x5b, 0xae, 0xb8, 0xc4, 0x75, 0x8f, 0x93, 0xcf, 0xe1, 0xd8, 0x0d, 0xec, 0x6b, 0xe9, 0x30, 0xf4, 0x62, 0x9f,
0xe5, 0x3b, 0x61, 0x5f, 0xc3, 0x4d, 0xa5, 0xf7, 0xd6, 0x02, 0x67, 0x92, 0x67, 0x4f, 0xeb, 0xbd, 0x4d, 0x2d, 0xdc, 0x57, 0x46, 0x7f, 0x78, 0xe0, 0xdf, 0x56, 0xe5, 0xfb, 0xd5, 0xde, 0xdd, 0xbe,
0xdc, 0x7e, 0x83, 0x0e, 0x49, 0x92, 0x9c, 0x4a, 0xc3, 0xa9, 0x7b, 0x7d, 0x3e, 0xdc, 0x99, 0xbd, 0x81, 0x31, 0xcf, 0xf3, 0x0a, 0xb5, 0xdb, 0x69, 0x72, 0x75, 0x7e, 0xb1, 0x75, 0x7b, 0x7b, 0xf5,
0x9a, 0xfa, 0x4f, 0x53, 0x13, 0xd6, 0xc5, 0x25, 0xd7, 0x9c, 0xca, 0x22, 0xdd, 0xc7, 0xd5, 0x24, 0xf7, 0xae, 0x86, 0x75, 0xc5, 0xcd, 0xae, 0x15, 0xea, 0xba, 0xd8, 0xb7, 0xab, 0x4b, 0xac, 0x77,
0x36, 0x5c, 0xbd, 0x77, 0x16, 0x38, 0x63, 0x91, 0xd0, 0xa7, 0xb1, 0x98, 0x67, 0xe8, 0x3b, 0x00, 0x8d, 0xfe, 0xf4, 0xc0, 0x9f, 0xa9, 0x1c, 0xdf, 0xcf, 0xd4, 0x7d, 0x49, 0x3e, 0x01, 0x10, 0x4d,
0x56, 0x06, 0x91, 0x20, 0x9c, 0x6a, 0x2a, 0x4e, 0xe8, 0x68, 0xe4, 0x9e, 0x70, 0x8a, 0x30, 0x74, 0x90, 0x2a, 0x2e, 0xd1, 0xae, 0xe2, 0x33, 0xdf, 0x22, 0x37, 0x5c, 0x22, 0xa1, 0x30, 0xb6, 0xc1,
0x74, 0x30, 0x0e, 0x2a, 0x95, 0xea, 0x10, 0x05, 0xd0, 0x33, 0x8d, 0x2b, 0x92, 0x13, 0x6e, 0xae, 0x2c, 0x69, 0x59, 0xea, 0x42, 0x92, 0x40, 0xe0, 0x1a, 0x97, 0xbc, 0xe2, 0xd2, 0x7d, 0x6e, 0x72,
0xeb, 0x5e, 0x5f, 0xec, 0x25, 0xfc, 0x37, 0x5d, 0xff, 0x47, 0xd2, 0x82, 0x4e, 0x08, 0xcb, 0xc3, 0xf5, 0x72, 0xef, 0xc2, 0x3f, 0xe2, 0xea, 0x57, 0x5e, 0xd4, 0x78, 0xcb, 0x45, 0xc5, 0x26, 0xb6,
0xae, 0x6e, 0x9b, 0xe8, 0x2e, 0x2f, 0x80, 0xfe, 0x1d, 0xa3, 0x69, 0xb2, 0x21, 0x84, 0xa1, 0x33, 0xed, 0xd6, 0x76, 0x45, 0x09, 0x4c, 0xdf, 0x0a, 0x2c, 0xf2, 0xf5, 0x42, 0x14, 0xc6, 0xf7, 0xa2,
0x67, 0x29, 0x4d, 0x1a, 0x61, 0xea, 0xf0, 0x75, 0x2e, 0xde, 0x87, 0x16, 0xf4, 0x6f, 0xb3, 0x34, 0xc0, 0xbc, 0x27, 0xa6, 0x0b, 0x9f, 0xdf, 0x25, 0xfa, 0x77, 0x08, 0xd3, 0xeb, 0xb2, 0x28, 0x30,
0xa5, 0xb1, 0x62, 0x99, 0xd0, 0xc7, 0x3c, 0x97, 0xf6, 0x77, 0x68, 0x1b, 0x97, 0x54, 0xca, 0x5e, 0x33, 0xa2, 0x54, 0x76, 0xcc, 0x2e, 0xb5, 0xdf, 0xc2, 0xc8, 0xa9, 0xa4, 0x65, 0xf6, 0xd5, 0xf6,
0xee, 0x12, 0xad, 0x1c, 0xb4, 0x39, 0xe4, 0x41, 0x03, 0x61, 0xd5, 0x84, 0x7e, 0x80, 0x6e, 0x9c, 0xa2, 0xad, 0x82, 0xd6, 0x43, 0xde, 0x59, 0x80, 0xb5, 0x4d, 0xe4, 0x33, 0x98, 0x64, 0x15, 0x72,
0x53, 0xa2, 0x68, 0xa4, 0x18, 0xa7, 0xd8, 0x76, 0x2d, 0xbf, 0x15, 0x82, 0x81, 0xa6, 0x8c, 0x53, 0x83, 0xa9, 0x11, 0x12, 0xe9, 0x20, 0xf4, 0xe2, 0x21, 0x03, 0x07, 0xdd, 0x09, 0x89, 0x24, 0x82,
0xe4, 0x41, 0x6f, 0x45, 0x72, 0xc5, 0x34, 0x81, 0x40, 0xe2, 0x96, 0x6b, 0xfb, 0x76, 0xb8, 0x83, 0x60, 0xc9, 0x2b, 0x23, 0xec, 0x02, 0x89, 0xa6, 0xc3, 0x70, 0x10, 0x0f, 0xd8, 0x16, 0x46, 0x5e,
0xa1, 0x2b, 0xe8, 0x37, 0x71, 0xa9, 0xae, 0xc4, 0x87, 0xfa, 0x8d, 0x9e, 0xa1, 0xe8, 0x0e, 0x8e, 0xc3, 0xb4, 0x8f, 0x1b, 0x76, 0x35, 0x3d, 0xb4, 0x6f, 0xb4, 0x83, 0x92, 0xb7, 0x70, 0x74, 0xdf,
0xe7, 0xa5, 0x28, 0x91, 0x9e, 0x8f, 0x4a, 0xdc, 0xde, 0xa7, 0x6d, 0xb9, 0x08, 0xc3, 0x5d, 0xf1, 0x90, 0x92, 0xda, 0xfb, 0x50, 0xd3, 0xd1, 0x3e, 0x6e, 0x1b, 0x23, 0x5c, 0x6c, 0x93, 0xc7, 0x82,
0xc2, 0xde, 0xbc, 0x89, 0xa9, 0x44, 0xd7, 0xf0, 0xcd, 0x23, 0xcb, 0x55, 0x41, 0xd2, 0xda, 0x17, 0xfb, 0x3e, 0x46, 0x4d, 0xae, 0xe0, 0xa3, 0x47, 0x51, 0x99, 0x9a, 0x17, 0x9d, 0x2e, 0xec, 0x2b,
0xfa, 0x95, 0x25, 0xee, 0xe8, 0x6b, 0xbf, 0xaa, 0x92, 0x95, 0x37, 0xcc, 0xdd, 0xbf, 0xc2, 0xb7, 0x6b, 0x3a, 0xb6, 0x9f, 0xfd, 0xa0, 0x4d, 0xb6, 0xda, 0x70, 0xdf, 0xfe, 0x1a, 0x3e, 0x5e, 0x2e,
0xab, 0xe5, 0x5a, 0xb2, 0xf8, 0x45, 0xd3, 0x91, 0x6e, 0xfa, 0xba, 0xce, 0xee, 0x74, 0xfd, 0x01, 0x56, 0x5a, 0x64, 0x4f, 0x9a, 0x5e, 0xd8, 0xa6, 0x0f, 0xbb, 0xec, 0x56, 0xd7, 0x77, 0x70, 0xde,
0xe7, 0xcd, 0x0c, 0x91, 0x51, 0x25, 0xd1, 0x4a, 0x49, 0x45, 0xf8, 0x4a, 0x62, 0xc7, 0xb5, 0xfd, 0xdf, 0x90, 0x3a, 0x56, 0x72, 0xcb, 0x94, 0x36, 0x5c, 0x2e, 0x35, 0xf5, 0xc3, 0x41, 0x3c, 0x64,
0x56, 0x78, 0xd6, 0xd4, 0xdc, 0x9a, 0x92, 0x69, 0x53, 0x51, 0xfa, 0x50, 0x2e, 0x49, 0x9e, 0xc8, 0x67, 0x7d, 0xcd, 0xb5, 0x2b, 0xb9, 0xeb, 0x2b, 0x1a, 0x1d, 0xea, 0x05, 0xaf, 0x72, 0x9d, 0xaa,
0x48, 0x14, 0x1c, 0x83, 0x6b, 0xf9, 0x87, 0xa1, 0x63, 0x90, 0xfb, 0x82, 0xa3, 0x31, 0x0c, 0xa4, 0x5a, 0x52, 0x08, 0xbd, 0xf8, 0x90, 0xf9, 0x0e, 0xb9, 0xa9, 0x25, 0x99, 0xc1, 0xb1, 0x36, 0xbc,
0x22, 0xb9, 0x8a, 0x56, 0x99, 0xd4, 0x27, 0x48, 0xdc, 0xd5, 0xa2, 0xb8, 0xaf, 0x19, 0x2e, 0x20, 0x32, 0xe9, 0xb2, 0xd4, 0x76, 0x82, 0xa6, 0x13, 0x4b, 0x4a, 0xf8, 0x9c, 0xe0, 0x12, 0x6e, 0xb8,
0x8a, 0x68, 0xbf, 0xf5, 0x75, 0xe3, 0xa4, 0xee, 0xf3, 0x3e, 0x5a, 0x70, 0xf2, 0x40, 0x17, 0x9c, 0xd5, 0xdb, 0xd4, 0x36, 0xde, 0x76, 0x7d, 0x84, 0xc1, 0x69, 0x56, 0x2a, 0x2d, 0xb4, 0x41, 0x95,
0x0a, 0xb5, 0x71, 0x9d, 0x07, 0xbd, 0x78, 0x63, 0xa0, 0xda, 0x38, 0x3b, 0x18, 0x72, 0xa1, 0xbb, 0xad, 0xd2, 0x02, 0x1f, 0xb1, 0xa0, 0x41, 0xe8, 0xc5, 0xd3, 0x5d, 0x51, 0xb4, 0xc3, 0xae, 0xd7,
0xf5, 0x9c, 0x95, 0x07, 0xb7, 0x21, 0x74, 0x0e, 0x8e, 0xac, 0x4e, 0x0e, 0xb4, 0x47, 0xec, 0x70, 0xd5, 0x3f, 0x35, 0xc5, 0xec, 0x24, 0xdb, 0x41, 0xa2, 0xbf, 0x3d, 0x38, 0x79, 0x87, 0x0f, 0x12,
0x03, 0x18, 0x67, 0x97, 0xcf, 0x63, 0x7e, 0x0e, 0xda, 0xd9, 0x3a, 0xdc, 0x76, 0xf6, 0xe1, 0xee, 0x95, 0x59, 0x2b, 0x39, 0x82, 0x20, 0x5b, 0x8b, 0xb2, 0x13, 0xe3, 0x16, 0x46, 0x42, 0x98, 0x6c,
0x96, 0x61, 0xe8, 0xcc, 0x0a, 0xa6, 0x7b, 0xda, 0x26, 0x53, 0x85, 0xe8, 0x02, 0x7a, 0x54, 0x90, 0x48, 0xa4, 0xd5, 0xf5, 0x26, 0x44, 0xce, 0xc1, 0xd7, 0xed, 0xe4, 0xc4, 0xea, 0x6e, 0xc0, 0xd6,
0x59, 0x4a, 0x8d, 0x4b, 0x70, 0xc7, 0xb5, 0xfc, 0xa3, 0xb0, 0x6b, 0x30, 0x3d, 0x98, 0xf7, 0xc9, 0x80, 0x73, 0x4b, 0xf3, 0xe4, 0xee, 0x0f, 0xc7, 0xba, 0xc5, 0x86, 0x9b, 0x6e, 0x39, 0xdc, 0x76,
0xda, 0x5e, 0x8b, 0xbd, 0x7f, 0x9c, 0x2f, 0xbd, 0x16, 0xdf, 0x03, 0x34, 0x02, 0xd4, 0x4b, 0xb1, 0x2e, 0x85, 0xf1, 0xbc, 0x16, 0xb6, 0x67, 0xe4, 0x32, 0x6d, 0x48, 0x5e, 0x42, 0x80, 0x8a, 0xcf,
0x85, 0xa0, 0xcb, 0xad, 0x95, 0x88, 0x14, 0x59, 0xd4, 0x2b, 0x71, 0xdc, 0xa0, 0x53, 0xb2, 0x90, 0x0b, 0x74, 0xca, 0xa3, 0xe3, 0xd0, 0x8b, 0x5f, 0xb0, 0x89, 0xc3, 0xec, 0x61, 0xd1, 0x3f, 0xde,
0x2f, 0xb6, 0xab, 0xfd, 0x72, 0xbb, 0xfe, 0xba, 0xf9, 0xff, 0x97, 0x05, 0x53, 0xcb, 0x62, 0x56, 0xa6, 0xd5, 0xf6, 0xfe, 0x8b, 0xfd, 0xdf, 0x56, 0xfb, 0x14, 0xa0, 0x27, 0xa0, 0x33, 0xda, 0x06,
0x9a, 0x60, 0x64, 0xc6, 0xf8, 0x99, 0x65, 0xd5, 0xd7, 0x88, 0x09, 0x45, 0x73, 0x41, 0xd2, 0x91, 0x42, 0x5e, 0x6d, 0xd8, 0x2c, 0x35, 0xfc, 0xa1, 0xb3, 0xd9, 0x51, 0x8f, 0xde, 0xf1, 0x07, 0xfd,
0x9e, 0x6c, 0x54, 0x6e, 0xcf, 0x6a, 0x36, 0x6b, 0xeb, 0xe8, 0xe6, 0x73, 0x00, 0x00, 0x00, 0xff, 0xc4, 0xb1, 0xa3, 0xa7, 0x8e, 0xfd, 0xe1, 0xcd, 0x6f, 0x5f, 0x3d, 0x08, 0xb3, 0xa8, 0xe7, 0x8d,
0xff, 0x9e, 0xc5, 0x2c, 0x1a, 0x75, 0x06, 0x00, 0x00, 0x16, 0x2e, 0xdd, 0x19, 0x5f, 0x8a, 0xb2, 0xfd, 0x75, 0x29, 0x94, 0xc1, 0x4a, 0xf1, 0xe2, 0xd2,
0x5e, 0x76, 0xd9, 0x38, 0x72, 0x39, 0x9f, 0x8f, 0x6c, 0xf4, 0xe6, 0xbf, 0x00, 0x00, 0x00, 0xff,
0xff, 0x9f, 0xd3, 0xc4, 0x4c, 0xc9, 0x06, 0x00, 0x00,
} }
...@@ -93,6 +93,8 @@ message CreateCollectionRequest { ...@@ -93,6 +93,8 @@ message CreateCollectionRequest {
// Once set, no modification is allowed (Optional) // Once set, no modification is allowed (Optional)
// https://github.com/milvus-io/milvus/issues/6690 // https://github.com/milvus-io/milvus/issues/6690
int32 shards_num = 5; int32 shards_num = 5;
// The consistency level that the collection used, modification is not supported now.
common.ConsistencyLevel consistency_level = 6;
} }
/** /**
...@@ -172,6 +174,8 @@ message DescribeCollectionResponse { ...@@ -172,6 +174,8 @@ message DescribeCollectionResponse {
repeated string aliases = 9; repeated string aliases = 9;
// The message ID/posititon when collection is created // The message ID/posititon when collection is created
repeated common.KeyDataPair start_positions = 10; repeated common.KeyDataPair start_positions = 10;
// The consistency level that the collection used, modification is not supported now.
common.ConsistencyLevel consistency_level = 11;
} }
/** /**
......
...@@ -143,6 +143,7 @@ func (node *Proxy) ReleaseDQLMessageStream(ctx context.Context, request *proxypb ...@@ -143,6 +143,7 @@ func (node *Proxy) ReleaseDQLMessageStream(ctx context.Context, request *proxypb
}, nil }, nil
} }
// TODO(dragondriver): add more detailed ut for ConsistencyLevel, should we support multiple consistency level in Proxy?
// CreateCollection create a collection by the schema. // CreateCollection create a collection by the schema.
func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.CreateCollectionRequest) (*commonpb.Status, error) { func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.CreateCollectionRequest) (*commonpb.Status, error) {
if !node.checkHealthy() { if !node.checkHealthy() {
...@@ -171,7 +172,8 @@ func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.Creat ...@@ -171,7 +172,8 @@ func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.Creat
zap.String("db", request.DbName), zap.String("db", request.DbName),
zap.String("collection", request.CollectionName), zap.String("collection", request.CollectionName),
zap.Int("len(schema)", lenOfSchema), zap.Int("len(schema)", lenOfSchema),
zap.Int32("shards_num", request.ShardsNum)) zap.Int32("shards_num", request.ShardsNum),
zap.String("consistency_level", request.ConsistencyLevel.String()))
if err := node.sched.ddQueue.Enqueue(cct); err != nil { if err := node.sched.ddQueue.Enqueue(cct); err != nil {
log.Warn( log.Warn(
...@@ -182,7 +184,8 @@ func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.Creat ...@@ -182,7 +184,8 @@ func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.Creat
zap.String("db", request.DbName), zap.String("db", request.DbName),
zap.String("collection", request.CollectionName), zap.String("collection", request.CollectionName),
zap.Int("len(schema)", lenOfSchema), zap.Int("len(schema)", lenOfSchema),
zap.Int32("shards_num", request.ShardsNum)) zap.Int32("shards_num", request.ShardsNum),
zap.String("consistency_level", request.ConsistencyLevel.String()))
return &commonpb.Status{ return &commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError, ErrorCode: commonpb.ErrorCode_UnexpectedError,
...@@ -201,7 +204,8 @@ func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.Creat ...@@ -201,7 +204,8 @@ func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.Creat
zap.String("db", request.DbName), zap.String("db", request.DbName),
zap.String("collection", request.CollectionName), zap.String("collection", request.CollectionName),
zap.Int("len(schema)", lenOfSchema), zap.Int("len(schema)", lenOfSchema),
zap.Int32("shards_num", request.ShardsNum)) zap.Int32("shards_num", request.ShardsNum),
zap.String("consistency_level", request.ConsistencyLevel.String()))
if err := cct.WaitToFinish(); err != nil { if err := cct.WaitToFinish(); err != nil {
log.Warn( log.Warn(
...@@ -215,7 +219,8 @@ func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.Creat ...@@ -215,7 +219,8 @@ func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.Creat
zap.String("db", request.DbName), zap.String("db", request.DbName),
zap.String("collection", request.CollectionName), zap.String("collection", request.CollectionName),
zap.Int("len(schema)", lenOfSchema), zap.Int("len(schema)", lenOfSchema),
zap.Int32("shards_num", request.ShardsNum)) zap.Int32("shards_num", request.ShardsNum),
zap.String("consistency_level", request.ConsistencyLevel.String()))
return &commonpb.Status{ return &commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError, ErrorCode: commonpb.ErrorCode_UnexpectedError,
...@@ -233,7 +238,8 @@ func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.Creat ...@@ -233,7 +238,8 @@ func (node *Proxy) CreateCollection(ctx context.Context, request *milvuspb.Creat
zap.String("db", request.DbName), zap.String("db", request.DbName),
zap.String("collection", request.CollectionName), zap.String("collection", request.CollectionName),
zap.Int("len(schema)", lenOfSchema), zap.Int("len(schema)", lenOfSchema),
zap.Int32("shards_num", request.ShardsNum)) zap.Int32("shards_num", request.ShardsNum),
zap.String("consistency_level", request.ConsistencyLevel.String()))
return cct.result, nil return cct.result, nil
} }
...@@ -2136,7 +2142,12 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest) ...@@ -2136,7 +2142,12 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest)
qc: node.queryCoord, qc: node.queryCoord,
} }
log.Debug("Search received", method := "Search"
travelTs := request.TravelTimestamp
guaranteeTs := request.GuaranteeTimestamp
log.Debug(
rpcReceived(method),
zap.String("traceID", traceID), zap.String("traceID", traceID),
zap.String("role", typeutil.ProxyRole), zap.String("role", typeutil.ProxyRole),
zap.String("db", request.DbName), zap.String("db", request.DbName),
...@@ -2144,11 +2155,14 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest) ...@@ -2144,11 +2155,14 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest)
zap.Any("partitions", request.PartitionNames), zap.Any("partitions", request.PartitionNames),
zap.Any("dsl", request.Dsl), zap.Any("dsl", request.Dsl),
zap.Any("len(PlaceholderGroup)", len(request.PlaceholderGroup)), zap.Any("len(PlaceholderGroup)", len(request.PlaceholderGroup)),
zap.Any("OutputFields", request.OutputFields)) zap.Any("OutputFields", request.OutputFields),
zap.Any("search_params", request.SearchParams),
zap.Uint64("travel_timestamp", travelTs),
zap.Uint64("guarantee_timestamp", guaranteeTs))
err := node.sched.dqQueue.Enqueue(qt) if err := node.sched.dqQueue.Enqueue(qt); err != nil {
if err != nil { log.Warn(
log.Debug("Search failed to enqueue", rpcFailedToEnqueue(method),
zap.Error(err), zap.Error(err),
zap.String("traceID", traceID), zap.String("traceID", traceID),
zap.String("role", typeutil.ProxyRole), zap.String("role", typeutil.ProxyRole),
...@@ -2158,7 +2172,9 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest) ...@@ -2158,7 +2172,9 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest)
zap.Any("dsl", request.Dsl), zap.Any("dsl", request.Dsl),
zap.Any("len(PlaceholderGroup)", len(request.PlaceholderGroup)), zap.Any("len(PlaceholderGroup)", len(request.PlaceholderGroup)),
zap.Any("OutputFields", request.OutputFields), zap.Any("OutputFields", request.OutputFields),
) zap.Any("search_params", request.SearchParams),
zap.Uint64("travel_timestamp", travelTs),
zap.Uint64("guarantee_timestamp", guaranteeTs))
return &milvuspb.SearchResults{ return &milvuspb.SearchResults{
Status: &commonpb.Status{ Status: &commonpb.Status{
...@@ -2168,7 +2184,8 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest) ...@@ -2168,7 +2184,8 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest)
}, nil }, nil
} }
log.Debug("Search enqueued", log.Debug(
rpcEnqueued(method),
zap.String("traceID", traceID), zap.String("traceID", traceID),
zap.String("role", typeutil.ProxyRole), zap.String("role", typeutil.ProxyRole),
zap.Int64("msgID", qt.ID()), zap.Int64("msgID", qt.ID()),
...@@ -2178,12 +2195,14 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest) ...@@ -2178,12 +2195,14 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest)
zap.Any("partitions", request.PartitionNames), zap.Any("partitions", request.PartitionNames),
zap.Any("dsl", request.Dsl), zap.Any("dsl", request.Dsl),
zap.Any("len(PlaceholderGroup)", len(request.PlaceholderGroup)), zap.Any("len(PlaceholderGroup)", len(request.PlaceholderGroup)),
zap.Any("OutputFields", request.OutputFields)) zap.Any("OutputFields", request.OutputFields),
zap.Any("search_params", request.SearchParams),
err = qt.WaitToFinish() zap.Uint64("travel_timestamp", travelTs),
zap.Uint64("guarantee_timestamp", guaranteeTs))
if err != nil { if err := qt.WaitToFinish(); err != nil {
log.Debug("Search failed to WaitToFinish", log.Warn(
rpcFailedToWaitToFinish(method),
zap.Error(err), zap.Error(err),
zap.String("traceID", traceID), zap.String("traceID", traceID),
zap.String("role", typeutil.ProxyRole), zap.String("role", typeutil.ProxyRole),
...@@ -2193,7 +2212,10 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest) ...@@ -2193,7 +2212,10 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest)
zap.Any("partitions", request.PartitionNames), zap.Any("partitions", request.PartitionNames),
zap.Any("dsl", request.Dsl), zap.Any("dsl", request.Dsl),
zap.Any("len(PlaceholderGroup)", len(request.PlaceholderGroup)), zap.Any("len(PlaceholderGroup)", len(request.PlaceholderGroup)),
zap.Any("OutputFields", request.OutputFields)) zap.Any("OutputFields", request.OutputFields),
zap.Any("search_params", request.SearchParams),
zap.Uint64("travel_timestamp", travelTs),
zap.Uint64("guarantee_timestamp", guaranteeTs))
return &milvuspb.SearchResults{ return &milvuspb.SearchResults{
Status: &commonpb.Status{ Status: &commonpb.Status{
...@@ -2203,7 +2225,8 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest) ...@@ -2203,7 +2225,8 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest)
}, nil }, nil
} }
log.Debug("Search Done", log.Debug(
rpcDone(method),
zap.String("traceID", traceID), zap.String("traceID", traceID),
zap.String("role", typeutil.ProxyRole), zap.String("role", typeutil.ProxyRole),
zap.Int64("msgID", qt.ID()), zap.Int64("msgID", qt.ID()),
...@@ -2212,7 +2235,10 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest) ...@@ -2212,7 +2235,10 @@ func (node *Proxy) Search(ctx context.Context, request *milvuspb.SearchRequest)
zap.Any("partitions", request.PartitionNames), zap.Any("partitions", request.PartitionNames),
zap.Any("dsl", request.Dsl), zap.Any("dsl", request.Dsl),
zap.Any("len(PlaceholderGroup)", len(request.PlaceholderGroup)), zap.Any("len(PlaceholderGroup)", len(request.PlaceholderGroup)),
zap.Any("OutputFields", request.OutputFields)) zap.Any("OutputFields", request.OutputFields),
zap.Any("search_params", request.SearchParams),
zap.Uint64("travel_timestamp", travelTs),
zap.Uint64("guarantee_timestamp", guaranteeTs))
return qt.result, nil return qt.result, nil
} }
......
...@@ -2570,6 +2570,7 @@ func (dct *describeCollectionTask) Execute(ctx context.Context) error { ...@@ -2570,6 +2570,7 @@ func (dct *describeCollectionTask) Execute(ctx context.Context) error {
dct.result.CreatedTimestamp = result.CreatedTimestamp dct.result.CreatedTimestamp = result.CreatedTimestamp
dct.result.CreatedUtcTimestamp = result.CreatedUtcTimestamp dct.result.CreatedUtcTimestamp = result.CreatedUtcTimestamp
dct.result.ShardsNum = result.ShardsNum dct.result.ShardsNum = result.ShardsNum
dct.result.ConsistencyLevel = result.ConsistencyLevel
for _, field := range result.Schema.Fields { for _, field := range result.Schema.Fields {
if field.FieldID >= common.StartOfUserFieldID { if field.FieldID >= common.StartOfUserFieldID {
dct.result.Schema.Fields = append(dct.result.Schema.Fields, &schemapb.FieldSchema{ dct.result.Schema.Fields = append(dct.result.Schema.Fields, &schemapb.FieldSchema{
......
...@@ -102,7 +102,8 @@ func (t *CreateCollectionReqTask) Execute(ctx context.Context) error { ...@@ -102,7 +102,8 @@ func (t *CreateCollectionReqTask) Execute(ctx context.Context) error {
t.Req.ShardsNum = common.DefaultShardsNum t.Req.ShardsNum = common.DefaultShardsNum
} }
log.Debug("CreateCollectionReqTask Execute", zap.Any("CollectionName", t.Req.CollectionName), log.Debug("CreateCollectionReqTask Execute", zap.Any("CollectionName", t.Req.CollectionName),
zap.Any("ShardsNum", t.Req.ShardsNum)) zap.Int32("ShardsNum", t.Req.ShardsNum),
zap.String("ConsistencyLevel", t.Req.ConsistencyLevel.String()))
for idx, field := range schema.Fields { for idx, field := range schema.Fields {
field.FieldID = int64(idx + StartOfUserFieldID) field.FieldID = int64(idx + StartOfUserFieldID)
...@@ -161,6 +162,7 @@ func (t *CreateCollectionReqTask) Execute(ctx context.Context) error { ...@@ -161,6 +162,7 @@ func (t *CreateCollectionReqTask) Execute(ctx context.Context) error {
PhysicalChannelNames: chanNames, PhysicalChannelNames: chanNames,
ShardsNum: t.Req.ShardsNum, ShardsNum: t.Req.ShardsNum,
PartitionCreatedTimestamps: []uint64{0}, PartitionCreatedTimestamps: []uint64{0},
ConsistencyLevel: t.Req.ConsistencyLevel,
} }
idxInfo := make([]*etcdpb.IndexInfo, 0, 16) idxInfo := make([]*etcdpb.IndexInfo, 0, 16)
...@@ -430,6 +432,7 @@ func (t *DescribeCollectionReqTask) Execute(ctx context.Context) error { ...@@ -430,6 +432,7 @@ func (t *DescribeCollectionReqTask) Execute(ctx context.Context) error {
collInfo.ShardsNum = int32(len(collInfo.VirtualChannelNames)) collInfo.ShardsNum = int32(len(collInfo.VirtualChannelNames))
} }
t.Rsp.ShardsNum = collInfo.ShardsNum t.Rsp.ShardsNum = collInfo.ShardsNum
t.Rsp.ConsistencyLevel = collInfo.ConsistencyLevel
t.Rsp.CreatedTimestamp = collInfo.CreateTime t.Rsp.CreatedTimestamp = collInfo.CreateTime
createdPhysicalTime, _ := tsoutil.ParseHybridTs(collInfo.CreateTime) createdPhysicalTime, _ := tsoutil.ParseHybridTs(collInfo.CreateTime)
......
...@@ -396,6 +396,7 @@ class TestDeleteOperation(TestcaseBase): ...@@ -396,6 +396,7 @@ class TestDeleteOperation(TestcaseBase):
collection_w.query(expr=f'{ct.default_int64_field_name} in {[0, tmp_nb]}', collection_w.query(expr=f'{ct.default_int64_field_name} in {[0, tmp_nb]}',
check_task=CheckTasks.check_query_empty) check_task=CheckTasks.check_query_empty)
@pytest.mark.skip("enable this later using session/strong consistency")
@pytest.mark.tags(CaseLabel.L1) @pytest.mark.tags(CaseLabel.L1)
def test_delete_search(self): def test_delete_search(self):
""" """
...@@ -420,6 +421,8 @@ class TestDeleteOperation(TestcaseBase): ...@@ -420,6 +421,8 @@ class TestDeleteOperation(TestcaseBase):
# assert search result is not equal to entity # assert search result is not equal to entity
log.debug(f"Second search result ids: {search_res_2[0].ids}") log.debug(f"Second search result ids: {search_res_2[0].ids}")
inter = set(ids[:ct.default_nb // 2]).intersection(set(search_res_2[0].ids)) inter = set(ids[:ct.default_nb // 2]).intersection(set(search_res_2[0].ids))
# Using bounded staleness, we could still search the "deleted" entities,
# since the search requests arrived query nodes earlier than query nodes consume the delete requests.
assert len(inter) == 0 assert len(inter) == 0
@pytest.mark.tags(CaseLabel.L1) @pytest.mark.tags(CaseLabel.L1)
......
...@@ -502,6 +502,7 @@ class TestCollectionSearchInvalid(TestcaseBase): ...@@ -502,6 +502,7 @@ class TestCollectionSearchInvalid(TestcaseBase):
check_items={"err_code": 1, check_items={"err_code": 1,
"err_msg": "partition has been released"}) "err_msg": "partition has been released"})
@pytest.mark.skip("enable this later using session/strong consistency")
@pytest.mark.tags(CaseLabel.L1) @pytest.mark.tags(CaseLabel.L1)
def test_search_with_empty_collection(self): def test_search_with_empty_collection(self):
""" """
...@@ -535,6 +536,8 @@ class TestCollectionSearchInvalid(TestcaseBase): ...@@ -535,6 +536,8 @@ class TestCollectionSearchInvalid(TestcaseBase):
# 4. search with data inserted but not load again # 4. search with data inserted but not load again
data = cf.gen_default_dataframe_data(nb=2000) data = cf.gen_default_dataframe_data(nb=2000)
insert_res = collection_w.insert(data)[0] insert_res = collection_w.insert(data)[0]
# Using bounded staleness, maybe we cannot search the "inserted" requests,
# since the search requests arrived query nodes earlier than query nodes consume the insert requests.
collection_w.search(vectors[:default_nq], default_search_field, default_search_params, collection_w.search(vectors[:default_nq], default_search_field, default_search_params,
default_limit, default_search_exp, default_limit, default_search_exp,
guarantee_timestamp=insert_res.timestamp, guarantee_timestamp=insert_res.timestamp,
...@@ -1223,6 +1226,7 @@ class TestCollectionSearch(TestcaseBase): ...@@ -1223,6 +1226,7 @@ class TestCollectionSearch(TestcaseBase):
"limit": default_limit, "limit": default_limit,
"_async": _async}) "_async": _async})
@pytest.mark.skip("enable this later using session/strong consistency")
@pytest.mark.tags(CaseLabel.L1) @pytest.mark.tags(CaseLabel.L1)
def test_search_new_data(self, nq, dim, auto_id, _async): def test_search_new_data(self, nq, dim, auto_id, _async):
""" """
...@@ -1258,6 +1262,8 @@ class TestCollectionSearch(TestcaseBase): ...@@ -1258,6 +1262,8 @@ class TestCollectionSearch(TestcaseBase):
insert_offset=nb_old) insert_offset=nb_old)
insert_ids.extend(insert_ids_new) insert_ids.extend(insert_ids_new)
# 4. search for new data without load # 4. search for new data without load
# Using bounded staleness, maybe we could not search the "inserted" entities,
# since the search requests arrived query nodes earlier than query nodes consume the insert requests.
collection_w.search(vectors[:nq], default_search_field, collection_w.search(vectors[:nq], default_search_field,
default_search_params, limit, default_search_params, limit,
default_search_exp, _async=_async, default_search_exp, _async=_async,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册