Support multi index

Signed-off-by: neza2017 <yefu.chen@zilliz.com>
This commit is contained in:
neza2017 2021-02-02 10:09:10 +08:00 committed by yefu.chen
parent 90d471b133
commit 5de89422ed
10 changed files with 964 additions and 163 deletions

View File

@ -18,6 +18,7 @@
extern PROTOBUF_INTERNAL_EXPORT_common_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Address_common_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_common_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_KeyValuePair_common_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_etcd_5fmeta_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FieldBinlogFiles_etcd_5fmeta_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_etcd_5fmeta_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_IndexParamsInfo_etcd_5fmeta_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CollectionSchema_schema_2eproto;
namespace milvus {
namespace proto {
@ -34,6 +35,10 @@ class PartitionInfoDefaultTypeInternal {
public:
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PartitionInfo> _instance;
} _PartitionInfo_default_instance_;
class IndexParamsInfoDefaultTypeInternal {
public:
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IndexParamsInfo> _instance;
} _IndexParamsInfo_default_instance_;
class CollectionInfoDefaultTypeInternal {
public:
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CollectionInfo> _instance;
@ -76,9 +81,10 @@ static void InitDefaultsscc_info_CollectionInfo_etcd_5fmeta_2eproto() {
::milvus::proto::etcd::CollectionInfo::InitAsDefaultInstance();
}
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CollectionInfo_etcd_5fmeta_2eproto =
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_CollectionInfo_etcd_5fmeta_2eproto}, {
&scc_info_CollectionSchema_schema_2eproto.base,}};
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_CollectionInfo_etcd_5fmeta_2eproto =
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsscc_info_CollectionInfo_etcd_5fmeta_2eproto}, {
&scc_info_CollectionSchema_schema_2eproto.base,
&scc_info_IndexParamsInfo_etcd_5fmeta_2eproto.base,}};
static void InitDefaultsscc_info_CollectionMeta_etcd_5fmeta_2eproto() {
GOOGLE_PROTOBUF_VERIFY_VERSION;
@ -139,6 +145,21 @@ static void InitDefaultsscc_info_IndexInfo_etcd_5fmeta_2eproto() {
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_IndexInfo_etcd_5fmeta_2eproto}, {
&scc_info_KeyValuePair_common_2eproto.base,}};
static void InitDefaultsscc_info_IndexParamsInfo_etcd_5fmeta_2eproto() {
GOOGLE_PROTOBUF_VERIFY_VERSION;
{
void* ptr = &::milvus::proto::etcd::_IndexParamsInfo_default_instance_;
new (ptr) ::milvus::proto::etcd::IndexParamsInfo();
::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
}
::milvus::proto::etcd::IndexParamsInfo::InitAsDefaultInstance();
}
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_IndexParamsInfo_etcd_5fmeta_2eproto =
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_IndexParamsInfo_etcd_5fmeta_2eproto}, {
&scc_info_KeyValuePair_common_2eproto.base,}};
static void InitDefaultsscc_info_PartitionInfo_etcd_5fmeta_2eproto() {
GOOGLE_PROTOBUF_VERIFY_VERSION;
@ -211,7 +232,7 @@ static void InitDefaultsscc_info_TenantMeta_etcd_5fmeta_2eproto() {
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_TenantMeta_etcd_5fmeta_2eproto =
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_TenantMeta_etcd_5fmeta_2eproto}, {}};
static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_etcd_5fmeta_2eproto[10];
static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_etcd_5fmeta_2eproto[11];
static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_etcd_5fmeta_2eproto = nullptr;
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_etcd_5fmeta_2eproto = nullptr;
@ -242,6 +263,13 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_etcd_5fmeta_2eproto::offsets[]
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::PartitionInfo, partitionid_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::PartitionInfo, segmentids_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::IndexParamsInfo, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::IndexParamsInfo, filedid_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::IndexParamsInfo, index_params_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
@ -250,6 +278,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_etcd_5fmeta_2eproto::offsets[]
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, schema_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, create_time_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, partitionids_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, index_params_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::IndexInfo, _internal_metadata_),
~0u, // no _extensions_
@ -316,19 +345,21 @@ static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOB
{ 0, -1, sizeof(::milvus::proto::etcd::TenantMeta)},
{ 9, -1, sizeof(::milvus::proto::etcd::ProxyMeta)},
{ 17, -1, sizeof(::milvus::proto::etcd::PartitionInfo)},
{ 25, -1, sizeof(::milvus::proto::etcd::CollectionInfo)},
{ 34, -1, sizeof(::milvus::proto::etcd::IndexInfo)},
{ 42, -1, sizeof(::milvus::proto::etcd::SegmentIndexInfo)},
{ 51, -1, sizeof(::milvus::proto::etcd::CollectionMeta)},
{ 62, -1, sizeof(::milvus::proto::etcd::FieldBinlogFiles)},
{ 69, -1, sizeof(::milvus::proto::etcd::SegmentMeta)},
{ 84, -1, sizeof(::milvus::proto::etcd::FieldIndexMeta)},
{ 25, -1, sizeof(::milvus::proto::etcd::IndexParamsInfo)},
{ 32, -1, sizeof(::milvus::proto::etcd::CollectionInfo)},
{ 42, -1, sizeof(::milvus::proto::etcd::IndexInfo)},
{ 50, -1, sizeof(::milvus::proto::etcd::SegmentIndexInfo)},
{ 59, -1, sizeof(::milvus::proto::etcd::CollectionMeta)},
{ 70, -1, sizeof(::milvus::proto::etcd::FieldBinlogFiles)},
{ 77, -1, sizeof(::milvus::proto::etcd::SegmentMeta)},
{ 92, -1, sizeof(::milvus::proto::etcd::FieldIndexMeta)},
};
static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::milvus::proto::etcd::_TenantMeta_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::milvus::proto::etcd::_ProxyMeta_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::milvus::proto::etcd::_PartitionInfo_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::milvus::proto::etcd::_IndexParamsInfo_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::milvus::proto::etcd::_CollectionInfo_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::milvus::proto::etcd::_IndexInfo_default_instance_),
reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::milvus::proto::etcd::_SegmentIndexInfo_default_instance_),
@ -347,46 +378,50 @@ const char descriptor_table_protodef_etcd_5fmeta_2eproto[] PROTOBUF_SECTION_VARI
"ess\030\002 \001(\0132\034.milvus.proto.common.Address\022"
"\031\n\021result_channelIDs\030\003 \003(\t\"P\n\rPartitionI"
"nfo\022\026\n\016partition_name\030\001 \001(\t\022\023\n\013partition"
"ID\030\002 \001(\003\022\022\n\nsegmentIDs\030\003 \003(\003\"~\n\016Collecti"
"onInfo\022\n\n\002ID\030\001 \001(\003\0225\n\006schema\030\002 \001(\0132%.mil"
"vus.proto.schema.CollectionSchema\022\023\n\013cre"
"ate_time\030\003 \001(\004\022\024\n\014partitionIDs\030\004 \003(\003\"i\n\t"
"IndexInfo\022\022\n\nindex_name\030\001 \001(\t\022\017\n\007indexID"
"\030\002 \001(\003\0227\n\014index_params\030\003 \003(\0132!.milvus.pr"
"oto.common.KeyValuePair\"X\n\020SegmentIndexI"
"nfo\022\021\n\tsegmentID\030\001 \001(\003\022\017\n\007fieldID\030\002 \001(\003\022"
"\017\n\007indexID\030\003 \001(\003\022\017\n\007buildID\030\004 \001(\003\"\252\001\n\016Co"
"llectionMeta\022\n\n\002ID\030\001 \001(\003\0225\n\006schema\030\002 \001(\013"
"2%.milvus.proto.schema.CollectionSchema\022"
"\023\n\013create_time\030\003 \001(\004\022\022\n\nsegmentIDs\030\004 \003(\003"
"\022\026\n\016partition_tags\030\005 \003(\t\022\024\n\014partitionIDs"
"\030\006 \003(\003\"9\n\020FieldBinlogFiles\022\017\n\007fieldID\030\001 "
"\001(\003\022\024\n\014binlog_files\030\002 \003(\t\"\204\002\n\013SegmentMet"
"a\022\021\n\tsegmentID\030\001 \001(\003\022\024\n\014collectionID\030\002 \001"
"(\003\022\025\n\rpartition_tag\030\003 \001(\t\022\025\n\rchannel_sta"
"rt\030\004 \001(\005\022\023\n\013channel_end\030\005 \001(\005\022\021\n\topen_ti"
"me\030\006 \001(\004\022\022\n\nclose_time\030\007 \001(\004\022\020\n\010num_rows"
"\030\010 \001(\003\022\020\n\010mem_size\030\t \001(\003\022>\n\021binlog_file_"
"paths\030\n \003(\0132#.milvus.proto.etcd.FieldBin"
"logFiles\"\310\001\n\016FieldIndexMeta\022\021\n\tsegmentID"
"\030\001 \001(\003\022\017\n\007fieldID\030\002 \001(\003\022\017\n\007indexID\030\003 \001(\003"
"\0227\n\014index_params\030\004 \003(\0132!.milvus.proto.co"
"mmon.KeyValuePair\022.\n\005state\030\005 \001(\0162\037.milvu"
"s.proto.common.IndexState\022\030\n\020index_file_"
"paths\030\006 \003(\tB@Z>github.com/zilliztech/mil"
"vus-distributed/internal/proto/etcdpbb\006p"
"roto3"
"ID\030\002 \001(\003\022\022\n\nsegmentIDs\030\003 \003(\003\"[\n\017IndexPar"
"amsInfo\022\017\n\007filedID\030\001 \001(\003\0227\n\014index_params"
"\030\002 \003(\0132!.milvus.proto.common.KeyValuePai"
"r\"\270\001\n\016CollectionInfo\022\n\n\002ID\030\001 \001(\003\0225\n\006sche"
"ma\030\002 \001(\0132%.milvus.proto.schema.Collectio"
"nSchema\022\023\n\013create_time\030\003 \001(\004\022\024\n\014partitio"
"nIDs\030\004 \003(\003\0228\n\014index_params\030\005 \003(\0132\".milvu"
"s.proto.etcd.IndexParamsInfo\"i\n\tIndexInf"
"o\022\022\n\nindex_name\030\001 \001(\t\022\017\n\007indexID\030\002 \001(\003\0227"
"\n\014index_params\030\003 \003(\0132!.milvus.proto.comm"
"on.KeyValuePair\"X\n\020SegmentIndexInfo\022\021\n\ts"
"egmentID\030\001 \001(\003\022\017\n\007fieldID\030\002 \001(\003\022\017\n\007index"
"ID\030\003 \001(\003\022\017\n\007buildID\030\004 \001(\003\"\252\001\n\016Collection"
"Meta\022\n\n\002ID\030\001 \001(\003\0225\n\006schema\030\002 \001(\0132%.milvu"
"s.proto.schema.CollectionSchema\022\023\n\013creat"
"e_time\030\003 \001(\004\022\022\n\nsegmentIDs\030\004 \003(\003\022\026\n\016part"
"ition_tags\030\005 \003(\t\022\024\n\014partitionIDs\030\006 \003(\003\"9"
"\n\020FieldBinlogFiles\022\017\n\007fieldID\030\001 \001(\003\022\024\n\014b"
"inlog_files\030\002 \003(\t\"\204\002\n\013SegmentMeta\022\021\n\tseg"
"mentID\030\001 \001(\003\022\024\n\014collectionID\030\002 \001(\003\022\025\n\rpa"
"rtition_tag\030\003 \001(\t\022\025\n\rchannel_start\030\004 \001(\005"
"\022\023\n\013channel_end\030\005 \001(\005\022\021\n\topen_time\030\006 \001(\004"
"\022\022\n\nclose_time\030\007 \001(\004\022\020\n\010num_rows\030\010 \001(\003\022\020"
"\n\010mem_size\030\t \001(\003\022>\n\021binlog_file_paths\030\n "
"\003(\0132#.milvus.proto.etcd.FieldBinlogFiles"
"\"\310\001\n\016FieldIndexMeta\022\021\n\tsegmentID\030\001 \001(\003\022\017"
"\n\007fieldID\030\002 \001(\003\022\017\n\007indexID\030\003 \001(\003\0227\n\014inde"
"x_params\030\004 \003(\0132!.milvus.proto.common.Key"
"ValuePair\022.\n\005state\030\005 \001(\0162\037.milvus.proto."
"common.IndexState\022\030\n\020index_file_paths\030\006 "
"\003(\tB@Z>github.com/zilliztech/milvus-dist"
"ributed/internal/proto/etcdpbb\006proto3"
;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_etcd_5fmeta_2eproto_deps[2] = {
&::descriptor_table_common_2eproto,
&::descriptor_table_schema_2eproto,
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_etcd_5fmeta_2eproto_sccs[10] = {
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_etcd_5fmeta_2eproto_sccs[11] = {
&scc_info_CollectionInfo_etcd_5fmeta_2eproto.base,
&scc_info_CollectionMeta_etcd_5fmeta_2eproto.base,
&scc_info_FieldBinlogFiles_etcd_5fmeta_2eproto.base,
&scc_info_FieldIndexMeta_etcd_5fmeta_2eproto.base,
&scc_info_IndexInfo_etcd_5fmeta_2eproto.base,
&scc_info_IndexParamsInfo_etcd_5fmeta_2eproto.base,
&scc_info_PartitionInfo_etcd_5fmeta_2eproto.base,
&scc_info_ProxyMeta_etcd_5fmeta_2eproto.base,
&scc_info_SegmentIndexInfo_etcd_5fmeta_2eproto.base,
@ -396,10 +431,10 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_etc
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_etcd_5fmeta_2eproto_once;
static bool descriptor_table_etcd_5fmeta_2eproto_initialized = false;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_etcd_5fmeta_2eproto = {
&descriptor_table_etcd_5fmeta_2eproto_initialized, descriptor_table_protodef_etcd_5fmeta_2eproto, "etcd_meta.proto", 1445,
&descriptor_table_etcd_5fmeta_2eproto_once, descriptor_table_etcd_5fmeta_2eproto_sccs, descriptor_table_etcd_5fmeta_2eproto_deps, 10, 2,
&descriptor_table_etcd_5fmeta_2eproto_initialized, descriptor_table_protodef_etcd_5fmeta_2eproto, "etcd_meta.proto", 1597,
&descriptor_table_etcd_5fmeta_2eproto_once, descriptor_table_etcd_5fmeta_2eproto_sccs, descriptor_table_etcd_5fmeta_2eproto_deps, 11, 2,
schemas, file_default_instances, TableStruct_etcd_5fmeta_2eproto::offsets,
file_level_metadata_etcd_5fmeta_2eproto, 10, file_level_enum_descriptors_etcd_5fmeta_2eproto, file_level_service_descriptors_etcd_5fmeta_2eproto,
file_level_metadata_etcd_5fmeta_2eproto, 11, file_level_enum_descriptors_etcd_5fmeta_2eproto, file_level_service_descriptors_etcd_5fmeta_2eproto,
};
// Force running AddDescriptors() at dynamic initialization time.
@ -1587,6 +1622,314 @@ void PartitionInfo::InternalSwap(PartitionInfo* other) {
}
// ===================================================================
void IndexParamsInfo::InitAsDefaultInstance() {
}
class IndexParamsInfo::_Internal {
public:
};
void IndexParamsInfo::clear_index_params() {
index_params_.Clear();
}
IndexParamsInfo::IndexParamsInfo()
: ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
SharedCtor();
// @@protoc_insertion_point(constructor:milvus.proto.etcd.IndexParamsInfo)
}
IndexParamsInfo::IndexParamsInfo(const IndexParamsInfo& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
_internal_metadata_(nullptr),
index_params_(from.index_params_) {
_internal_metadata_.MergeFrom(from._internal_metadata_);
filedid_ = from.filedid_;
// @@protoc_insertion_point(copy_constructor:milvus.proto.etcd.IndexParamsInfo)
}
void IndexParamsInfo::SharedCtor() {
::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_IndexParamsInfo_etcd_5fmeta_2eproto.base);
filedid_ = PROTOBUF_LONGLONG(0);
}
IndexParamsInfo::~IndexParamsInfo() {
// @@protoc_insertion_point(destructor:milvus.proto.etcd.IndexParamsInfo)
SharedDtor();
}
void IndexParamsInfo::SharedDtor() {
}
void IndexParamsInfo::SetCachedSize(int size) const {
_cached_size_.Set(size);
}
const IndexParamsInfo& IndexParamsInfo::default_instance() {
::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IndexParamsInfo_etcd_5fmeta_2eproto.base);
return *internal_default_instance();
}
void IndexParamsInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:milvus.proto.etcd.IndexParamsInfo)
::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
index_params_.Clear();
filedid_ = PROTOBUF_LONGLONG(0);
_internal_metadata_.Clear();
}
#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* IndexParamsInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
while (!ctx->Done(&ptr)) {
::PROTOBUF_NAMESPACE_ID::uint32 tag;
ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
CHK_(ptr);
switch (tag >> 3) {
// int64 filedID = 1;
case 1:
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
filedid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
CHK_(ptr);
} else goto handle_unusual;
continue;
// repeated .milvus.proto.common.KeyValuePair index_params = 2;
case 2:
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
ptr -= 1;
do {
ptr += 1;
ptr = ctx->ParseMessage(add_index_params(), ptr);
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 18);
} else goto handle_unusual;
continue;
default: {
handle_unusual:
if ((tag & 7) == 4 || tag == 0) {
ctx->SetLastTag(tag);
goto success;
}
ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
CHK_(ptr != nullptr);
continue;
}
} // switch
} // while
success:
return ptr;
failure:
ptr = nullptr;
goto success;
#undef CHK_
}
#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool IndexParamsInfo::MergePartialFromCodedStream(
::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
::PROTOBUF_NAMESPACE_ID::uint32 tag;
// @@protoc_insertion_point(parse_start:milvus.proto.etcd.IndexParamsInfo)
for (;;) {
::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
tag = p.first;
if (!p.second) goto handle_unusual;
switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
// int64 filedID = 1;
case 1: {
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (8 & 0xFF)) {
DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
::PROTOBUF_NAMESPACE_ID::int64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64>(
input, &filedid_)));
} else {
goto handle_unusual;
}
break;
}
// repeated .milvus.proto.common.KeyValuePair index_params = 2;
case 2: {
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
input, add_index_params()));
} else {
goto handle_unusual;
}
break;
}
default: {
handle_unusual:
if (tag == 0) {
goto success;
}
DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
input, tag, _internal_metadata_.mutable_unknown_fields()));
break;
}
}
}
success:
// @@protoc_insertion_point(parse_success:milvus.proto.etcd.IndexParamsInfo)
return true;
failure:
// @@protoc_insertion_point(parse_failure:milvus.proto.etcd.IndexParamsInfo)
return false;
#undef DO_
}
#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
void IndexParamsInfo::SerializeWithCachedSizes(
::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
// @@protoc_insertion_point(serialize_start:milvus.proto.etcd.IndexParamsInfo)
::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
(void) cached_has_bits;
// int64 filedID = 1;
if (this->filedid() != 0) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64(1, this->filedid(), output);
}
// repeated .milvus.proto.common.KeyValuePair index_params = 2;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->index_params_size()); i < n; i++) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
2,
this->index_params(static_cast<int>(i)),
output);
}
if (_internal_metadata_.have_unknown_fields()) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
_internal_metadata_.unknown_fields(), output);
}
// @@protoc_insertion_point(serialize_end:milvus.proto.etcd.IndexParamsInfo)
}
::PROTOBUF_NAMESPACE_ID::uint8* IndexParamsInfo::InternalSerializeWithCachedSizesToArray(
::PROTOBUF_NAMESPACE_ID::uint8* target) const {
// @@protoc_insertion_point(serialize_to_array_start:milvus.proto.etcd.IndexParamsInfo)
::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
(void) cached_has_bits;
// int64 filedID = 1;
if (this->filedid() != 0) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->filedid(), target);
}
// repeated .milvus.proto.common.KeyValuePair index_params = 2;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->index_params_size()); i < n; i++) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessageToArray(
2, this->index_params(static_cast<int>(i)), target);
}
if (_internal_metadata_.have_unknown_fields()) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields(), target);
}
// @@protoc_insertion_point(serialize_to_array_end:milvus.proto.etcd.IndexParamsInfo)
return target;
}
size_t IndexParamsInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:milvus.proto.etcd.IndexParamsInfo)
size_t total_size = 0;
if (_internal_metadata_.have_unknown_fields()) {
total_size +=
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
_internal_metadata_.unknown_fields());
}
::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// repeated .milvus.proto.common.KeyValuePair index_params = 2;
{
unsigned int count = static_cast<unsigned int>(this->index_params_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
this->index_params(static_cast<int>(i)));
}
}
// int64 filedID = 1;
if (this->filedid() != 0) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
this->filedid());
}
int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
SetCachedSize(cached_size);
return total_size;
}
void IndexParamsInfo::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:milvus.proto.etcd.IndexParamsInfo)
GOOGLE_DCHECK_NE(&from, this);
const IndexParamsInfo* source =
::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IndexParamsInfo>(
&from);
if (source == nullptr) {
// @@protoc_insertion_point(generalized_merge_from_cast_fail:milvus.proto.etcd.IndexParamsInfo)
::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
} else {
// @@protoc_insertion_point(generalized_merge_from_cast_success:milvus.proto.etcd.IndexParamsInfo)
MergeFrom(*source);
}
}
void IndexParamsInfo::MergeFrom(const IndexParamsInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:milvus.proto.etcd.IndexParamsInfo)
GOOGLE_DCHECK_NE(&from, this);
_internal_metadata_.MergeFrom(from._internal_metadata_);
::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
(void) cached_has_bits;
index_params_.MergeFrom(from.index_params_);
if (from.filedid() != 0) {
set_filedid(from.filedid());
}
}
void IndexParamsInfo::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:milvus.proto.etcd.IndexParamsInfo)
if (&from == this) return;
Clear();
MergeFrom(from);
}
void IndexParamsInfo::CopyFrom(const IndexParamsInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:milvus.proto.etcd.IndexParamsInfo)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool IndexParamsInfo::IsInitialized() const {
return true;
}
void IndexParamsInfo::InternalSwap(IndexParamsInfo* other) {
using std::swap;
_internal_metadata_.Swap(&other->_internal_metadata_);
CastToBase(&index_params_)->InternalSwap(CastToBase(&other->index_params_));
swap(filedid_, other->filedid_);
}
::PROTOBUF_NAMESPACE_ID::Metadata IndexParamsInfo::GetMetadata() const {
return GetMetadataStatic();
}
// ===================================================================
void CollectionInfo::InitAsDefaultInstance() {
@ -1616,7 +1959,8 @@ CollectionInfo::CollectionInfo()
CollectionInfo::CollectionInfo(const CollectionInfo& from)
: ::PROTOBUF_NAMESPACE_ID::Message(),
_internal_metadata_(nullptr),
partitionids_(from.partitionids_) {
partitionids_(from.partitionids_),
index_params_(from.index_params_) {
_internal_metadata_.MergeFrom(from._internal_metadata_);
if (from.has_schema()) {
schema_ = new ::milvus::proto::schema::CollectionSchema(*from.schema_);
@ -1661,6 +2005,7 @@ void CollectionInfo::Clear() {
(void) cached_has_bits;
partitionids_.Clear();
index_params_.Clear();
if (GetArenaNoVirtual() == nullptr && schema_ != nullptr) {
delete schema_;
}
@ -1710,6 +2055,18 @@ const char* CollectionInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE
CHK_(ptr);
} else goto handle_unusual;
continue;
// repeated .milvus.proto.etcd.IndexParamsInfo index_params = 5;
case 5:
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
ptr -= 1;
do {
ptr += 1;
ptr = ctx->ParseMessage(add_index_params(), ptr);
CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 42);
} else goto handle_unusual;
continue;
default: {
handle_unusual:
if ((tag & 7) == 4 || tag == 0) {
@ -1793,6 +2150,17 @@ bool CollectionInfo::MergePartialFromCodedStream(
break;
}
// repeated .milvus.proto.etcd.IndexParamsInfo index_params = 5;
case 5: {
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
input, add_index_params()));
} else {
goto handle_unusual;
}
break;
}
default: {
handle_unusual:
if (tag == 0) {
@ -1847,6 +2215,15 @@ void CollectionInfo::SerializeWithCachedSizes(
this->partitionids(i), output);
}
// repeated .milvus.proto.etcd.IndexParamsInfo index_params = 5;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->index_params_size()); i < n; i++) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
5,
this->index_params(static_cast<int>(i)),
output);
}
if (_internal_metadata_.have_unknown_fields()) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
_internal_metadata_.unknown_fields(), output);
@ -1890,6 +2267,14 @@ void CollectionInfo::SerializeWithCachedSizes(
WriteInt64NoTagToArray(this->partitionids_, target);
}
// repeated .milvus.proto.etcd.IndexParamsInfo index_params = 5;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->index_params_size()); i < n; i++) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessageToArray(
5, this->index_params(static_cast<int>(i)), target);
}
if (_internal_metadata_.have_unknown_fields()) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields(), target);
@ -1926,6 +2311,17 @@ size_t CollectionInfo::ByteSizeLong() const {
total_size += data_size;
}
// repeated .milvus.proto.etcd.IndexParamsInfo index_params = 5;
{
unsigned int count = static_cast<unsigned int>(this->index_params_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
this->index_params(static_cast<int>(i)));
}
}
// .milvus.proto.schema.CollectionSchema schema = 2;
if (this->has_schema()) {
total_size += 1 +
@ -1975,6 +2371,7 @@ void CollectionInfo::MergeFrom(const CollectionInfo& from) {
(void) cached_has_bits;
partitionids_.MergeFrom(from.partitionids_);
index_params_.MergeFrom(from.index_params_);
if (from.has_schema()) {
mutable_schema()->::milvus::proto::schema::CollectionSchema::MergeFrom(from.schema());
}
@ -2008,6 +2405,7 @@ void CollectionInfo::InternalSwap(CollectionInfo* other) {
using std::swap;
_internal_metadata_.Swap(&other->_internal_metadata_);
partitionids_.InternalSwap(&other->partitionids_);
CastToBase(&index_params_)->InternalSwap(CastToBase(&other->index_params_));
swap(schema_, other->schema_);
swap(id_, other->id_);
swap(create_time_, other->create_time_);
@ -4812,6 +5210,9 @@ template<> PROTOBUF_NOINLINE ::milvus::proto::etcd::ProxyMeta* Arena::CreateMayb
template<> PROTOBUF_NOINLINE ::milvus::proto::etcd::PartitionInfo* Arena::CreateMaybeMessage< ::milvus::proto::etcd::PartitionInfo >(Arena* arena) {
return Arena::CreateInternal< ::milvus::proto::etcd::PartitionInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::milvus::proto::etcd::IndexParamsInfo* Arena::CreateMaybeMessage< ::milvus::proto::etcd::IndexParamsInfo >(Arena* arena) {
return Arena::CreateInternal< ::milvus::proto::etcd::IndexParamsInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::milvus::proto::etcd::CollectionInfo* Arena::CreateMaybeMessage< ::milvus::proto::etcd::CollectionInfo >(Arena* arena) {
return Arena::CreateInternal< ::milvus::proto::etcd::CollectionInfo >(arena);
}

View File

@ -49,7 +49,7 @@ struct TableStruct_etcd_5fmeta_2eproto {
PROTOBUF_SECTION_VARIABLE(protodesc_cold);
static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
PROTOBUF_SECTION_VARIABLE(protodesc_cold);
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[10]
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[11]
PROTOBUF_SECTION_VARIABLE(protodesc_cold);
static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
@ -74,6 +74,9 @@ extern FieldIndexMetaDefaultTypeInternal _FieldIndexMeta_default_instance_;
class IndexInfo;
class IndexInfoDefaultTypeInternal;
extern IndexInfoDefaultTypeInternal _IndexInfo_default_instance_;
class IndexParamsInfo;
class IndexParamsInfoDefaultTypeInternal;
extern IndexParamsInfoDefaultTypeInternal _IndexParamsInfo_default_instance_;
class PartitionInfo;
class PartitionInfoDefaultTypeInternal;
extern PartitionInfoDefaultTypeInternal _PartitionInfo_default_instance_;
@ -98,6 +101,7 @@ template<> ::milvus::proto::etcd::CollectionMeta* Arena::CreateMaybeMessage<::mi
template<> ::milvus::proto::etcd::FieldBinlogFiles* Arena::CreateMaybeMessage<::milvus::proto::etcd::FieldBinlogFiles>(Arena*);
template<> ::milvus::proto::etcd::FieldIndexMeta* Arena::CreateMaybeMessage<::milvus::proto::etcd::FieldIndexMeta>(Arena*);
template<> ::milvus::proto::etcd::IndexInfo* Arena::CreateMaybeMessage<::milvus::proto::etcd::IndexInfo>(Arena*);
template<> ::milvus::proto::etcd::IndexParamsInfo* Arena::CreateMaybeMessage<::milvus::proto::etcd::IndexParamsInfo>(Arena*);
template<> ::milvus::proto::etcd::PartitionInfo* Arena::CreateMaybeMessage<::milvus::proto::etcd::PartitionInfo>(Arena*);
template<> ::milvus::proto::etcd::ProxyMeta* Arena::CreateMaybeMessage<::milvus::proto::etcd::ProxyMeta>(Arena*);
template<> ::milvus::proto::etcd::SegmentIndexInfo* Arena::CreateMaybeMessage<::milvus::proto::etcd::SegmentIndexInfo>(Arena*);
@ -598,6 +602,150 @@ class PartitionInfo :
};
// -------------------------------------------------------------------
class IndexParamsInfo :
public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:milvus.proto.etcd.IndexParamsInfo) */ {
public:
IndexParamsInfo();
virtual ~IndexParamsInfo();
IndexParamsInfo(const IndexParamsInfo& from);
IndexParamsInfo(IndexParamsInfo&& from) noexcept
: IndexParamsInfo() {
*this = ::std::move(from);
}
inline IndexParamsInfo& operator=(const IndexParamsInfo& from) {
CopyFrom(from);
return *this;
}
inline IndexParamsInfo& operator=(IndexParamsInfo&& from) noexcept {
if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
if (this != &from) InternalSwap(&from);
} else {
CopyFrom(from);
}
return *this;
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
return GetDescriptor();
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
return GetMetadataStatic().descriptor;
}
static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
return GetMetadataStatic().reflection;
}
static const IndexParamsInfo& default_instance();
static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
static inline const IndexParamsInfo* internal_default_instance() {
return reinterpret_cast<const IndexParamsInfo*>(
&_IndexParamsInfo_default_instance_);
}
static constexpr int kIndexInFileMessages =
3;
friend void swap(IndexParamsInfo& a, IndexParamsInfo& b) {
a.Swap(&b);
}
inline void Swap(IndexParamsInfo* other) {
if (other == this) return;
InternalSwap(other);
}
// implements Message ----------------------------------------------
inline IndexParamsInfo* New() const final {
return CreateMaybeMessage<IndexParamsInfo>(nullptr);
}
IndexParamsInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
return CreateMaybeMessage<IndexParamsInfo>(arena);
}
void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
void CopyFrom(const IndexParamsInfo& from);
void MergeFrom(const IndexParamsInfo& from);
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
bool IsInitialized() const final;
size_t ByteSizeLong() const final;
#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
#else
bool MergePartialFromCodedStream(
::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
void SerializeWithCachedSizes(
::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
int GetCachedSize() const final { return _cached_size_.Get(); }
private:
inline void SharedCtor();
inline void SharedDtor();
void SetCachedSize(int size) const final;
void InternalSwap(IndexParamsInfo* other);
friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
return "milvus.proto.etcd.IndexParamsInfo";
}
private:
inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
return nullptr;
}
inline void* MaybeArenaPtr() const {
return nullptr;
}
public:
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
private:
static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_etcd_5fmeta_2eproto);
return ::descriptor_table_etcd_5fmeta_2eproto.file_level_metadata[kIndexInFileMessages];
}
public:
// nested types ----------------------------------------------------
// accessors -------------------------------------------------------
enum : int {
kIndexParamsFieldNumber = 2,
kFiledIDFieldNumber = 1,
};
// repeated .milvus.proto.common.KeyValuePair index_params = 2;
int index_params_size() const;
void clear_index_params();
::milvus::proto::common::KeyValuePair* mutable_index_params(int index);
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair >*
mutable_index_params();
const ::milvus::proto::common::KeyValuePair& index_params(int index) const;
::milvus::proto::common::KeyValuePair* add_index_params();
const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair >&
index_params() const;
// int64 filedID = 1;
void clear_filedid();
::PROTOBUF_NAMESPACE_ID::int64 filedid() const;
void set_filedid(::PROTOBUF_NAMESPACE_ID::int64 value);
// @@protoc_insertion_point(class_scope:milvus.proto.etcd.IndexParamsInfo)
private:
class _Internal;
::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair > index_params_;
::PROTOBUF_NAMESPACE_ID::int64 filedid_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
friend struct ::TableStruct_etcd_5fmeta_2eproto;
};
// -------------------------------------------------------------------
class CollectionInfo :
public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:milvus.proto.etcd.CollectionInfo) */ {
public:
@ -640,7 +788,7 @@ class CollectionInfo :
&_CollectionInfo_default_instance_);
}
static constexpr int kIndexInFileMessages =
3;
4;
friend void swap(CollectionInfo& a, CollectionInfo& b) {
a.Swap(&b);
@ -712,6 +860,7 @@ class CollectionInfo :
enum : int {
kPartitionIDsFieldNumber = 4,
kIndexParamsFieldNumber = 5,
kSchemaFieldNumber = 2,
kIDFieldNumber = 1,
kCreateTimeFieldNumber = 3,
@ -727,6 +876,17 @@ class CollectionInfo :
::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 >*
mutable_partitionids();
// repeated .milvus.proto.etcd.IndexParamsInfo index_params = 5;
int index_params_size() const;
void clear_index_params();
::milvus::proto::etcd::IndexParamsInfo* mutable_index_params(int index);
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::etcd::IndexParamsInfo >*
mutable_index_params();
const ::milvus::proto::etcd::IndexParamsInfo& index_params(int index) const;
::milvus::proto::etcd::IndexParamsInfo* add_index_params();
const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::etcd::IndexParamsInfo >&
index_params() const;
// .milvus.proto.schema.CollectionSchema schema = 2;
bool has_schema() const;
void clear_schema();
@ -752,6 +912,7 @@ class CollectionInfo :
::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 > partitionids_;
mutable std::atomic<int> _partitionids_cached_byte_size_;
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::etcd::IndexParamsInfo > index_params_;
::milvus::proto::schema::CollectionSchema* schema_;
::PROTOBUF_NAMESPACE_ID::int64 id_;
::PROTOBUF_NAMESPACE_ID::uint64 create_time_;
@ -802,7 +963,7 @@ class IndexInfo :
&_IndexInfo_default_instance_);
}
static constexpr int kIndexInFileMessages =
4;
5;
friend void swap(IndexInfo& a, IndexInfo& b) {
a.Swap(&b);
@ -959,7 +1120,7 @@ class SegmentIndexInfo :
&_SegmentIndexInfo_default_instance_);
}
static constexpr int kIndexInFileMessages =
5;
6;
friend void swap(SegmentIndexInfo& a, SegmentIndexInfo& b) {
a.Swap(&b);
@ -1111,7 +1272,7 @@ class CollectionMeta :
&_CollectionMeta_default_instance_);
}
static constexpr int kIndexInFileMessages =
6;
7;
friend void swap(CollectionMeta& a, CollectionMeta& b) {
a.Swap(&b);
@ -1306,7 +1467,7 @@ class FieldBinlogFiles :
&_FieldBinlogFiles_default_instance_);
}
static constexpr int kIndexInFileMessages =
7;
8;
friend void swap(FieldBinlogFiles& a, FieldBinlogFiles& b) {
a.Swap(&b);
@ -1456,7 +1617,7 @@ class SegmentMeta :
&_SegmentMeta_default_instance_);
}
static constexpr int kIndexInFileMessages =
8;
9;
friend void swap(SegmentMeta& a, SegmentMeta& b) {
a.Swap(&b);
@ -1662,7 +1823,7 @@ class FieldIndexMeta :
&_FieldIndexMeta_default_instance_);
}
static constexpr int kIndexInFileMessages =
9;
10;
friend void swap(FieldIndexMeta& a, FieldIndexMeta& b) {
a.Swap(&b);
@ -2186,6 +2347,51 @@ PartitionInfo::mutable_segmentids() {
// -------------------------------------------------------------------
// IndexParamsInfo
// int64 filedID = 1;
inline void IndexParamsInfo::clear_filedid() {
filedid_ = PROTOBUF_LONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::int64 IndexParamsInfo::filedid() const {
// @@protoc_insertion_point(field_get:milvus.proto.etcd.IndexParamsInfo.filedID)
return filedid_;
}
inline void IndexParamsInfo::set_filedid(::PROTOBUF_NAMESPACE_ID::int64 value) {
filedid_ = value;
// @@protoc_insertion_point(field_set:milvus.proto.etcd.IndexParamsInfo.filedID)
}
// repeated .milvus.proto.common.KeyValuePair index_params = 2;
inline int IndexParamsInfo::index_params_size() const {
return index_params_.size();
}
inline ::milvus::proto::common::KeyValuePair* IndexParamsInfo::mutable_index_params(int index) {
// @@protoc_insertion_point(field_mutable:milvus.proto.etcd.IndexParamsInfo.index_params)
return index_params_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair >*
IndexParamsInfo::mutable_index_params() {
// @@protoc_insertion_point(field_mutable_list:milvus.proto.etcd.IndexParamsInfo.index_params)
return &index_params_;
}
inline const ::milvus::proto::common::KeyValuePair& IndexParamsInfo::index_params(int index) const {
// @@protoc_insertion_point(field_get:milvus.proto.etcd.IndexParamsInfo.index_params)
return index_params_.Get(index);
}
inline ::milvus::proto::common::KeyValuePair* IndexParamsInfo::add_index_params() {
// @@protoc_insertion_point(field_add:milvus.proto.etcd.IndexParamsInfo.index_params)
return index_params_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair >&
IndexParamsInfo::index_params() const {
// @@protoc_insertion_point(field_list:milvus.proto.etcd.IndexParamsInfo.index_params)
return index_params_;
}
// -------------------------------------------------------------------
// CollectionInfo
// int64 ID = 1;
@ -2291,6 +2497,36 @@ CollectionInfo::mutable_partitionids() {
return &partitionids_;
}
// repeated .milvus.proto.etcd.IndexParamsInfo index_params = 5;
inline int CollectionInfo::index_params_size() const {
return index_params_.size();
}
inline void CollectionInfo::clear_index_params() {
index_params_.Clear();
}
inline ::milvus::proto::etcd::IndexParamsInfo* CollectionInfo::mutable_index_params(int index) {
// @@protoc_insertion_point(field_mutable:milvus.proto.etcd.CollectionInfo.index_params)
return index_params_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::etcd::IndexParamsInfo >*
CollectionInfo::mutable_index_params() {
// @@protoc_insertion_point(field_mutable_list:milvus.proto.etcd.CollectionInfo.index_params)
return &index_params_;
}
inline const ::milvus::proto::etcd::IndexParamsInfo& CollectionInfo::index_params(int index) const {
// @@protoc_insertion_point(field_get:milvus.proto.etcd.CollectionInfo.index_params)
return index_params_.Get(index);
}
inline ::milvus::proto::etcd::IndexParamsInfo* CollectionInfo::add_index_params() {
// @@protoc_insertion_point(field_add:milvus.proto.etcd.CollectionInfo.index_params)
return index_params_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::etcd::IndexParamsInfo >&
CollectionInfo::index_params() const {
// @@protoc_insertion_point(field_list:milvus.proto.etcd.CollectionInfo.index_params)
return index_params_;
}
// -------------------------------------------------------------------
// IndexInfo
@ -3102,6 +3338,8 @@ FieldIndexMeta::mutable_index_file_paths() {
// -------------------------------------------------------------------
// -------------------------------------------------------------------
// @@protoc_insertion_point(namespace_scope)

View File

@ -136,7 +136,12 @@ func TestGrpcService(t *testing.T) {
Description: "vector",
DataType: schemapb.DataType_VECTOR_FLOAT,
TypeParams: nil,
IndexParams: nil,
IndexParams: []*commonpb.KeyValuePair{
{
Key: "ik1",
Value: "iv1",
},
},
},
},
}
@ -403,11 +408,23 @@ func TestGrpcService(t *testing.T) {
DbName: "",
CollectionName: "testColl",
FieldName: "vector",
ExtraParams: nil,
ExtraParams: []*commonpb.KeyValuePair{
{
Key: "ik1",
Value: "iv1",
},
},
}
collMeta, err := core.MetaTable.GetCollectionByName("testColl")
assert.Nil(t, err)
assert.Equal(t, len(collMeta.IndexParams), 1)
rsp, err := cli.CreateIndex(req)
assert.Nil(t, err)
assert.Equal(t, rsp.ErrorCode, commonpb.ErrorCode_SUCCESS)
collMeta, err = core.MetaTable.GetCollectionByName("testColl")
assert.Nil(t, err)
assert.Equal(t, len(collMeta.IndexParams), 1)
binlogLock.Lock()
defer binlogLock.Unlock()
assert.Equal(t, 3, len(binlogPathArray))
@ -496,7 +513,7 @@ func TestGrpcService(t *testing.T) {
assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_SUCCESS)
assert.Equal(t, len(rsp.IndexDescriptions), 2)
assert.Equal(t, rsp.IndexDescriptions[0].IndexName, cms.Params.DefaultIndexName)
assert.Equal(t, rsp.IndexDescriptions[1].IndexName, "index_100")
assert.Equal(t, rsp.IndexDescriptions[1].IndexName, "index_field_100_0")
})

View File

@ -5,7 +5,6 @@ import (
"fmt"
"log"
"math/rand"
"strconv"
"sync"
"sync/atomic"
"time"
@ -359,19 +358,22 @@ func (c *Core) startSegmentFlushCompletedLoop() {
if !ok {
log.Printf("data node segment flush completed chan has colsed, exit loop")
}
fields, err := c.MetaTable.GetSegmentVectorFields(seg)
coll, err := c.MetaTable.GetCollectionBySegmentID(seg)
if err != nil {
log.Printf("GetSegmentVectorFields, error = %s ", err.Error())
log.Printf("GetCollectionBySegmentID, error = %s ", err.Error())
}
for _, f := range fields {
t := &CreateIndexTask{
core: c,
segmentID: seg,
indexName: "index_" + strconv.FormatInt(f.FieldID, 10),
fieldSchema: f,
indexParams: nil,
for i, f := range coll.IndexParams {
fieldSch, err := GetFieldSchemaByID(coll, f.FiledID)
if err == nil {
t := &CreateIndexTask{
core: c,
segmentID: seg,
indexName: fmt.Sprintf("index_field_%d_%d", f.FiledID, i),
fieldSchema: fieldSch,
indexParams: nil,
}
c.indexTaskQueue <- t
}
c.indexTaskQueue <- t
}
}
}

View File

@ -220,7 +220,12 @@ func TestMasterService(t *testing.T) {
Description: "vector",
DataType: schemapb.DataType_VECTOR_FLOAT,
TypeParams: nil,
IndexParams: nil,
IndexParams: []*commonpb.KeyValuePair{
{
Key: "ik1",
Value: "iv1",
},
},
},
},
}
@ -511,8 +516,17 @@ func TestMasterService(t *testing.T) {
DbName: "",
CollectionName: "testColl",
FieldName: "vector",
ExtraParams: nil,
ExtraParams: []*commonpb.KeyValuePair{
{
Key: "ik2",
Value: "iv2",
},
},
}
collMeta, err := core.MetaTable.GetCollectionByName("testColl")
assert.Nil(t, err)
assert.Equal(t, len(collMeta.IndexParams), 1)
rsp, err := core.CreateIndex(req)
assert.Nil(t, err)
assert.Equal(t, rsp.ErrorCode, commonpb.ErrorCode_SUCCESS)
@ -520,6 +534,9 @@ func TestMasterService(t *testing.T) {
files := im.getFileArray()
assert.Equal(t, 3, len(files))
assert.ElementsMatch(t, files, []string{"file0-100", "file1-100", "file2-100"})
collMeta, err = core.MetaTable.GetCollectionByName("testColl")
assert.Nil(t, err)
assert.Equal(t, len(collMeta.IndexParams), 2)
req.FieldName = "no field"
rsp, err = core.CreateIndex(req)
@ -640,10 +657,10 @@ func TestMasterService(t *testing.T) {
rsp, err := core.DescribeIndex(req)
assert.Nil(t, err)
assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_SUCCESS)
assert.Equal(t, len(rsp.IndexDescriptions), 2)
assert.Equal(t, len(rsp.IndexDescriptions), 3)
assert.Equal(t, rsp.IndexDescriptions[0].IndexName, Params.DefaultIndexName)
assert.Equal(t, rsp.IndexDescriptions[1].IndexName, "index_100")
assert.Equal(t, rsp.IndexDescriptions[1].IndexName, "index_field_100_0")
assert.Equal(t, rsp.IndexDescriptions[2].IndexName, "index_field_100_1")
})
t.Run("drop partition", func(t *testing.T) {

View File

@ -262,30 +262,49 @@ func (mt *metaTable) HasCollection(collID typeutil.UniqueID) bool {
return ok
}
func (mt *metaTable) GetCollectionByID(collectionID typeutil.UniqueID) (pb.CollectionInfo, error) {
func (mt *metaTable) GetCollectionByID(collectionID typeutil.UniqueID) (*pb.CollectionInfo, error) {
mt.ddLock.RLock()
defer mt.ddLock.RUnlock()
col, ok := mt.collID2Meta[collectionID]
if !ok {
return pb.CollectionInfo{}, errors.Errorf("can't find collection id : %d", collectionID)
return nil, errors.Errorf("can't find collection id : %d", collectionID)
}
return col, nil
colCopy := proto.Clone(&col)
return colCopy.(*pb.CollectionInfo), nil
}
func (mt *metaTable) GetCollectionByName(collectionName string) (pb.CollectionInfo, error) {
func (mt *metaTable) GetCollectionByName(collectionName string) (*pb.CollectionInfo, error) {
mt.ddLock.RLock()
defer mt.ddLock.RUnlock()
vid, ok := mt.collName2ID[collectionName]
if !ok {
return pb.CollectionInfo{}, errors.Errorf("can't find collection: " + collectionName)
return nil, errors.Errorf("can't find collection: " + collectionName)
}
col, ok := mt.collID2Meta[vid]
if !ok {
return pb.CollectionInfo{}, errors.Errorf("can't find collection: " + collectionName)
return nil, errors.Errorf("can't find collection: " + collectionName)
}
return col, nil
colCopy := proto.Clone(&col)
return colCopy.(*pb.CollectionInfo), nil
}
func (mt *metaTable) GetCollectionBySegmentID(segID typeutil.UniqueID) (*pb.CollectionInfo, error) {
mt.ddLock.RLock()
defer mt.ddLock.RUnlock()
vid, ok := mt.segID2CollID[segID]
if !ok {
return nil, errors.Errorf("segment id %d not belong to any collection", segID)
}
col, ok := mt.collID2Meta[vid]
if !ok {
return nil, errors.Errorf("can't find collection id: %d", vid)
}
colCopy := proto.Clone(&col)
return colCopy.(*pb.CollectionInfo), nil
}
func (mt *metaTable) ListCollections() ([]string, error) {
@ -564,6 +583,10 @@ func (mt *metaTable) GetFieldSchema(collName string, fieldName string) (schemapb
mt.ddLock.RLock()
defer mt.ddLock.RUnlock()
return mt.unlockGetFieldSchema(collName, fieldName)
}
func (mt *metaTable) unlockGetFieldSchema(collName string, fieldName string) (schemapb.FieldSchema, error) {
collID, ok := mt.collName2ID[collName]
if !ok {
return schemapb.FieldSchema{}, errors.Errorf("collection %s not found", collName)
@ -585,6 +608,10 @@ func (mt *metaTable) GetFieldSchema(collName string, fieldName string) (schemapb
func (mt *metaTable) IsSegmentIndexed(segID typeutil.UniqueID, fieldSchema *schemapb.FieldSchema, indexParams []*commonpb.KeyValuePair) bool {
mt.ddLock.RLock()
defer mt.ddLock.RUnlock()
return mt.unlockIsSegmentIndexed(segID, fieldSchema, indexParams)
}
func (mt *metaTable) unlockIsSegmentIndexed(segID typeutil.UniqueID, fieldSchema *schemapb.FieldSchema, indexParams []*commonpb.KeyValuePair) bool {
segIdx, ok := mt.segID2IndexMeta[segID]
if !ok {
return false
@ -608,8 +635,9 @@ func (mt *metaTable) IsSegmentIndexed(segID typeutil.UniqueID, fieldSchema *sche
// return segment ids, type params, error
func (mt *metaTable) GetNotIndexedSegments(collName string, fieldName string, indexParams []*commonpb.KeyValuePair) ([]typeutil.UniqueID, schemapb.FieldSchema, error) {
mt.ddLock.RLock()
defer mt.ddLock.RUnlock()
mt.ddLock.Lock()
defer mt.ddLock.Unlock()
collID, ok := mt.collName2ID[collName]
if !ok {
return nil, schemapb.FieldSchema{}, errors.Errorf("collection %s not found", collName)
@ -618,17 +646,45 @@ func (mt *metaTable) GetNotIndexedSegments(collName string, fieldName string, in
if !ok {
return nil, schemapb.FieldSchema{}, errors.Errorf("collection %s not found", collName)
}
fieldSchema, err := mt.GetFieldSchema(collName, fieldName)
fieldSchema, err := mt.unlockGetFieldSchema(collName, fieldName)
if err != nil {
return nil, fieldSchema, err
}
exist := false
if indexParams != nil {
for _, f := range collMeta.IndexParams {
if f.FiledID == fieldSchema.FieldID {
if EqualKeyPairArray(f.IndexParams, indexParams) {
exist = true
break
}
}
}
}
if !exist && indexParams != nil {
collMeta.IndexParams = append(collMeta.IndexParams, &pb.IndexParamsInfo{
FiledID: fieldSchema.FieldID,
IndexParams: indexParams,
})
mt.collID2Meta[collMeta.ID] = collMeta
k1 := path.Join(CollectionMetaPrefix, strconv.FormatInt(collMeta.ID, 10))
v1 := proto.MarshalTextString(&collMeta)
err := mt.client.Save(k1, v1)
if err != nil {
_ = mt.reloadFromKV()
return nil, schemapb.FieldSchema{}, err
}
}
rstID := make([]typeutil.UniqueID, 0, 16)
for _, partID := range collMeta.PartitionIDs {
partMeta, ok := mt.partitionID2Meta[partID]
if ok {
for _, segID := range partMeta.SegmentIDs {
if exist := mt.IsSegmentIndexed(segID, &fieldSchema, indexParams); !exist {
if exist := mt.unlockIsSegmentIndexed(segID, &fieldSchema, indexParams); !exist {
rstID = append(rstID, segID)
}
}
@ -637,27 +693,6 @@ func (mt *metaTable) GetNotIndexedSegments(collName string, fieldName string, in
return rstID, fieldSchema, nil
}
func (mt *metaTable) GetSegmentVectorFields(segID typeutil.UniqueID) ([]*schemapb.FieldSchema, error) {
mt.ddLock.RLock()
defer mt.ddLock.RUnlock()
collID, ok := mt.segID2CollID[segID]
if !ok {
return nil, errors.Errorf("segment id %d not belong to any collection", segID)
}
collMeta, ok := mt.collID2Meta[collID]
if !ok {
return nil, errors.Errorf("segment id %d not belong to any collection which has dropped", segID)
}
rst := make([]*schemapb.FieldSchema, 0, 2)
for _, f := range collMeta.Schema.Fields {
if f.DataType == schemapb.DataType_VECTOR_BINARY || f.DataType == schemapb.DataType_VECTOR_FLOAT {
field := proto.Clone(f)
rst = append(rst, field.(*schemapb.FieldSchema))
}
}
return rst, nil
}
func (mt *metaTable) GetIndexByName(collName string, fieldName string, indexName string) ([]pb.IndexInfo, error) {
mt.ddLock.RLock()
mt.ddLock.RUnlock()

View File

@ -105,12 +105,24 @@ func (t *CreateCollectionReqTask) Execute() error {
Schema: &schema,
CreateTime: collTs,
PartitionIDs: make([]typeutil.UniqueID, 0, 16),
IndexParams: make([]*etcdpb.IndexParamsInfo, 0, 16),
}
partMeta := etcdpb.PartitionInfo{
PartitionName: Params.DefaultPartitionName,
PartitionID: partitionID,
SegmentIDs: make([]typeutil.UniqueID, 0, 16),
}
for _, field := range schema.Fields {
if field.DataType == schemapb.DataType_VECTOR_FLOAT || field.DataType == schemapb.DataType_VECTOR_BINARY {
if len(field.IndexParams) > 0 {
indexParam := &etcdpb.IndexParamsInfo{
FiledID: field.FieldID,
IndexParams: field.IndexParams,
}
collMeta.IndexParams = append(collMeta.IndexParams, indexParam)
}
}
}
err = t.core.MetaTable.AddCollection(&collMeta, &partMeta)
if err != nil {

View File

@ -1,6 +1,12 @@
package masterservice
import "github.com/zilliztech/milvus-distributed/internal/proto/commonpb"
import (
"github.com/zilliztech/milvus-distributed/internal/errors"
"github.com/zilliztech/milvus-distributed/internal/proto/commonpb"
"github.com/zilliztech/milvus-distributed/internal/proto/etcdpb"
"github.com/zilliztech/milvus-distributed/internal/proto/schemapb"
"github.com/zilliztech/milvus-distributed/internal/util/typeutil"
)
//return
func EqualKeyPairArray(p1 []*commonpb.KeyValuePair, p2 []*commonpb.KeyValuePair) bool {
@ -22,3 +28,12 @@ func EqualKeyPairArray(p1 []*commonpb.KeyValuePair, p2 []*commonpb.KeyValuePair)
}
return true
}
func GetFieldSchemaByID(coll *etcdpb.CollectionInfo, fieldID typeutil.UniqueID) (*schemapb.FieldSchema, error) {
for _, f := range coll.Schema.Fields {
if f.FieldID == fieldID {
return f, nil
}
}
return nil, errors.Errorf("field id = %d not found", fieldID)
}

View File

@ -24,11 +24,17 @@ message PartitionInfo {
repeated int64 segmentIDs = 3;
}
message IndexParamsInfo{
int64 filedID = 1;
repeated common.KeyValuePair index_params = 2;
}
message CollectionInfo {
int64 ID = 1;
schema.CollectionSchema schema = 2;
uint64 create_time = 3;
repeated int64 partitionIDs = 4;
repeated IndexParamsInfo index_params = 5;
}
message IndexInfo {

View File

@ -195,11 +195,59 @@ func (m *PartitionInfo) GetSegmentIDs() []int64 {
return nil
}
type IndexParamsInfo struct {
FiledID int64 `protobuf:"varint,1,opt,name=filedID,proto3" json:"filedID,omitempty"`
IndexParams []*commonpb.KeyValuePair `protobuf:"bytes,2,rep,name=index_params,json=indexParams,proto3" json:"index_params,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *IndexParamsInfo) Reset() { *m = IndexParamsInfo{} }
func (m *IndexParamsInfo) String() string { return proto.CompactTextString(m) }
func (*IndexParamsInfo) ProtoMessage() {}
func (*IndexParamsInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_975d306d62b73e88, []int{3}
}
func (m *IndexParamsInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IndexParamsInfo.Unmarshal(m, b)
}
func (m *IndexParamsInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IndexParamsInfo.Marshal(b, m, deterministic)
}
func (m *IndexParamsInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_IndexParamsInfo.Merge(m, src)
}
func (m *IndexParamsInfo) XXX_Size() int {
return xxx_messageInfo_IndexParamsInfo.Size(m)
}
func (m *IndexParamsInfo) XXX_DiscardUnknown() {
xxx_messageInfo_IndexParamsInfo.DiscardUnknown(m)
}
var xxx_messageInfo_IndexParamsInfo proto.InternalMessageInfo
func (m *IndexParamsInfo) GetFiledID() int64 {
if m != nil {
return m.FiledID
}
return 0
}
func (m *IndexParamsInfo) GetIndexParams() []*commonpb.KeyValuePair {
if m != nil {
return m.IndexParams
}
return nil
}
type CollectionInfo struct {
ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
Schema *schemapb.CollectionSchema `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"`
CreateTime uint64 `protobuf:"varint,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
PartitionIDs []int64 `protobuf:"varint,4,rep,packed,name=partitionIDs,proto3" json:"partitionIDs,omitempty"`
IndexParams []*IndexParamsInfo `protobuf:"bytes,5,rep,name=index_params,json=indexParams,proto3" json:"index_params,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -209,7 +257,7 @@ func (m *CollectionInfo) Reset() { *m = CollectionInfo{} }
func (m *CollectionInfo) String() string { return proto.CompactTextString(m) }
func (*CollectionInfo) ProtoMessage() {}
func (*CollectionInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_975d306d62b73e88, []int{3}
return fileDescriptor_975d306d62b73e88, []int{4}
}
func (m *CollectionInfo) XXX_Unmarshal(b []byte) error {
@ -258,6 +306,13 @@ func (m *CollectionInfo) GetPartitionIDs() []int64 {
return nil
}
func (m *CollectionInfo) GetIndexParams() []*IndexParamsInfo {
if m != nil {
return m.IndexParams
}
return nil
}
type IndexInfo struct {
IndexName string `protobuf:"bytes,1,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"`
IndexID int64 `protobuf:"varint,2,opt,name=indexID,proto3" json:"indexID,omitempty"`
@ -271,7 +326,7 @@ func (m *IndexInfo) Reset() { *m = IndexInfo{} }
func (m *IndexInfo) String() string { return proto.CompactTextString(m) }
func (*IndexInfo) ProtoMessage() {}
func (*IndexInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_975d306d62b73e88, []int{4}
return fileDescriptor_975d306d62b73e88, []int{5}
}
func (m *IndexInfo) XXX_Unmarshal(b []byte) error {
@ -327,7 +382,7 @@ func (m *SegmentIndexInfo) Reset() { *m = SegmentIndexInfo{} }
func (m *SegmentIndexInfo) String() string { return proto.CompactTextString(m) }
func (*SegmentIndexInfo) ProtoMessage() {}
func (*SegmentIndexInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_975d306d62b73e88, []int{5}
return fileDescriptor_975d306d62b73e88, []int{6}
}
func (m *SegmentIndexInfo) XXX_Unmarshal(b []byte) error {
@ -392,7 +447,7 @@ func (m *CollectionMeta) Reset() { *m = CollectionMeta{} }
func (m *CollectionMeta) String() string { return proto.CompactTextString(m) }
func (*CollectionMeta) ProtoMessage() {}
func (*CollectionMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_975d306d62b73e88, []int{6}
return fileDescriptor_975d306d62b73e88, []int{7}
}
func (m *CollectionMeta) XXX_Unmarshal(b []byte) error {
@ -467,7 +522,7 @@ func (m *FieldBinlogFiles) Reset() { *m = FieldBinlogFiles{} }
func (m *FieldBinlogFiles) String() string { return proto.CompactTextString(m) }
func (*FieldBinlogFiles) ProtoMessage() {}
func (*FieldBinlogFiles) Descriptor() ([]byte, []int) {
return fileDescriptor_975d306d62b73e88, []int{7}
return fileDescriptor_975d306d62b73e88, []int{8}
}
func (m *FieldBinlogFiles) XXX_Unmarshal(b []byte) error {
@ -522,7 +577,7 @@ func (m *SegmentMeta) Reset() { *m = SegmentMeta{} }
func (m *SegmentMeta) String() string { return proto.CompactTextString(m) }
func (*SegmentMeta) ProtoMessage() {}
func (*SegmentMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_975d306d62b73e88, []int{8}
return fileDescriptor_975d306d62b73e88, []int{9}
}
func (m *SegmentMeta) XXX_Unmarshal(b []byte) error {
@ -629,7 +684,7 @@ func (m *FieldIndexMeta) Reset() { *m = FieldIndexMeta{} }
func (m *FieldIndexMeta) String() string { return proto.CompactTextString(m) }
func (*FieldIndexMeta) ProtoMessage() {}
func (*FieldIndexMeta) Descriptor() ([]byte, []int) {
return fileDescriptor_975d306d62b73e88, []int{9}
return fileDescriptor_975d306d62b73e88, []int{10}
}
func (m *FieldIndexMeta) XXX_Unmarshal(b []byte) error {
@ -696,6 +751,7 @@ func init() {
proto.RegisterType((*TenantMeta)(nil), "milvus.proto.etcd.TenantMeta")
proto.RegisterType((*ProxyMeta)(nil), "milvus.proto.etcd.ProxyMeta")
proto.RegisterType((*PartitionInfo)(nil), "milvus.proto.etcd.PartitionInfo")
proto.RegisterType((*IndexParamsInfo)(nil), "milvus.proto.etcd.IndexParamsInfo")
proto.RegisterType((*CollectionInfo)(nil), "milvus.proto.etcd.CollectionInfo")
proto.RegisterType((*IndexInfo)(nil), "milvus.proto.etcd.IndexInfo")
proto.RegisterType((*SegmentIndexInfo)(nil), "milvus.proto.etcd.SegmentIndexInfo")
@ -708,56 +764,58 @@ func init() {
func init() { proto.RegisterFile("etcd_meta.proto", fileDescriptor_975d306d62b73e88) }
var fileDescriptor_975d306d62b73e88 = []byte{
// 809 bytes of a gzipped FileDescriptorProto
// 844 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x5d, 0x8f, 0xdb, 0x44,
0x14, 0x95, 0x93, 0x6c, 0x76, 0x7d, 0x93, 0xcd, 0xee, 0xfa, 0xc9, 0x94, 0x96, 0xa6, 0xae, 0x0a,
0x91, 0x10, 0x89, 0xb4, 0x08, 0xde, 0x40, 0xd0, 0x86, 0x4a, 0x11, 0xa2, 0x0d, 0xce, 0x8a, 0x07,
0x5e, 0xac, 0x89, 0x7d, 0x37, 0x19, 0xc9, 0x33, 0x0e, 0x9e, 0x31, 0xdd, 0xdd, 0x07, 0xc4, 0x2b,
0xfc, 0x04, 0x9e, 0xf9, 0x77, 0xfc, 0x06, 0x24, 0x34, 0x77, 0x1c, 0x7f, 0x6c, 0x23, 0x84, 0x2a,
0xf1, 0x78, 0xcf, 0x3d, 0xd7, 0x73, 0xe6, 0x9c, 0x3b, 0x09, 0x9c, 0xa1, 0x8e, 0x93, 0x48, 0xa0,
0x66, 0xd3, 0x5d, 0x9e, 0xe9, 0xcc, 0xbb, 0x10, 0x3c, 0xfd, 0xb9, 0x50, 0xb6, 0x9a, 0x9a, 0xee,
0x83, 0x61, 0x9c, 0x09, 0x91, 0x49, 0x0b, 0x3d, 0x18, 0xaa, 0x78, 0x8b, 0xa2, 0xa4, 0x07, 0x7f,
0x38, 0x00, 0x57, 0x28, 0x99, 0xd4, 0xdf, 0xa1, 0x66, 0xde, 0x08, 0x3a, 0x8b, 0xb9, 0xef, 0x8c,
0x9d, 0x49, 0x37, 0xec, 0x2c, 0xe6, 0xde, 0x87, 0x70, 0x26, 0x0b, 0x11, 0xfd, 0x54, 0x60, 0x7e,
0x1b, 0xc9, 0x2c, 0x41, 0xe5, 0x77, 0xa8, 0x79, 0x2a, 0x0b, 0xf1, 0xbd, 0x41, 0x5f, 0x19, 0xd0,
0xfb, 0x18, 0x2e, 0xb8, 0x54, 0x98, 0xeb, 0x28, 0xde, 0x32, 0x29, 0x31, 0x5d, 0xcc, 0x95, 0xdf,
0x1d, 0x77, 0x27, 0x6e, 0x78, 0x6e, 0x1b, 0x2f, 0x2a, 0xdc, 0xfb, 0x08, 0xce, 0xec, 0x07, 0x2b,
0xae, 0xdf, 0x1b, 0x3b, 0x13, 0x37, 0x1c, 0x11, 0x5c, 0x31, 0x83, 0x5f, 0x1d, 0x70, 0x97, 0x79,
0x76, 0x73, 0x7b, 0x50, 0xdb, 0xe7, 0x70, 0xcc, 0x92, 0x24, 0x47, 0x65, 0x35, 0x0d, 0x2e, 0x1f,
0x4e, 0x5b, 0x77, 0x2f, 0x6f, 0xfd, 0xb5, 0xe5, 0x84, 0x7b, 0xb2, 0xd1, 0x9a, 0xa3, 0x2a, 0xd2,
0x43, 0x5a, 0x6d, 0xa3, 0xd6, 0x1a, 0xdc, 0xc0, 0xe9, 0x92, 0xe5, 0x9a, 0x6b, 0x9e, 0xc9, 0x85,
0xbc, 0xce, 0xbc, 0x67, 0x30, 0xda, 0xed, 0x81, 0x48, 0x32, 0x81, 0xa4, 0xc8, 0x0d, 0x4f, 0x2b,
0xf4, 0x15, 0x13, 0xe8, 0x8d, 0x61, 0x50, 0x01, 0x8b, 0x79, 0x69, 0x5a, 0x13, 0xf2, 0x3e, 0x00,
0x50, 0xb8, 0x11, 0x28, 0xf5, 0xfe, 0xfc, 0x6e, 0xd8, 0x40, 0x82, 0x3f, 0x1d, 0x18, 0xbd, 0xc8,
0xd2, 0x14, 0xe3, 0xea, 0xec, 0xfb, 0x0e, 0x7c, 0x01, 0x7d, 0x1b, 0x66, 0x69, 0xc0, 0xb3, 0xb6,
0x01, 0x65, 0xd0, 0xf5, 0x47, 0x56, 0x04, 0x84, 0xe5, 0x90, 0xf7, 0x18, 0x06, 0x71, 0x8e, 0x4c,
0x63, 0xa4, 0xb9, 0x40, 0xbf, 0x3b, 0x76, 0x26, 0xbd, 0x10, 0x2c, 0x74, 0xc5, 0x05, 0x7a, 0x01,
0x0c, 0x1b, 0x8a, 0x95, 0xdf, 0x23, 0x91, 0x2d, 0x2c, 0xf8, 0xdd, 0x01, 0x77, 0x21, 0x13, 0xbc,
0x21, 0x85, 0x8f, 0x00, 0xb8, 0x29, 0x9a, 0xce, 0xb8, 0x84, 0x90, 0x2b, 0x3e, 0x1c, 0x53, 0x51,
0x39, 0xb2, 0x2f, 0xbd, 0x39, 0x0c, 0xed, 0xe0, 0x8e, 0xe5, 0x4c, 0x58, 0x3f, 0x06, 0x97, 0x4f,
0x0e, 0x26, 0xfa, 0x2d, 0xde, 0xfe, 0xc0, 0xd2, 0x02, 0x97, 0x8c, 0xe7, 0xe1, 0x80, 0xc6, 0x96,
0x34, 0x15, 0xfc, 0x02, 0xe7, 0xab, 0xd2, 0xc1, 0x4a, 0xd2, 0x43, 0x70, 0x2b, 0x57, 0x4b, 0xef,
0x6a, 0xc0, 0x28, 0xba, 0xe6, 0x98, 0x26, 0xb5, 0xa2, 0xb2, 0x6c, 0x6a, 0xed, 0xb6, 0xb5, 0xfa,
0x70, 0xbc, 0x2e, 0x38, 0xcd, 0xf4, 0x6c, 0xa7, 0x2c, 0x83, 0xbf, 0x5a, 0x99, 0x1d, 0xdc, 0xda,
0xff, 0x3b, 0xb3, 0xf6, 0x5a, 0xf5, 0xee, 0xaf, 0x55, 0x7b, 0x7f, 0x35, 0xdb, 0x28, 0xff, 0x88,
0x56, 0xbf, 0xde, 0xdf, 0x2b, 0xb6, 0x51, 0x6f, 0x45, 0xdf, 0x3f, 0x10, 0xfd, 0x6b, 0x38, 0x7f,
0x69, 0xcc, 0x7a, 0xce, 0x65, 0x9a, 0x6d, 0x5e, 0xf2, 0x14, 0x55, 0xd3, 0x4f, 0xa7, 0xed, 0xe7,
0x13, 0x18, 0xae, 0x89, 0x18, 0x5d, 0x1b, 0xa6, 0xdf, 0xa1, 0x63, 0x07, 0xeb, 0x7a, 0x38, 0xf8,
0xbb, 0x03, 0x83, 0x32, 0x3f, 0xf2, 0xee, 0xdf, 0xa3, 0x0b, 0x60, 0x18, 0xd7, 0xef, 0x63, 0x9f,
0x5f, 0x0b, 0xf3, 0x9e, 0xc2, 0x69, 0xeb, 0xb6, 0x64, 0x98, 0xdb, 0xb8, 0xc7, 0x15, 0xdb, 0x18,
0x52, 0xf9, 0x4b, 0x10, 0x29, 0xcd, 0x72, 0x4d, 0xa9, 0x1e, 0x85, 0xc3, 0x12, 0x5c, 0x19, 0x8c,
0x8c, 0x2f, 0x49, 0x28, 0x13, 0xff, 0x88, 0x28, 0x50, 0x42, 0xdf, 0xc8, 0xc4, 0x7b, 0x1f, 0xdc,
0x6c, 0x87, 0xd2, 0xe6, 0xd2, 0xa7, 0x5c, 0x4e, 0x0c, 0x40, 0xa9, 0x3c, 0x02, 0x88, 0xd3, 0x4c,
0x95, 0xa9, 0x1d, 0x53, 0xd7, 0x25, 0x84, 0xda, 0xef, 0xc1, 0x89, 0xf9, 0x99, 0xcd, 0xb3, 0x37,
0xca, 0x3f, 0xb1, 0xb6, 0xc9, 0x42, 0x84, 0xd9, 0x1b, 0x65, 0x5a, 0x02, 0x45, 0xa4, 0xf8, 0x1d,
0xfa, 0xae, 0x6d, 0x09, 0x14, 0x2b, 0x7e, 0x87, 0xde, 0x6b, 0xb8, 0x68, 0x38, 0x1a, 0xed, 0x98,
0xde, 0x2a, 0x1f, 0xe8, 0xe1, 0x3c, 0x9d, 0xbe, 0xf5, 0x37, 0x30, 0xbd, 0x9f, 0x55, 0x78, 0x56,
0x7b, 0xbf, 0x34, 0xb3, 0xc1, 0x6f, 0x1d, 0x18, 0x11, 0x8b, 0x5e, 0xcf, 0x7f, 0x88, 0xe0, 0x5d,
0x5e, 0xcf, 0xfd, 0x97, 0xde, 0x7b, 0x97, 0x97, 0xee, 0x7d, 0x06, 0x47, 0x4a, 0x33, 0x8d, 0x14,
0xc4, 0xe8, 0xf2, 0xf1, 0xc1, 0x71, 0xba, 0xc6, 0xca, 0xd0, 0x42, 0xcb, 0xf6, 0x26, 0x70, 0x6e,
0x0f, 0x6f, 0x38, 0xd6, 0xa7, 0x45, 0x1c, 0x11, 0x5e, 0x79, 0xf1, 0xfc, 0xab, 0x1f, 0xbf, 0xdc,
0x70, 0xbd, 0x2d, 0xd6, 0xe6, 0x63, 0xb3, 0x3b, 0x9e, 0xa6, 0xfc, 0x4e, 0x63, 0xbc, 0x9d, 0xd9,
0x83, 0x3e, 0x49, 0xb8, 0xd2, 0x39, 0x5f, 0x17, 0x1a, 0x93, 0x19, 0x97, 0x1a, 0x73, 0xc9, 0xd2,
0x19, 0x9d, 0x3e, 0x33, 0x6e, 0xef, 0xd6, 0xeb, 0x3e, 0x55, 0x9f, 0xfe, 0x13, 0x00, 0x00, 0xff,
0xff, 0xde, 0xef, 0x54, 0xe3, 0xa3, 0x07, 0x00, 0x00,
0x14, 0x55, 0x3e, 0x36, 0x59, 0xdf, 0x64, 0x93, 0xdd, 0x79, 0x32, 0xa5, 0xa5, 0xa9, 0xab, 0x42,
0x24, 0x44, 0x22, 0x2d, 0x82, 0x37, 0x10, 0xb4, 0x69, 0xa5, 0x08, 0xd1, 0x06, 0x67, 0xc5, 0x03,
0x2f, 0xd6, 0xc4, 0xbe, 0x4d, 0x46, 0xf2, 0x8c, 0x53, 0xcf, 0x98, 0xee, 0xee, 0x03, 0xe2, 0x15,
0x7e, 0x02, 0x7f, 0x91, 0xdf, 0x80, 0x84, 0x7c, 0xc7, 0x71, 0xec, 0x6c, 0x84, 0xd0, 0x4a, 0x7d,
0x9c, 0x73, 0xcf, 0x78, 0xee, 0x3d, 0xe7, 0x9e, 0x04, 0x86, 0x68, 0xc2, 0x28, 0x90, 0x68, 0xf8,
0x64, 0x9b, 0x26, 0x26, 0x61, 0x17, 0x52, 0xc4, 0xbf, 0x66, 0xda, 0x9e, 0x26, 0x79, 0xf5, 0x41,
0x3f, 0x4c, 0xa4, 0x4c, 0x94, 0x85, 0x1e, 0xf4, 0x75, 0xb8, 0x41, 0x59, 0xd0, 0xbd, 0xbf, 0x1a,
0x00, 0x57, 0xa8, 0xb8, 0x32, 0x3f, 0xa2, 0xe1, 0x6c, 0x00, 0xcd, 0xf9, 0xcc, 0x6d, 0x8c, 0x1a,
0xe3, 0x96, 0xdf, 0x9c, 0xcf, 0xd8, 0xa7, 0x30, 0x54, 0x99, 0x0c, 0xde, 0x65, 0x98, 0xde, 0x04,
0x2a, 0x89, 0x50, 0xbb, 0x4d, 0x2a, 0x9e, 0xa9, 0x4c, 0xfe, 0x94, 0xa3, 0xaf, 0x73, 0x90, 0x7d,
0x0e, 0x17, 0x42, 0x69, 0x4c, 0x4d, 0x10, 0x6e, 0xb8, 0x52, 0x18, 0xcf, 0x67, 0xda, 0x6d, 0x8d,
0x5a, 0x63, 0xc7, 0x3f, 0xb7, 0x85, 0x17, 0x25, 0xce, 0x3e, 0x83, 0xa1, 0xfd, 0x60, 0xc9, 0x75,
0xdb, 0xa3, 0xc6, 0xd8, 0xf1, 0x07, 0x04, 0x97, 0x4c, 0xef, 0xf7, 0x06, 0x38, 0x8b, 0x34, 0xb9,
0xbe, 0x39, 0xda, 0xdb, 0xd7, 0xd0, 0xe5, 0x51, 0x94, 0xa2, 0xb6, 0x3d, 0xf5, 0x2e, 0x1f, 0x4e,
0x6a, 0xb3, 0x17, 0x53, 0x7f, 0x6f, 0x39, 0xfe, 0x8e, 0x9c, 0xf7, 0x9a, 0xa2, 0xce, 0xe2, 0x63,
0xbd, 0xda, 0xc2, 0xbe, 0x57, 0xef, 0x1a, 0xce, 0x16, 0x3c, 0x35, 0xc2, 0x88, 0x44, 0xcd, 0xd5,
0xdb, 0x84, 0x3d, 0x83, 0xc1, 0x76, 0x07, 0x04, 0x8a, 0x4b, 0xa4, 0x8e, 0x1c, 0xff, 0xac, 0x44,
0x5f, 0x73, 0x89, 0x6c, 0x04, 0xbd, 0x12, 0x98, 0xcf, 0x0a, 0xd1, 0xaa, 0x10, 0xfb, 0x04, 0x40,
0xe3, 0x5a, 0xa2, 0x32, 0xbb, 0xf7, 0x5b, 0x7e, 0x05, 0xf1, 0xde, 0xc1, 0x70, 0xae, 0x22, 0xbc,
0x5e, 0xf0, 0x94, 0x4b, 0x4d, 0x6f, 0xbb, 0xd0, 0x7d, 0x2b, 0x62, 0x8c, 0x4a, 0x19, 0x76, 0x47,
0x36, 0x83, 0xbe, 0xc8, 0xc9, 0xc1, 0x96, 0xd8, 0x6e, 0x73, 0xd4, 0x1a, 0xf7, 0x2e, 0x9f, 0x1c,
0x15, 0xe4, 0x07, 0xbc, 0xf9, 0x99, 0xc7, 0x19, 0x2e, 0xb8, 0x48, 0xfd, 0x9e, 0xd8, 0xbf, 0xe1,
0xfd, 0xdd, 0x80, 0xc1, 0x8b, 0x24, 0x8e, 0x31, 0x2c, 0xc7, 0x3d, 0x14, 0xfd, 0x1b, 0xe8, 0xd8,
0xfd, 0x29, 0x34, 0x7f, 0x56, 0x7f, 0xa2, 0xd8, 0xad, 0xfd, 0x47, 0x96, 0x04, 0xf8, 0xc5, 0x25,
0xf6, 0x18, 0x7a, 0x61, 0x8a, 0xdc, 0x60, 0x60, 0x84, 0x44, 0xb7, 0x35, 0x6a, 0x8c, 0xdb, 0x3e,
0x58, 0xe8, 0x4a, 0x48, 0x64, 0x1e, 0xf4, 0x2b, 0x22, 0x69, 0xb7, 0x4d, 0xba, 0xd4, 0x30, 0xf6,
0xf2, 0x60, 0xd8, 0x13, 0x1a, 0xd6, 0x9b, 0xdc, 0xd9, 0xfc, 0xc9, 0x81, 0x80, 0xf5, 0x69, 0xff,
0x6c, 0x80, 0x43, 0x04, 0x1a, 0xf4, 0x11, 0x80, 0xfd, 0x68, 0xc5, 0x53, 0x87, 0x10, 0xf2, 0xd3,
0x85, 0x2e, 0x1d, 0x4a, 0x2f, 0x77, 0xc7, 0x3b, 0xd2, 0xb7, 0xee, 0x25, 0xfd, 0x6f, 0x70, 0xbe,
0x2c, 0xbc, 0x2f, 0x5b, 0x7a, 0x08, 0x4e, 0xb9, 0x0f, 0x85, 0x05, 0x7b, 0xc0, 0x2e, 0x03, 0xc6,
0xd1, 0xbe, 0xa3, 0xe2, 0x58, 0xed, 0xb5, 0x55, 0xef, 0xd5, 0x85, 0xee, 0x2a, 0x13, 0x74, 0xa7,
0x6d, 0x2b, 0xc5, 0xf1, 0xc0, 0xfa, 0xa3, 0x79, 0xfb, 0xd0, 0xd6, 0xd7, 0x03, 0xd1, 0x3e, 0x0c,
0x44, 0x3d, 0x79, 0x86, 0xaf, 0xad, 0xf1, 0xd5, 0xe4, 0x5d, 0xf1, 0xb5, 0xbe, 0xb3, 0x41, 0x9d,
0xbb, 0x1b, 0xe4, 0xbd, 0x81, 0xf3, 0x57, 0xb9, 0x58, 0xcf, 0x85, 0x8a, 0x93, 0xf5, 0x2b, 0x11,
0xa3, 0xae, 0xea, 0xd9, 0xa8, 0xeb, 0xf9, 0x04, 0xfa, 0x2b, 0x22, 0x06, 0x79, 0xdc, 0x6c, 0xb8,
0x1c, 0xbf, 0xb7, 0xda, 0x5f, 0xf6, 0xfe, 0x69, 0x42, 0xaf, 0xf0, 0x8f, 0xb4, 0xfb, 0x6f, 0xeb,
0x3c, 0xe8, 0x87, 0xfb, 0x98, 0xed, 0xfc, 0xab, 0x61, 0xec, 0x29, 0x9c, 0xd5, 0xa6, 0x25, 0xc1,
0x9c, 0xca, 0x1c, 0x57, 0x7c, 0x9d, 0x93, 0x8a, 0xdf, 0xb0, 0x40, 0x1b, 0x9e, 0x1a, 0x72, 0xf5,
0xc4, 0xef, 0x17, 0xe0, 0x32, 0xc7, 0x48, 0xf8, 0x82, 0x84, 0x2a, 0x72, 0x4f, 0x88, 0x02, 0x05,
0xf4, 0x52, 0x45, 0xec, 0x63, 0x70, 0x92, 0x2d, 0x2a, 0xeb, 0x4b, 0x87, 0x7c, 0x39, 0xcd, 0x01,
0x72, 0xe5, 0x11, 0x40, 0x18, 0x27, 0xba, 0x70, 0xad, 0x4b, 0x55, 0x87, 0x10, 0x2a, 0x7f, 0x04,
0xa7, 0xf9, 0x1f, 0x44, 0x9a, 0xbc, 0xd7, 0xee, 0xa9, 0x95, 0x4d, 0x65, 0xd2, 0x4f, 0xde, 0xeb,
0xbc, 0x24, 0x51, 0x06, 0x5a, 0xdc, 0xa2, 0xeb, 0xd8, 0x92, 0x44, 0xb9, 0x14, 0xb7, 0xc8, 0xde,
0xc0, 0x45, 0x45, 0xd1, 0x60, 0xcb, 0xcd, 0x46, 0xbb, 0x40, 0xc1, 0x79, 0x7a, 0x24, 0xc6, 0x87,
0x5e, 0xf9, 0xc3, 0xbd, 0xf6, 0x8b, 0xfc, 0xae, 0xf7, 0x47, 0x13, 0x06, 0xc4, 0xa2, 0xf4, 0xfc,
0x0f, 0x0b, 0xee, 0x93, 0x9e, 0xc3, 0xa4, 0xb7, 0xef, 0x93, 0x74, 0xf6, 0x15, 0x9c, 0x68, 0xc3,
0x0d, 0x92, 0x11, 0x83, 0xcb, 0xc7, 0x47, 0xaf, 0xd3, 0x18, 0xcb, 0x9c, 0xe6, 0x5b, 0x36, 0x1b,
0xc3, 0xb9, 0x7d, 0xbc, 0xa2, 0x58, 0x87, 0x16, 0x71, 0x40, 0x78, 0xa9, 0xc5, 0xf3, 0xef, 0x7e,
0xf9, 0x76, 0x2d, 0xcc, 0x26, 0x5b, 0xe5, 0x1f, 0x9b, 0xde, 0x8a, 0x38, 0x16, 0xb7, 0x06, 0xc3,
0xcd, 0xd4, 0x3e, 0xf4, 0x45, 0x24, 0xb4, 0x49, 0xc5, 0x2a, 0x33, 0x18, 0x4d, 0x85, 0x32, 0x98,
0x2a, 0x1e, 0x4f, 0xe9, 0xf5, 0x69, 0xae, 0xf6, 0x76, 0xb5, 0xea, 0xd0, 0xe9, 0xcb, 0x7f, 0x03,
0x00, 0x00, 0xff, 0xff, 0xf3, 0x18, 0xad, 0xa6, 0x5d, 0x08, 0x00, 0x00,
}