diff --git a/internal/core/src/pb/etcd_meta.pb.cc b/internal/core/src/pb/etcd_meta.pb.cc index cd7cd47704..23e4cefb58 100644 --- a/internal/core/src/pb/etcd_meta.pb.cc +++ b/internal/core/src/pb/etcd_meta.pb.cc @@ -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 _instance; } _PartitionInfo_default_instance_; +class IndexParamsInfoDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; +} _IndexParamsInfo_default_instance_; class CollectionInfoDefaultTypeInternal { public: ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _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(&::milvus::proto::etcd::_TenantMeta_default_instance_), reinterpret_cast(&::milvus::proto::etcd::_ProxyMeta_default_instance_), reinterpret_cast(&::milvus::proto::etcd::_PartitionInfo_default_instance_), + reinterpret_cast(&::milvus::proto::etcd::_IndexParamsInfo_default_instance_), reinterpret_cast(&::milvus::proto::etcd::_CollectionInfo_default_instance_), reinterpret_cast(&::milvus::proto::etcd::_IndexInfo_default_instance_), reinterpret_cast(&::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(this->index_params_size()); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( + 2, + this->index_params(static_cast(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(this->index_params_size()); i < n; i++) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessageToArray( + 2, this->index_params(static_cast(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(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(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( + &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(this->index_params_size()); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( + 5, + this->index_params(static_cast(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(this->index_params_size()); i < n; i++) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessageToArray( + 5, this->index_params(static_cast(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(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(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); } diff --git a/internal/core/src/pb/etcd_meta.pb.h b/internal/core/src/pb/etcd_meta.pb.h index 1cd16a7308..edbe92f3f1 100644 --- a/internal/core/src/pb/etcd_meta.pb.h +++ b/internal/core/src/pb/etcd_meta.pb.h @@ -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( + &_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(nullptr); + } + + IndexParamsInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage(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 _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) diff --git a/internal/distributed/masterservice/masterservice_test.go b/internal/distributed/masterservice/masterservice_test.go index f2e9514c69..f473ea5a18 100644 --- a/internal/distributed/masterservice/masterservice_test.go +++ b/internal/distributed/masterservice/masterservice_test.go @@ -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") }) diff --git a/internal/masterservice/master_service.go b/internal/masterservice/master_service.go index d2d8ab7613..42f59bf601 100644 --- a/internal/masterservice/master_service.go +++ b/internal/masterservice/master_service.go @@ -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 } } } diff --git a/internal/masterservice/master_service_test.go b/internal/masterservice/master_service_test.go index f83091c68c..0cfd6b0626 100644 --- a/internal/masterservice/master_service_test.go +++ b/internal/masterservice/master_service_test.go @@ -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) { diff --git a/internal/masterservice/meta_table.go b/internal/masterservice/meta_table.go index ba14232b1e..a06d5dafc6 100644 --- a/internal/masterservice/meta_table.go +++ b/internal/masterservice/meta_table.go @@ -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() diff --git a/internal/masterservice/task.go b/internal/masterservice/task.go index 5919b89463..3586151c28 100644 --- a/internal/masterservice/task.go +++ b/internal/masterservice/task.go @@ -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 { diff --git a/internal/masterservice/util.go b/internal/masterservice/util.go index c39ca4d6c4..9ce7fecb24 100644 --- a/internal/masterservice/util.go +++ b/internal/masterservice/util.go @@ -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) +} diff --git a/internal/proto/etcd_meta.proto b/internal/proto/etcd_meta.proto index 69f91d7ddc..d6719301ff 100644 --- a/internal/proto/etcd_meta.proto +++ b/internal/proto/etcd_meta.proto @@ -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 { diff --git a/internal/proto/etcdpb/etcd_meta.pb.go b/internal/proto/etcdpb/etcd_meta.pb.go index c0898755a3..fd7f6cae9f 100644 --- a/internal/proto/etcdpb/etcd_meta.pb.go +++ b/internal/proto/etcdpb/etcd_meta.pb.go @@ -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, }