From e8ceb37f81f31bab2fc7fc299d055b0c133d5f3a Mon Sep 17 00:00:00 2001 From: Cai Yudong Date: Mon, 17 May 2021 19:15:01 +0800 Subject: [PATCH] Add ShardsNum when create collection (#5245) Updata PhysicalChannelNames and VirtualChannelNames based on ShardsNum when create collection, and update collVChan2Chan map. Resolves: #5240 Signed-off-by: yudong.cai --- internal/core/src/pb/etcd_meta.pb.cc | 185 ++++- internal/core/src/pb/etcd_meta.pb.h | 168 ++++ internal/core/src/pb/milvus.pb.cc | 739 +++++++++++------- internal/core/src/pb/milvus.pb.h | 189 +++++ internal/masterservice/master_service_test.go | 384 ++++----- internal/masterservice/meta_table.go | 43 +- internal/masterservice/meta_table_test.go | 99 +-- internal/masterservice/task.go | 55 +- internal/proto/etcd_meta.proto | 2 + internal/proto/etcdpb/etcd_meta.pb.go | 129 +-- internal/proto/internal.proto | 2 + internal/proto/internalpb/internal.pb.go | 214 ++--- internal/proto/milvus.proto | 3 + internal/proto/milvuspb/milvus.pb.go | 292 +++---- 14 files changed, 1648 insertions(+), 856 deletions(-) diff --git a/internal/core/src/pb/etcd_meta.pb.cc b/internal/core/src/pb/etcd_meta.pb.cc index 95a60b009a..8f4a55a30e 100644 --- a/internal/core/src/pb/etcd_meta.pb.cc +++ b/internal/core/src/pb/etcd_meta.pb.cc @@ -286,6 +286,8 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_etcd_5fmeta_2eproto::offsets[] PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, create_time_), PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, partitionids_), PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, field_indexes_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, virtual_channel_names_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, physical_channel_names_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::SegmentIndexInfo, _internal_metadata_), ~0u, // no _extensions_ @@ -348,11 +350,11 @@ static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOB { 25, -1, sizeof(::milvus::proto::etcd::IndexInfo)}, { 33, -1, sizeof(::milvus::proto::etcd::FieldIndexInfo)}, { 40, -1, sizeof(::milvus::proto::etcd::CollectionInfo)}, - { 50, -1, sizeof(::milvus::proto::etcd::SegmentIndexInfo)}, - { 60, -1, sizeof(::milvus::proto::etcd::CollectionMeta)}, - { 71, -1, sizeof(::milvus::proto::etcd::FieldBinlogFiles)}, - { 78, -1, sizeof(::milvus::proto::etcd::SegmentMeta)}, - { 93, -1, sizeof(::milvus::proto::etcd::FieldIndexMeta)}, + { 52, -1, sizeof(::milvus::proto::etcd::SegmentIndexInfo)}, + { 62, -1, sizeof(::milvus::proto::etcd::CollectionMeta)}, + { 73, -1, sizeof(::milvus::proto::etcd::FieldBinlogFiles)}, + { 80, -1, sizeof(::milvus::proto::etcd::SegmentMeta)}, + { 95, -1, sizeof(::milvus::proto::etcd::FieldIndexMeta)}, }; static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { @@ -382,34 +384,35 @@ const char descriptor_table_protodef_etcd_5fmeta_2eproto[] PROTOBUF_SECTION_VARI "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\"2\n\016FieldIndexInfo\022\017\n\007fil" - "edID\030\001 \001(\003\022\017\n\007indexID\030\002 \001(\003\"\270\001\n\016Collecti" + "edID\030\001 \001(\003\022\017\n\007indexID\030\002 \001(\003\"\367\001\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\0228\n\r" "field_indexes\030\005 \003(\0132!.milvus.proto.etcd." - "FieldIndexInfo\"n\n\020SegmentIndexInfo\022\021\n\tse" - "gmentID\030\001 \001(\003\022\017\n\007fieldID\030\002 \001(\003\022\017\n\007indexI" - "D\030\003 \001(\003\022\017\n\007buildID\030\004 \001(\003\022\024\n\014enable_index" - "\030\005 \001(\010\"\252\001\n\016CollectionMeta\022\n\n\002ID\030\001 \001(\003\0225\n" - "\006schema\030\002 \001(\0132%.milvus.proto.schema.Coll" - "ectionSchema\022\023\n\013create_time\030\003 \001(\004\022\022\n\nseg" - "mentIDs\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\013SegmentMeta\022\021\n\tsegmentID\030\001 \001(\003\022\024\n\014col" - "lectionID\030\002 \001(\003\022\025\n\rpartition_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\007" - "indexID\030\003 \001(\003\0227\n\014index_params\030\004 \003(\0132!.mi" - "lvus.proto.common.KeyValuePair\022.\n\005state\030" - "\005 \001(\0162\037.milvus.proto.common.IndexState\022\030" - "\n\020index_file_paths\030\006 \003(\tB3Z1github.com/m" - "ilvus-io/milvus/internal/proto/etcdpbb\006p" - "roto3" + "FieldIndexInfo\022\035\n\025virtual_channel_names\030" + "\006 \003(\t\022\036\n\026physical_channel_names\030\007 \003(\t\"n\n" + "\020SegmentIndexInfo\022\021\n\tsegmentID\030\001 \001(\003\022\017\n\007" + "fieldID\030\002 \001(\003\022\017\n\007indexID\030\003 \001(\003\022\017\n\007buildI" + "D\030\004 \001(\003\022\024\n\014enable_index\030\005 \001(\010\"\252\001\n\016Collec" + "tionMeta\022\n\n\002ID\030\001 \001(\003\0225\n\006schema\030\002 \001(\0132%.m" + "ilvus.proto.schema.CollectionSchema\022\023\n\013c" + "reate_time\030\003 \001(\004\022\022\n\nsegmentIDs\030\004 \003(\003\022\026\n\016" + "partition_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\013SegmentMeta\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_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_path" + "s\030\n \003(\0132#.milvus.proto.etcd.FieldBinlogF" + "iles\"\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\014" + "index_params\030\004 \003(\0132!.milvus.proto.common" + ".KeyValuePair\022.\n\005state\030\005 \001(\0162\037.milvus.pr" + "oto.common.IndexState\022\030\n\020index_file_path" + "s\030\006 \003(\tB3Z1github.com/milvus-io/milvus/i" + "nternal/proto/etcdpbb\006proto3" ; static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_etcd_5fmeta_2eproto_deps[2] = { &::descriptor_table_common_2eproto, @@ -431,7 +434,7 @@ 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", 1565, + &descriptor_table_etcd_5fmeta_2eproto_initialized, descriptor_table_protodef_etcd_5fmeta_2eproto, "etcd_meta.proto", 1628, &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, 11, file_level_enum_descriptors_etcd_5fmeta_2eproto, file_level_service_descriptors_etcd_5fmeta_2eproto, @@ -2319,7 +2322,9 @@ CollectionInfo::CollectionInfo(const CollectionInfo& from) : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr), partitionids_(from.partitionids_), - field_indexes_(from.field_indexes_) { + field_indexes_(from.field_indexes_), + virtual_channel_names_(from.virtual_channel_names_), + physical_channel_names_(from.physical_channel_names_) { _internal_metadata_.MergeFrom(from._internal_metadata_); if (from.has_schema()) { schema_ = new ::milvus::proto::schema::CollectionSchema(*from.schema_); @@ -2365,6 +2370,8 @@ void CollectionInfo::Clear() { partitionids_.Clear(); field_indexes_.Clear(); + virtual_channel_names_.Clear(); + physical_channel_names_.Clear(); if (GetArenaNoVirtual() == nullptr && schema_ != nullptr) { delete schema_; } @@ -2426,6 +2433,30 @@ const char* CollectionInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 42); } else goto handle_unusual; continue; + // repeated string virtual_channel_names = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) { + ptr -= 1; + do { + ptr += 1; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(add_virtual_channel_names(), ptr, ctx, "milvus.proto.etcd.CollectionInfo.virtual_channel_names"); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 50); + } else goto handle_unusual; + continue; + // repeated string physical_channel_names = 7; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) { + ptr -= 1; + do { + ptr += 1; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(add_physical_channel_names(), ptr, ctx, "milvus.proto.etcd.CollectionInfo.physical_channel_names"); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 58); + } else goto handle_unusual; + continue; default: { handle_unusual: if ((tag & 7) == 4 || tag == 0) { @@ -2520,6 +2551,38 @@ bool CollectionInfo::MergePartialFromCodedStream( break; } + // repeated string virtual_channel_names = 6; + case 6: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (50 & 0xFF)) { + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString( + input, this->add_virtual_channel_names())); + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->virtual_channel_names(this->virtual_channel_names_size() - 1).data(), + static_cast(this->virtual_channel_names(this->virtual_channel_names_size() - 1).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, + "milvus.proto.etcd.CollectionInfo.virtual_channel_names")); + } else { + goto handle_unusual; + } + break; + } + + // repeated string physical_channel_names = 7; + case 7: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (58 & 0xFF)) { + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString( + input, this->add_physical_channel_names())); + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->physical_channel_names(this->physical_channel_names_size() - 1).data(), + static_cast(this->physical_channel_names(this->physical_channel_names_size() - 1).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, + "milvus.proto.etcd.CollectionInfo.physical_channel_names")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -2583,6 +2646,26 @@ void CollectionInfo::SerializeWithCachedSizes( output); } + // repeated string virtual_channel_names = 6; + for (int i = 0, n = this->virtual_channel_names_size(); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->virtual_channel_names(i).data(), static_cast(this->virtual_channel_names(i).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "milvus.proto.etcd.CollectionInfo.virtual_channel_names"); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteString( + 6, this->virtual_channel_names(i), output); + } + + // repeated string physical_channel_names = 7; + for (int i = 0, n = this->physical_channel_names_size(); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->physical_channel_names(i).data(), static_cast(this->physical_channel_names(i).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "milvus.proto.etcd.CollectionInfo.physical_channel_names"); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteString( + 7, this->physical_channel_names(i), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -2634,6 +2717,26 @@ void CollectionInfo::SerializeWithCachedSizes( 5, this->field_indexes(static_cast(i)), target); } + // repeated string virtual_channel_names = 6; + for (int i = 0, n = this->virtual_channel_names_size(); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->virtual_channel_names(i).data(), static_cast(this->virtual_channel_names(i).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "milvus.proto.etcd.CollectionInfo.virtual_channel_names"); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + WriteStringToArray(6, this->virtual_channel_names(i), target); + } + + // repeated string physical_channel_names = 7; + for (int i = 0, n = this->physical_channel_names_size(); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->physical_channel_names(i).data(), static_cast(this->physical_channel_names(i).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "milvus.proto.etcd.CollectionInfo.physical_channel_names"); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + WriteStringToArray(7, this->physical_channel_names(i), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -2681,6 +2784,22 @@ size_t CollectionInfo::ByteSizeLong() const { } } + // repeated string virtual_channel_names = 6; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->virtual_channel_names_size()); + for (int i = 0, n = this->virtual_channel_names_size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->virtual_channel_names(i)); + } + + // repeated string physical_channel_names = 7; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->physical_channel_names_size()); + for (int i = 0, n = this->physical_channel_names_size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->physical_channel_names(i)); + } + // .milvus.proto.schema.CollectionSchema schema = 2; if (this->has_schema()) { total_size += 1 + @@ -2731,6 +2850,8 @@ void CollectionInfo::MergeFrom(const CollectionInfo& from) { partitionids_.MergeFrom(from.partitionids_); field_indexes_.MergeFrom(from.field_indexes_); + virtual_channel_names_.MergeFrom(from.virtual_channel_names_); + physical_channel_names_.MergeFrom(from.physical_channel_names_); if (from.has_schema()) { mutable_schema()->::milvus::proto::schema::CollectionSchema::MergeFrom(from.schema()); } @@ -2765,6 +2886,8 @@ void CollectionInfo::InternalSwap(CollectionInfo* other) { _internal_metadata_.Swap(&other->_internal_metadata_); partitionids_.InternalSwap(&other->partitionids_); CastToBase(&field_indexes_)->InternalSwap(CastToBase(&other->field_indexes_)); + virtual_channel_names_.InternalSwap(CastToBase(&other->virtual_channel_names_)); + physical_channel_names_.InternalSwap(CastToBase(&other->physical_channel_names_)); swap(schema_, other->schema_); swap(id_, other->id_); swap(create_time_, other->create_time_); diff --git a/internal/core/src/pb/etcd_meta.pb.h b/internal/core/src/pb/etcd_meta.pb.h index b71888e5fa..1d946281c6 100644 --- a/internal/core/src/pb/etcd_meta.pb.h +++ b/internal/core/src/pb/etcd_meta.pb.h @@ -1012,6 +1012,8 @@ class CollectionInfo : enum : int { kPartitionIDsFieldNumber = 4, kFieldIndexesFieldNumber = 5, + kVirtualChannelNamesFieldNumber = 6, + kPhysicalChannelNamesFieldNumber = 7, kSchemaFieldNumber = 2, kIDFieldNumber = 1, kCreateTimeFieldNumber = 3, @@ -1038,6 +1040,40 @@ class CollectionInfo : const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::etcd::FieldIndexInfo >& field_indexes() const; + // repeated string virtual_channel_names = 6; + int virtual_channel_names_size() const; + void clear_virtual_channel_names(); + const std::string& virtual_channel_names(int index) const; + std::string* mutable_virtual_channel_names(int index); + void set_virtual_channel_names(int index, const std::string& value); + void set_virtual_channel_names(int index, std::string&& value); + void set_virtual_channel_names(int index, const char* value); + void set_virtual_channel_names(int index, const char* value, size_t size); + std::string* add_virtual_channel_names(); + void add_virtual_channel_names(const std::string& value); + void add_virtual_channel_names(std::string&& value); + void add_virtual_channel_names(const char* value); + void add_virtual_channel_names(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& virtual_channel_names() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_virtual_channel_names(); + + // repeated string physical_channel_names = 7; + int physical_channel_names_size() const; + void clear_physical_channel_names(); + const std::string& physical_channel_names(int index) const; + std::string* mutable_physical_channel_names(int index); + void set_physical_channel_names(int index, const std::string& value); + void set_physical_channel_names(int index, std::string&& value); + void set_physical_channel_names(int index, const char* value); + void set_physical_channel_names(int index, const char* value, size_t size); + std::string* add_physical_channel_names(); + void add_physical_channel_names(const std::string& value); + void add_physical_channel_names(std::string&& value); + void add_physical_channel_names(const char* value); + void add_physical_channel_names(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& physical_channel_names() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_physical_channel_names(); + // .milvus.proto.schema.CollectionSchema schema = 2; bool has_schema() const; void clear_schema(); @@ -1064,6 +1100,8 @@ class CollectionInfo : ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int64 > partitionids_; mutable std::atomic _partitionids_cached_byte_size_; ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::etcd::FieldIndexInfo > field_indexes_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField virtual_channel_names_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField physical_channel_names_; ::milvus::proto::schema::CollectionSchema* schema_; ::PROTOBUF_NAMESPACE_ID::int64 id_; ::PROTOBUF_NAMESPACE_ID::uint64 create_time_; @@ -2611,6 +2649,136 @@ CollectionInfo::field_indexes() const { return field_indexes_; } +// repeated string virtual_channel_names = 6; +inline int CollectionInfo::virtual_channel_names_size() const { + return virtual_channel_names_.size(); +} +inline void CollectionInfo::clear_virtual_channel_names() { + virtual_channel_names_.Clear(); +} +inline const std::string& CollectionInfo::virtual_channel_names(int index) const { + // @@protoc_insertion_point(field_get:milvus.proto.etcd.CollectionInfo.virtual_channel_names) + return virtual_channel_names_.Get(index); +} +inline std::string* CollectionInfo::mutable_virtual_channel_names(int index) { + // @@protoc_insertion_point(field_mutable:milvus.proto.etcd.CollectionInfo.virtual_channel_names) + return virtual_channel_names_.Mutable(index); +} +inline void CollectionInfo::set_virtual_channel_names(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:milvus.proto.etcd.CollectionInfo.virtual_channel_names) + virtual_channel_names_.Mutable(index)->assign(value); +} +inline void CollectionInfo::set_virtual_channel_names(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:milvus.proto.etcd.CollectionInfo.virtual_channel_names) + virtual_channel_names_.Mutable(index)->assign(std::move(value)); +} +inline void CollectionInfo::set_virtual_channel_names(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + virtual_channel_names_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:milvus.proto.etcd.CollectionInfo.virtual_channel_names) +} +inline void CollectionInfo::set_virtual_channel_names(int index, const char* value, size_t size) { + virtual_channel_names_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:milvus.proto.etcd.CollectionInfo.virtual_channel_names) +} +inline std::string* CollectionInfo::add_virtual_channel_names() { + // @@protoc_insertion_point(field_add_mutable:milvus.proto.etcd.CollectionInfo.virtual_channel_names) + return virtual_channel_names_.Add(); +} +inline void CollectionInfo::add_virtual_channel_names(const std::string& value) { + virtual_channel_names_.Add()->assign(value); + // @@protoc_insertion_point(field_add:milvus.proto.etcd.CollectionInfo.virtual_channel_names) +} +inline void CollectionInfo::add_virtual_channel_names(std::string&& value) { + virtual_channel_names_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:milvus.proto.etcd.CollectionInfo.virtual_channel_names) +} +inline void CollectionInfo::add_virtual_channel_names(const char* value) { + GOOGLE_DCHECK(value != nullptr); + virtual_channel_names_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:milvus.proto.etcd.CollectionInfo.virtual_channel_names) +} +inline void CollectionInfo::add_virtual_channel_names(const char* value, size_t size) { + virtual_channel_names_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:milvus.proto.etcd.CollectionInfo.virtual_channel_names) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& +CollectionInfo::virtual_channel_names() const { + // @@protoc_insertion_point(field_list:milvus.proto.etcd.CollectionInfo.virtual_channel_names) + return virtual_channel_names_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* +CollectionInfo::mutable_virtual_channel_names() { + // @@protoc_insertion_point(field_mutable_list:milvus.proto.etcd.CollectionInfo.virtual_channel_names) + return &virtual_channel_names_; +} + +// repeated string physical_channel_names = 7; +inline int CollectionInfo::physical_channel_names_size() const { + return physical_channel_names_.size(); +} +inline void CollectionInfo::clear_physical_channel_names() { + physical_channel_names_.Clear(); +} +inline const std::string& CollectionInfo::physical_channel_names(int index) const { + // @@protoc_insertion_point(field_get:milvus.proto.etcd.CollectionInfo.physical_channel_names) + return physical_channel_names_.Get(index); +} +inline std::string* CollectionInfo::mutable_physical_channel_names(int index) { + // @@protoc_insertion_point(field_mutable:milvus.proto.etcd.CollectionInfo.physical_channel_names) + return physical_channel_names_.Mutable(index); +} +inline void CollectionInfo::set_physical_channel_names(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:milvus.proto.etcd.CollectionInfo.physical_channel_names) + physical_channel_names_.Mutable(index)->assign(value); +} +inline void CollectionInfo::set_physical_channel_names(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:milvus.proto.etcd.CollectionInfo.physical_channel_names) + physical_channel_names_.Mutable(index)->assign(std::move(value)); +} +inline void CollectionInfo::set_physical_channel_names(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + physical_channel_names_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:milvus.proto.etcd.CollectionInfo.physical_channel_names) +} +inline void CollectionInfo::set_physical_channel_names(int index, const char* value, size_t size) { + physical_channel_names_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:milvus.proto.etcd.CollectionInfo.physical_channel_names) +} +inline std::string* CollectionInfo::add_physical_channel_names() { + // @@protoc_insertion_point(field_add_mutable:milvus.proto.etcd.CollectionInfo.physical_channel_names) + return physical_channel_names_.Add(); +} +inline void CollectionInfo::add_physical_channel_names(const std::string& value) { + physical_channel_names_.Add()->assign(value); + // @@protoc_insertion_point(field_add:milvus.proto.etcd.CollectionInfo.physical_channel_names) +} +inline void CollectionInfo::add_physical_channel_names(std::string&& value) { + physical_channel_names_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:milvus.proto.etcd.CollectionInfo.physical_channel_names) +} +inline void CollectionInfo::add_physical_channel_names(const char* value) { + GOOGLE_DCHECK(value != nullptr); + physical_channel_names_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:milvus.proto.etcd.CollectionInfo.physical_channel_names) +} +inline void CollectionInfo::add_physical_channel_names(const char* value, size_t size) { + physical_channel_names_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:milvus.proto.etcd.CollectionInfo.physical_channel_names) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& +CollectionInfo::physical_channel_names() const { + // @@protoc_insertion_point(field_list:milvus.proto.etcd.CollectionInfo.physical_channel_names) + return physical_channel_names_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* +CollectionInfo::mutable_physical_channel_names() { + // @@protoc_insertion_point(field_mutable_list:milvus.proto.etcd.CollectionInfo.physical_channel_names) + return &physical_channel_names_; +} + // ------------------------------------------------------------------- // SegmentIndexInfo diff --git a/internal/core/src/pb/milvus.pb.cc b/internal/core/src/pb/milvus.pb.cc index a9bb9043de..e182891bb2 100644 --- a/internal/core/src/pb/milvus.pb.cc +++ b/internal/core/src/pb/milvus.pb.cc @@ -1019,6 +1019,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_milvus_2eproto::offsets[] PROT PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::CreateCollectionRequest, db_name_), PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::CreateCollectionRequest, collection_name_), PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::CreateCollectionRequest, schema_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::CreateCollectionRequest, shards_num_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DropCollectionRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -1066,6 +1067,8 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_milvus_2eproto::offsets[] PROT PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionResponse, status_), PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionResponse, schema_), PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionResponse, collectionid_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionResponse, virtual_channel_names_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionResponse, physical_channel_names_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::LoadCollectionRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -1442,56 +1445,56 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_milvus_2eproto::offsets[] PROT }; static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::milvus::proto::milvus::CreateCollectionRequest)}, - { 9, -1, sizeof(::milvus::proto::milvus::DropCollectionRequest)}, - { 17, -1, sizeof(::milvus::proto::milvus::HasCollectionRequest)}, - { 25, -1, sizeof(::milvus::proto::milvus::BoolResponse)}, - { 32, -1, sizeof(::milvus::proto::milvus::StringResponse)}, - { 39, -1, sizeof(::milvus::proto::milvus::DescribeCollectionRequest)}, - { 48, -1, sizeof(::milvus::proto::milvus::DescribeCollectionResponse)}, - { 56, -1, sizeof(::milvus::proto::milvus::LoadCollectionRequest)}, - { 64, -1, sizeof(::milvus::proto::milvus::ReleaseCollectionRequest)}, - { 72, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsRequest)}, - { 80, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsResponse)}, - { 87, -1, sizeof(::milvus::proto::milvus::ShowCollectionsRequest)}, - { 94, -1, sizeof(::milvus::proto::milvus::ShowCollectionsResponse)}, - { 101, -1, sizeof(::milvus::proto::milvus::CreatePartitionRequest)}, - { 110, -1, sizeof(::milvus::proto::milvus::DropPartitionRequest)}, - { 119, -1, sizeof(::milvus::proto::milvus::HasPartitionRequest)}, - { 128, -1, sizeof(::milvus::proto::milvus::LoadPartitionsRequest)}, - { 137, -1, sizeof(::milvus::proto::milvus::ReleasePartitionsRequest)}, - { 146, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsRequest)}, - { 155, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsResponse)}, - { 162, -1, sizeof(::milvus::proto::milvus::ShowPartitionsRequest)}, - { 171, -1, sizeof(::milvus::proto::milvus::ShowPartitionsResponse)}, - { 179, -1, sizeof(::milvus::proto::milvus::DescribeSegmentRequest)}, - { 187, -1, sizeof(::milvus::proto::milvus::DescribeSegmentResponse)}, - { 196, -1, sizeof(::milvus::proto::milvus::ShowSegmentsRequest)}, - { 204, -1, sizeof(::milvus::proto::milvus::ShowSegmentsResponse)}, - { 211, -1, sizeof(::milvus::proto::milvus::CreateIndexRequest)}, - { 221, -1, sizeof(::milvus::proto::milvus::DescribeIndexRequest)}, - { 231, -1, sizeof(::milvus::proto::milvus::IndexDescription)}, - { 240, -1, sizeof(::milvus::proto::milvus::DescribeIndexResponse)}, - { 247, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressRequest)}, - { 257, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressResponse)}, - { 265, -1, sizeof(::milvus::proto::milvus::GetIndexStateRequest)}, - { 275, -1, sizeof(::milvus::proto::milvus::GetIndexStateResponse)}, - { 282, -1, sizeof(::milvus::proto::milvus::DropIndexRequest)}, - { 292, -1, sizeof(::milvus::proto::milvus::InsertRequest)}, - { 303, -1, sizeof(::milvus::proto::milvus::InsertResponse)}, - { 311, -1, sizeof(::milvus::proto::milvus::PlaceholderValue)}, - { 319, -1, sizeof(::milvus::proto::milvus::PlaceholderGroup)}, - { 325, -1, sizeof(::milvus::proto::milvus::SearchRequest)}, - { 338, -1, sizeof(::milvus::proto::milvus::Hits)}, - { 346, -1, sizeof(::milvus::proto::milvus::SearchResults)}, - { 353, -1, sizeof(::milvus::proto::milvus::FlushRequest)}, - { 361, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)}, - { 375, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)}, - { 383, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)}, - { 390, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)}, - { 402, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)}, - { 410, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)}, - { 417, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)}, - { 422, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)}, + { 10, -1, sizeof(::milvus::proto::milvus::DropCollectionRequest)}, + { 18, -1, sizeof(::milvus::proto::milvus::HasCollectionRequest)}, + { 26, -1, sizeof(::milvus::proto::milvus::BoolResponse)}, + { 33, -1, sizeof(::milvus::proto::milvus::StringResponse)}, + { 40, -1, sizeof(::milvus::proto::milvus::DescribeCollectionRequest)}, + { 49, -1, sizeof(::milvus::proto::milvus::DescribeCollectionResponse)}, + { 59, -1, sizeof(::milvus::proto::milvus::LoadCollectionRequest)}, + { 67, -1, sizeof(::milvus::proto::milvus::ReleaseCollectionRequest)}, + { 75, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsRequest)}, + { 83, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsResponse)}, + { 90, -1, sizeof(::milvus::proto::milvus::ShowCollectionsRequest)}, + { 97, -1, sizeof(::milvus::proto::milvus::ShowCollectionsResponse)}, + { 104, -1, sizeof(::milvus::proto::milvus::CreatePartitionRequest)}, + { 113, -1, sizeof(::milvus::proto::milvus::DropPartitionRequest)}, + { 122, -1, sizeof(::milvus::proto::milvus::HasPartitionRequest)}, + { 131, -1, sizeof(::milvus::proto::milvus::LoadPartitionsRequest)}, + { 140, -1, sizeof(::milvus::proto::milvus::ReleasePartitionsRequest)}, + { 149, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsRequest)}, + { 158, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsResponse)}, + { 165, -1, sizeof(::milvus::proto::milvus::ShowPartitionsRequest)}, + { 174, -1, sizeof(::milvus::proto::milvus::ShowPartitionsResponse)}, + { 182, -1, sizeof(::milvus::proto::milvus::DescribeSegmentRequest)}, + { 190, -1, sizeof(::milvus::proto::milvus::DescribeSegmentResponse)}, + { 199, -1, sizeof(::milvus::proto::milvus::ShowSegmentsRequest)}, + { 207, -1, sizeof(::milvus::proto::milvus::ShowSegmentsResponse)}, + { 214, -1, sizeof(::milvus::proto::milvus::CreateIndexRequest)}, + { 224, -1, sizeof(::milvus::proto::milvus::DescribeIndexRequest)}, + { 234, -1, sizeof(::milvus::proto::milvus::IndexDescription)}, + { 243, -1, sizeof(::milvus::proto::milvus::DescribeIndexResponse)}, + { 250, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressRequest)}, + { 260, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressResponse)}, + { 268, -1, sizeof(::milvus::proto::milvus::GetIndexStateRequest)}, + { 278, -1, sizeof(::milvus::proto::milvus::GetIndexStateResponse)}, + { 285, -1, sizeof(::milvus::proto::milvus::DropIndexRequest)}, + { 295, -1, sizeof(::milvus::proto::milvus::InsertRequest)}, + { 306, -1, sizeof(::milvus::proto::milvus::InsertResponse)}, + { 314, -1, sizeof(::milvus::proto::milvus::PlaceholderValue)}, + { 322, -1, sizeof(::milvus::proto::milvus::PlaceholderGroup)}, + { 328, -1, sizeof(::milvus::proto::milvus::SearchRequest)}, + { 341, -1, sizeof(::milvus::proto::milvus::Hits)}, + { 349, -1, sizeof(::milvus::proto::milvus::SearchResults)}, + { 356, -1, sizeof(::milvus::proto::milvus::FlushRequest)}, + { 364, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)}, + { 378, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)}, + { 386, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)}, + { 393, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)}, + { 405, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)}, + { 413, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)}, + { 420, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)}, + { 425, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)}, }; static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { @@ -1550,241 +1553,244 @@ static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = const char descriptor_table_protodef_milvus_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = "\n\014milvus.proto\022\023milvus.proto.milvus\032\014com" - "mon.proto\032\014schema.proto\"\177\n\027CreateCollect" - "ionRequest\022*\n\004base\030\001 \001(\0132\034.milvus.proto." - "common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017colle" - "ction_name\030\003 \001(\t\022\016\n\006schema\030\004 \001(\014\"m\n\025Drop" - "CollectionRequest\022*\n\004base\030\001 \001(\0132\034.milvus" - ".proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027" - "\n\017collection_name\030\003 \001(\t\"l\n\024HasCollection" - "Request\022*\n\004base\030\001 \001(\0132\034.milvus.proto.com" - "mon.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collecti" - "on_name\030\003 \001(\t\"J\n\014BoolResponse\022+\n\006status\030" - "\001 \001(\0132\033.milvus.proto.common.Status\022\r\n\005va" - "lue\030\002 \001(\010\"L\n\016StringResponse\022+\n\006status\030\001 " - "\001(\0132\033.milvus.proto.common.Status\022\r\n\005valu" - "e\030\002 \001(\t\"\207\001\n\031DescribeCollectionRequest\022*\n" - "\004base\030\001 \001(\0132\034.milvus.proto.common.MsgBas" - "e\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 " - "\001(\t\022\024\n\014collectionID\030\004 \001(\003\"\226\001\n\032DescribeCo" - "llectionResponse\022+\n\006status\030\001 \001(\0132\033.milvu" - "s.proto.common.Status\0225\n\006schema\030\002 \001(\0132%." - "milvus.proto.schema.CollectionSchema\022\024\n\014" - "collectionID\030\003 \001(\003\"m\n\025LoadCollectionRequ" - "est\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common." - "MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_n" - "ame\030\003 \001(\t\"p\n\030ReleaseCollectionRequest\022*\n" - "\004base\030\001 \001(\0132\034.milvus.proto.common.MsgBas" - "e\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 " - "\001(\t\"v\n\036GetCollectionStatisticsRequest\022*\n" - "\004base\030\001 \001(\0132\034.milvus.proto.common.MsgBas" - "e\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 " - "\001(\t\"\200\001\n\037GetCollectionStatisticsResponse\022" - "+\n\006status\030\001 \001(\0132\033.milvus.proto.common.St" - "atus\0220\n\005stats\030\002 \003(\0132!.milvus.proto.commo" - "n.KeyValuePair\"U\n\026ShowCollectionsRequest" - "\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Msg" - "Base\022\017\n\007db_name\030\002 \001(\t\"`\n\027ShowCollections" - "Response\022+\n\006status\030\001 \001(\0132\033.milvus.proto." - "common.Status\022\030\n\020collection_names\030\002 \003(\t\"" - "\206\001\n\026CreatePartitionRequest\022*\n\004base\030\001 \001(\013" - "2\034.milvus.proto.common.MsgBase\022\017\n\007db_nam" - "e\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\026\n\016part" - "ition_name\030\004 \001(\t\"\204\001\n\024DropPartitionReques" - "t\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Ms" - "gBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_nam" - "e\030\003 \001(\t\022\026\n\016partition_name\030\004 \001(\t\"\203\001\n\023HasP" - "artitionRequest\022*\n\004base\030\001 \001(\0132\034.milvus.p" - "roto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017" - "collection_name\030\003 \001(\t\022\026\n\016partition_name\030" - "\004 \001(\t\"\206\001\n\025LoadPartitionsRequest\022*\n\004base\030" - "\001 \001(\0132\034.milvus.proto.common.MsgBase\022\017\n\007d" - "b_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\027\n" - "\017partition_names\030\004 \003(\t\"\211\001\n\030ReleasePartit" - "ionsRequest\022*\n\004base\030\001 \001(\0132\034.milvus.proto" + "mon.proto\032\014schema.proto\"\223\001\n\027CreateCollec" + "tionRequest\022*\n\004base\030\001 \001(\0132\034.milvus.proto" ".common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017coll" - "ection_name\030\003 \001(\t\022\027\n\017partition_names\030\004 \003" - "(\t\"\215\001\n\035GetPartitionStatisticsRequest\022*\n\004" - "base\030\001 \001(\0132\034.milvus.proto.common.MsgBase" - "\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001" - "(\t\022\026\n\016partition_name\030\004 \001(\t\"\177\n\036GetPartiti" - "onStatisticsResponse\022+\n\006status\030\001 \001(\0132\033.m" - "ilvus.proto.common.Status\0220\n\005stats\030\002 \003(\013" - "2!.milvus.proto.common.KeyValuePair\"\203\001\n\025" - "ShowPartitionsRequest\022*\n\004base\030\001 \001(\0132\034.mi" - "lvus.proto.common.MsgBase\022\017\n\007db_name\030\002 \001" - "(\t\022\027\n\017collection_name\030\003 \001(\t\022\024\n\014collectio" - "nID\030\004 \001(\003\"t\n\026ShowPartitionsResponse\022+\n\006s" - "tatus\030\001 \001(\0132\033.milvus.proto.common.Status" - "\022\027\n\017partition_names\030\002 \003(\t\022\024\n\014partitionID" - "s\030\003 \003(\003\"m\n\026DescribeSegmentRequest\022*\n\004bas" - "e\030\001 \001(\0132\034.milvus.proto.common.MsgBase\022\024\n" - "\014collectionID\030\002 \001(\003\022\021\n\tsegmentID\030\003 \001(\003\"~" - "\n\027DescribeSegmentResponse\022+\n\006status\030\001 \001(" - "\0132\033.milvus.proto.common.Status\022\017\n\007indexI" - "D\030\002 \001(\003\022\017\n\007buildID\030\003 \001(\003\022\024\n\014enable_index" - "\030\004 \001(\010\"l\n\023ShowSegmentsRequest\022*\n\004base\030\001 " - "\001(\0132\034.milvus.proto.common.MsgBase\022\024\n\014col" - "lectionID\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003\"W\n\024" - "ShowSegmentsResponse\022+\n\006status\030\001 \001(\0132\033.m" - "ilvus.proto.common.Status\022\022\n\nsegmentIDs\030" - "\002 \003(\003\"\267\001\n\022CreateIndexRequest\022*\n\004base\030\001 \001" - "(\0132\034.milvus.proto.common.MsgBase\022\017\n\007db_n" - "ame\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\022\n\nfi" - "eld_name\030\004 \001(\t\0227\n\014extra_params\030\005 \003(\0132!.m" - "ilvus.proto.common.KeyValuePair\"\224\001\n\024Desc" - "ribeIndexRequest\022*\n\004base\030\001 \001(\0132\034.milvus." - "proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n" - "\017collection_name\030\003 \001(\t\022\022\n\nfield_name\030\004 \001" - "(\t\022\022\n\nindex_name\030\005 \001(\t\"~\n\020IndexDescripti" - "on\022\022\n\nindex_name\030\001 \001(\t\022\017\n\007indexID\030\002 \001(\003\022" - "1\n\006params\030\003 \003(\0132!.milvus.proto.common.Ke" - "yValuePair\022\022\n\nfield_name\030\004 \001(\t\"\207\001\n\025Descr" - "ibeIndexResponse\022+\n\006status\030\001 \001(\0132\033.milvu" - "s.proto.common.Status\022A\n\022index_descripti" - "ons\030\002 \003(\0132%.milvus.proto.milvus.IndexDes" - "cription\"\234\001\n\034GetIndexBuildProgressReques" - "t\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Ms" - "gBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_nam" - "e\030\003 \001(\t\022\022\n\nfield_name\030\004 \001(\t\022\022\n\nindex_nam" - "e\030\005 \001(\t\"v\n\035GetIndexBuildProgressResponse" - "\022+\n\006status\030\001 \001(\0132\033.milvus.proto.common.S" - "tatus\022\024\n\014indexed_rows\030\002 \001(\003\022\022\n\ntotal_row" - "s\030\003 \001(\003\"\224\001\n\024GetIndexStateRequest\022*\n\004base" - "\030\001 \001(\0132\034.milvus.proto.common.MsgBase\022\017\n\007" - "db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\022" - "\n\nfield_name\030\004 \001(\t\022\022\n\nindex_name\030\005 \001(\t\"t" - "\n\025GetIndexStateResponse\022+\n\006status\030\001 \001(\0132" - "\033.milvus.proto.common.Status\022.\n\005state\030\002 " - "\001(\0162\037.milvus.proto.common.IndexState\"\220\001\n" - "\020DropIndexRequest\022*\n\004base\030\001 \001(\0132\034.milvus" - ".proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027" - "\n\017collection_name\030\003 \001(\t\022\022\n\nfield_name\030\004 " - "\001(\t\022\022\n\nindex_name\030\005 \001(\t\"\275\001\n\rInsertReques" - "t\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Ms" - "gBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_nam" - "e\030\003 \001(\t\022\026\n\016partition_name\030\004 \001(\t\022+\n\010row_d" - "ata\030\005 \003(\0132\031.milvus.proto.common.Blob\022\021\n\t" - "hash_keys\030\006 \003(\r\"e\n\016InsertResponse\022+\n\006sta" - "tus\030\001 \001(\0132\033.milvus.proto.common.Status\022\023" - "\n\013rowID_begin\030\002 \001(\003\022\021\n\trowID_end\030\003 \001(\003\"c" - "\n\020PlaceholderValue\022\013\n\003tag\030\001 \001(\t\0222\n\004type\030" - "\002 \001(\0162$.milvus.proto.milvus.PlaceholderT" - "ype\022\016\n\006values\030\003 \003(\014\"O\n\020PlaceholderGroup\022" - ";\n\014placeholders\030\001 \003(\0132%.milvus.proto.mil" - "vus.PlaceholderValue\"\220\002\n\rSearchRequest\022*" + "ection_name\030\003 \001(\t\022\016\n\006schema\030\004 \001(\014\022\022\n\nsha" + "rds_num\030\005 \001(\005\"m\n\025DropCollectionRequest\022*" "\n\004base\030\001 \001(\0132\034.milvus.proto.common.MsgBa" "se\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003" - " \001(\t\022\027\n\017partition_names\030\004 \003(\t\022\013\n\003dsl\030\005 \001" - "(\t\022\031\n\021placeholder_group\030\006 \001(\014\022.\n\010dsl_typ" - "e\030\007 \001(\0162\034.milvus.proto.common.DslType\0228\n" - "\rsearch_params\030\010 \003(\0132!.milvus.proto.comm" - "on.KeyValuePair\"5\n\004Hits\022\013\n\003IDs\030\001 \003(\003\022\020\n\010" - "row_data\030\002 \003(\014\022\016\n\006scores\030\003 \003(\002\"J\n\rSearch" - "Results\022+\n\006status\030\001 \001(\0132\033.milvus.proto.c" - "ommon.Status\022\014\n\004hits\030\002 \003(\014\"e\n\014FlushReque" - "st\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.M" - "sgBase\022\017\n\007db_name\030\002 \001(\t\022\030\n\020collection_na" - "mes\030\003 \003(\t\"\351\001\n\025PersistentSegmentInfo\022\021\n\ts" - "egmentID\030\001 \001(\003\022\024\n\014collectionID\030\002 \001(\003\022\023\n\013" - "partitionID\030\003 \001(\003\022\021\n\topen_time\030\004 \001(\004\022\023\n\013" - "sealed_time\030\005 \001(\004\022\024\n\014flushed_time\030\006 \001(\004\022" - "\020\n\010num_rows\030\007 \001(\003\022\020\n\010mem_size\030\010 \001(\003\0220\n\005s" - "tate\030\t \001(\0162!.milvus.proto.common.Segment" - "State\"u\n\037GetPersistentSegmentInfoRequest" + " \001(\t\"l\n\024HasCollectionRequest\022*\n\004base\030\001 \001" + "(\0132\034.milvus.proto.common.MsgBase\022\017\n\007db_n" + "ame\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\"J\n\014Bo" + "olResponse\022+\n\006status\030\001 \001(\0132\033.milvus.prot" + "o.common.Status\022\r\n\005value\030\002 \001(\010\"L\n\016String" + "Response\022+\n\006status\030\001 \001(\0132\033.milvus.proto." + "common.Status\022\r\n\005value\030\002 \001(\t\"\207\001\n\031Describ" + "eCollectionRequest\022*\n\004base\030\001 \001(\0132\034.milvu" + "s.proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022" + "\027\n\017collection_name\030\003 \001(\t\022\024\n\014collectionID" + "\030\004 \001(\003\"\325\001\n\032DescribeCollectionResponse\022+\n" + "\006status\030\001 \001(\0132\033.milvus.proto.common.Stat" + "us\0225\n\006schema\030\002 \001(\0132%.milvus.proto.schema" + ".CollectionSchema\022\024\n\014collectionID\030\003 \001(\003\022" + "\035\n\025virtual_channel_names\030\004 \003(\t\022\036\n\026physic" + "al_channel_names\030\005 \003(\t\"m\n\025LoadCollection" + "Request\022*\n\004base\030\001 \001(\0132\034.milvus.proto.com" + "mon.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collecti" + "on_name\030\003 \001(\t\"p\n\030ReleaseCollectionReques" + "t\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Ms" + "gBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_nam" + "e\030\003 \001(\t\"v\n\036GetCollectionStatisticsReques" + "t\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Ms" + "gBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_nam" + "e\030\003 \001(\t\"\200\001\n\037GetCollectionStatisticsRespo" + "nse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.commo" + "n.Status\0220\n\005stats\030\002 \003(\0132!.milvus.proto.c" + "ommon.KeyValuePair\"U\n\026ShowCollectionsReq" + "uest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common" + ".MsgBase\022\017\n\007db_name\030\002 \001(\t\"`\n\027ShowCollect" + "ionsResponse\022+\n\006status\030\001 \001(\0132\033.milvus.pr" + "oto.common.Status\022\030\n\020collection_names\030\002 " + "\003(\t\"\206\001\n\026CreatePartitionRequest\022*\n\004base\030\001" + " \001(\0132\034.milvus.proto.common.MsgBase\022\017\n\007db" + "_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\026\n\016" + "partition_name\030\004 \001(\t\"\204\001\n\024DropPartitionRe" + "quest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.commo" + "n.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection" + "_name\030\003 \001(\t\022\026\n\016partition_name\030\004 \001(\t\"\203\001\n\023" + "HasPartitionRequest\022*\n\004base\030\001 \001(\0132\034.milv" + "us.proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t" + "\022\027\n\017collection_name\030\003 \001(\t\022\026\n\016partition_n" + "ame\030\004 \001(\t\"\206\001\n\025LoadPartitionsRequest\022*\n\004b" + "ase\030\001 \001(\0132\034.milvus.proto.common.MsgBase\022" + "\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(" + "\t\022\027\n\017partition_names\030\004 \003(\t\"\211\001\n\030ReleasePa" + "rtitionsRequest\022*\n\004base\030\001 \001(\0132\034.milvus.p" + "roto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017" + "collection_name\030\003 \001(\t\022\027\n\017partition_names" + "\030\004 \003(\t\"\215\001\n\035GetPartitionStatisticsRequest" "\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Msg" - "Base\022\016\n\006dbName\030\002 \001(\t\022\026\n\016collectionName\030\003" - " \001(\t\"\212\001\n GetPersistentSegmentInfoRespons" - "e\022+\n\006status\030\001 \001(\0132\033.milvus.proto.common." - "Status\0229\n\005infos\030\002 \003(\0132*.milvus.proto.mil" - "vus.PersistentSegmentInfo\"\231\001\n\020QuerySegme" - "ntInfo\022\021\n\tsegmentID\030\001 \001(\003\022\024\n\014collectionI" - "D\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003\022\020\n\010mem_size" - "\030\004 \001(\003\022\020\n\010num_rows\030\005 \001(\003\022\022\n\nindex_name\030\006" - " \001(\t\022\017\n\007indexID\030\007 \001(\003\"p\n\032GetQuerySegment" - "InfoRequest\022*\n\004base\030\001 \001(\0132\034.milvus.proto" - ".common.MsgBase\022\016\n\006dbName\030\002 \001(\t\022\026\n\016colle" - "ctionName\030\003 \001(\t\"\200\001\n\033GetQuerySegmentInfoR" - "esponse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.c" - "ommon.Status\0224\n\005infos\030\002 \003(\0132%.milvus.pro" - "to.milvus.QuerySegmentInfo\"\025\n\023RegisterLi" - "nkRequest\"r\n\024RegisterLinkResponse\022-\n\007add" - "ress\030\001 \001(\0132\034.milvus.proto.common.Address" - "\022+\n\006status\030\002 \001(\0132\033.milvus.proto.common.S" - "tatus*>\n\017PlaceholderType\022\010\n\004None\020\000\022\020\n\014Bi" - "naryVector\020d\022\017\n\013FloatVector\020e2\220\025\n\rMilvus" - "Service\022_\n\020CreateCollection\022,.milvus.pro" - "to.milvus.CreateCollectionRequest\032\033.milv" - "us.proto.common.Status\"\000\022[\n\016DropCollecti" - "on\022*.milvus.proto.milvus.DropCollectionR" - "equest\032\033.milvus.proto.common.Status\"\000\022_\n" - "\rHasCollection\022).milvus.proto.milvus.Has" - "CollectionRequest\032!.milvus.proto.milvus." - "BoolResponse\"\000\022[\n\016LoadCollection\022*.milvu" - "s.proto.milvus.LoadCollectionRequest\032\033.m" - "ilvus.proto.common.Status\"\000\022a\n\021ReleaseCo" - "llection\022-.milvus.proto.milvus.ReleaseCo" - "llectionRequest\032\033.milvus.proto.common.St" - "atus\"\000\022w\n\022DescribeCollection\022..milvus.pr" - "oto.milvus.DescribeCollectionRequest\032/.m" - "ilvus.proto.milvus.DescribeCollectionRes" - "ponse\"\000\022\206\001\n\027GetCollectionStatistics\0223.mi" - "lvus.proto.milvus.GetCollectionStatistic" - "sRequest\0324.milvus.proto.milvus.GetCollec" - "tionStatisticsResponse\"\000\022n\n\017ShowCollecti" - "ons\022+.milvus.proto.milvus.ShowCollection" - "sRequest\032,.milvus.proto.milvus.ShowColle" - "ctionsResponse\"\000\022]\n\017CreatePartition\022+.mi" - "lvus.proto.milvus.CreatePartitionRequest" - "\032\033.milvus.proto.common.Status\"\000\022Y\n\rDropP" - "artition\022).milvus.proto.milvus.DropParti" - "tionRequest\032\033.milvus.proto.common.Status" - "\"\000\022]\n\014HasPartition\022(.milvus.proto.milvus" - ".HasPartitionRequest\032!.milvus.proto.milv" - "us.BoolResponse\"\000\022[\n\016LoadPartitions\022*.mi" - "lvus.proto.milvus.LoadPartitionsRequest\032" - "\033.milvus.proto.common.Status\"\000\022a\n\021Releas" - "ePartitions\022-.milvus.proto.milvus.Releas" - "ePartitionsRequest\032\033.milvus.proto.common" - ".Status\"\000\022\203\001\n\026GetPartitionStatistics\0222.m" - "ilvus.proto.milvus.GetPartitionStatistic" - "sRequest\0323.milvus.proto.milvus.GetPartit" - "ionStatisticsResponse\"\000\022k\n\016ShowPartition" - "s\022*.milvus.proto.milvus.ShowPartitionsRe" - "quest\032+.milvus.proto.milvus.ShowPartitio" - "nsResponse\"\000\022U\n\013CreateIndex\022\'.milvus.pro" - "to.milvus.CreateIndexRequest\032\033.milvus.pr" - "oto.common.Status\"\000\022h\n\rDescribeIndex\022).m" - "ilvus.proto.milvus.DescribeIndexRequest\032" - "*.milvus.proto.milvus.DescribeIndexRespo" - "nse\"\000\022h\n\rGetIndexState\022).milvus.proto.mi" - "lvus.GetIndexStateRequest\032*.milvus.proto" - ".milvus.GetIndexStateResponse\"\000\022\200\001\n\025GetI" - "ndexBuildProgress\0221.milvus.proto.milvus." - "GetIndexBuildProgressRequest\0322.milvus.pr" - "oto.milvus.GetIndexBuildProgressResponse" - "\"\000\022Q\n\tDropIndex\022%.milvus.proto.milvus.Dr" - "opIndexRequest\032\033.milvus.proto.common.Sta" - "tus\"\000\022S\n\006Insert\022\".milvus.proto.milvus.In" - "sertRequest\032#.milvus.proto.milvus.Insert" - "Response\"\000\022R\n\006Search\022\".milvus.proto.milv" - "us.SearchRequest\032\".milvus.proto.milvus.S" - "earchResults\"\000\022I\n\005Flush\022!.milvus.proto.m" - "ilvus.FlushRequest\032\033.milvus.proto.common" - ".Status\"\000\022\211\001\n\030GetPersistentSegmentInfo\0224" - ".milvus.proto.milvus.GetPersistentSegmen" - "tInfoRequest\0325.milvus.proto.milvus.GetPe" - "rsistentSegmentInfoResponse\"\000\022z\n\023GetQuer" - "ySegmentInfo\022/.milvus.proto.milvus.GetQu" - "erySegmentInfoRequest\0320.milvus.proto.mil" - "vus.GetQuerySegmentInfoResponse\"\000\022e\n\014Reg" - "isterLink\022(.milvus.proto.milvus.Register" - "LinkRequest\032).milvus.proto.milvus.Regist" - "erLinkResponse\"\0002u\n\014ProxyService\022e\n\014Regi" - "sterLink\022(.milvus.proto.milvus.RegisterL" - "inkRequest\032).milvus.proto.milvus.Registe" - "rLinkResponse\"\000B5Z3github.com/milvus-io/" - "milvus/internal/proto/milvuspbb\006proto3" + "Base\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name" + "\030\003 \001(\t\022\026\n\016partition_name\030\004 \001(\t\"\177\n\036GetPar" + "titionStatisticsResponse\022+\n\006status\030\001 \001(\013" + "2\033.milvus.proto.common.Status\0220\n\005stats\030\002" + " \003(\0132!.milvus.proto.common.KeyValuePair\"" + "\203\001\n\025ShowPartitionsRequest\022*\n\004base\030\001 \001(\0132" + "\034.milvus.proto.common.MsgBase\022\017\n\007db_name" + "\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\024\n\014colle" + "ctionID\030\004 \001(\003\"t\n\026ShowPartitionsResponse\022" + "+\n\006status\030\001 \001(\0132\033.milvus.proto.common.St" + "atus\022\027\n\017partition_names\030\002 \003(\t\022\024\n\014partiti" + "onIDs\030\003 \003(\003\"m\n\026DescribeSegmentRequest\022*\n" + "\004base\030\001 \001(\0132\034.milvus.proto.common.MsgBas" + "e\022\024\n\014collectionID\030\002 \001(\003\022\021\n\tsegmentID\030\003 \001" + "(\003\"~\n\027DescribeSegmentResponse\022+\n\006status\030" + "\001 \001(\0132\033.milvus.proto.common.Status\022\017\n\007in" + "dexID\030\002 \001(\003\022\017\n\007buildID\030\003 \001(\003\022\024\n\014enable_i" + "ndex\030\004 \001(\010\"l\n\023ShowSegmentsRequest\022*\n\004bas" + "e\030\001 \001(\0132\034.milvus.proto.common.MsgBase\022\024\n" + "\014collectionID\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003" + "\"W\n\024ShowSegmentsResponse\022+\n\006status\030\001 \001(\013" + "2\033.milvus.proto.common.Status\022\022\n\nsegment" + "IDs\030\002 \003(\003\"\267\001\n\022CreateIndexRequest\022*\n\004base" + "\030\001 \001(\0132\034.milvus.proto.common.MsgBase\022\017\n\007" + "db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\022" + "\n\nfield_name\030\004 \001(\t\0227\n\014extra_params\030\005 \003(\013" + "2!.milvus.proto.common.KeyValuePair\"\224\001\n\024" + "DescribeIndexRequest\022*\n\004base\030\001 \001(\0132\034.mil" + "vus.proto.common.MsgBase\022\017\n\007db_name\030\002 \001(" + "\t\022\027\n\017collection_name\030\003 \001(\t\022\022\n\nfield_name" + "\030\004 \001(\t\022\022\n\nindex_name\030\005 \001(\t\"~\n\020IndexDescr" + "iption\022\022\n\nindex_name\030\001 \001(\t\022\017\n\007indexID\030\002 " + "\001(\003\0221\n\006params\030\003 \003(\0132!.milvus.proto.commo" + "n.KeyValuePair\022\022\n\nfield_name\030\004 \001(\t\"\207\001\n\025D" + "escribeIndexResponse\022+\n\006status\030\001 \001(\0132\033.m" + "ilvus.proto.common.Status\022A\n\022index_descr" + "iptions\030\002 \003(\0132%.milvus.proto.milvus.Inde" + "xDescription\"\234\001\n\034GetIndexBuildProgressRe" + "quest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.commo" + "n.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection" + "_name\030\003 \001(\t\022\022\n\nfield_name\030\004 \001(\t\022\022\n\nindex" + "_name\030\005 \001(\t\"v\n\035GetIndexBuildProgressResp" + "onse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.comm" + "on.Status\022\024\n\014indexed_rows\030\002 \001(\003\022\022\n\ntotal" + "_rows\030\003 \001(\003\"\224\001\n\024GetIndexStateRequest\022*\n\004" + "base\030\001 \001(\0132\034.milvus.proto.common.MsgBase" + "\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001" + "(\t\022\022\n\nfield_name\030\004 \001(\t\022\022\n\nindex_name\030\005 \001" + "(\t\"t\n\025GetIndexStateResponse\022+\n\006status\030\001 " + "\001(\0132\033.milvus.proto.common.Status\022.\n\005stat" + "e\030\002 \001(\0162\037.milvus.proto.common.IndexState" + "\"\220\001\n\020DropIndexRequest\022*\n\004base\030\001 \001(\0132\034.mi" + "lvus.proto.common.MsgBase\022\017\n\007db_name\030\002 \001" + "(\t\022\027\n\017collection_name\030\003 \001(\t\022\022\n\nfield_nam" + "e\030\004 \001(\t\022\022\n\nindex_name\030\005 \001(\t\"\275\001\n\rInsertRe" + "quest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.commo" + "n.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection" + "_name\030\003 \001(\t\022\026\n\016partition_name\030\004 \001(\t\022+\n\010r" + "ow_data\030\005 \003(\0132\031.milvus.proto.common.Blob" + "\022\021\n\thash_keys\030\006 \003(\r\"e\n\016InsertResponse\022+\n" + "\006status\030\001 \001(\0132\033.milvus.proto.common.Stat" + "us\022\023\n\013rowID_begin\030\002 \001(\003\022\021\n\trowID_end\030\003 \001" + "(\003\"c\n\020PlaceholderValue\022\013\n\003tag\030\001 \001(\t\0222\n\004t" + "ype\030\002 \001(\0162$.milvus.proto.milvus.Placehol" + "derType\022\016\n\006values\030\003 \003(\014\"O\n\020PlaceholderGr" + "oup\022;\n\014placeholders\030\001 \003(\0132%.milvus.proto" + ".milvus.PlaceholderValue\"\220\002\n\rSearchReque" + "st\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.M" + "sgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_na" + "me\030\003 \001(\t\022\027\n\017partition_names\030\004 \003(\t\022\013\n\003dsl" + "\030\005 \001(\t\022\031\n\021placeholder_group\030\006 \001(\014\022.\n\010dsl" + "_type\030\007 \001(\0162\034.milvus.proto.common.DslTyp" + "e\0228\n\rsearch_params\030\010 \003(\0132!.milvus.proto." + "common.KeyValuePair\"5\n\004Hits\022\013\n\003IDs\030\001 \003(\003" + "\022\020\n\010row_data\030\002 \003(\014\022\016\n\006scores\030\003 \003(\002\"J\n\rSe" + "archResults\022+\n\006status\030\001 \001(\0132\033.milvus.pro" + "to.common.Status\022\014\n\004hits\030\002 \003(\014\"e\n\014FlushR" + "equest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.comm" + "on.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\030\n\020collectio" + "n_names\030\003 \003(\t\"\351\001\n\025PersistentSegmentInfo\022" + "\021\n\tsegmentID\030\001 \001(\003\022\024\n\014collectionID\030\002 \001(\003" + "\022\023\n\013partitionID\030\003 \001(\003\022\021\n\topen_time\030\004 \001(\004" + "\022\023\n\013sealed_time\030\005 \001(\004\022\024\n\014flushed_time\030\006 " + "\001(\004\022\020\n\010num_rows\030\007 \001(\003\022\020\n\010mem_size\030\010 \001(\003\022" + "0\n\005state\030\t \001(\0162!.milvus.proto.common.Seg" + "mentState\"u\n\037GetPersistentSegmentInfoReq" + "uest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common" + ".MsgBase\022\016\n\006dbName\030\002 \001(\t\022\026\n\016collectionNa" + "me\030\003 \001(\t\"\212\001\n GetPersistentSegmentInfoRes" + "ponse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.com" + "mon.Status\0229\n\005infos\030\002 \003(\0132*.milvus.proto" + ".milvus.PersistentSegmentInfo\"\231\001\n\020QueryS" + "egmentInfo\022\021\n\tsegmentID\030\001 \001(\003\022\024\n\014collect" + "ionID\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003\022\020\n\010mem_" + "size\030\004 \001(\003\022\020\n\010num_rows\030\005 \001(\003\022\022\n\nindex_na" + "me\030\006 \001(\t\022\017\n\007indexID\030\007 \001(\003\"p\n\032GetQuerySeg" + "mentInfoRequest\022*\n\004base\030\001 \001(\0132\034.milvus.p" + "roto.common.MsgBase\022\016\n\006dbName\030\002 \001(\t\022\026\n\016c" + "ollectionName\030\003 \001(\t\"\200\001\n\033GetQuerySegmentI" + "nfoResponse\022+\n\006status\030\001 \001(\0132\033.milvus.pro" + "to.common.Status\0224\n\005infos\030\002 \003(\0132%.milvus" + ".proto.milvus.QuerySegmentInfo\"\025\n\023Regist" + "erLinkRequest\"r\n\024RegisterLinkResponse\022-\n" + "\007address\030\001 \001(\0132\034.milvus.proto.common.Add" + "ress\022+\n\006status\030\002 \001(\0132\033.milvus.proto.comm" + "on.Status*>\n\017PlaceholderType\022\010\n\004None\020\000\022\020" + "\n\014BinaryVector\020d\022\017\n\013FloatVector\020e2\220\025\n\rMi" + "lvusService\022_\n\020CreateCollection\022,.milvus" + ".proto.milvus.CreateCollectionRequest\032\033." + "milvus.proto.common.Status\"\000\022[\n\016DropColl" + "ection\022*.milvus.proto.milvus.DropCollect" + "ionRequest\032\033.milvus.proto.common.Status\"" + "\000\022_\n\rHasCollection\022).milvus.proto.milvus" + ".HasCollectionRequest\032!.milvus.proto.mil" + "vus.BoolResponse\"\000\022[\n\016LoadCollection\022*.m" + "ilvus.proto.milvus.LoadCollectionRequest" + "\032\033.milvus.proto.common.Status\"\000\022a\n\021Relea" + "seCollection\022-.milvus.proto.milvus.Relea" + "seCollectionRequest\032\033.milvus.proto.commo" + "n.Status\"\000\022w\n\022DescribeCollection\022..milvu" + "s.proto.milvus.DescribeCollectionRequest" + "\032/.milvus.proto.milvus.DescribeCollectio" + "nResponse\"\000\022\206\001\n\027GetCollectionStatistics\022" + "3.milvus.proto.milvus.GetCollectionStati" + "sticsRequest\0324.milvus.proto.milvus.GetCo" + "llectionStatisticsResponse\"\000\022n\n\017ShowColl" + "ections\022+.milvus.proto.milvus.ShowCollec" + "tionsRequest\032,.milvus.proto.milvus.ShowC" + "ollectionsResponse\"\000\022]\n\017CreatePartition\022" + "+.milvus.proto.milvus.CreatePartitionReq" + "uest\032\033.milvus.proto.common.Status\"\000\022Y\n\rD" + "ropPartition\022).milvus.proto.milvus.DropP" + "artitionRequest\032\033.milvus.proto.common.St" + "atus\"\000\022]\n\014HasPartition\022(.milvus.proto.mi" + "lvus.HasPartitionRequest\032!.milvus.proto." + "milvus.BoolResponse\"\000\022[\n\016LoadPartitions\022" + "*.milvus.proto.milvus.LoadPartitionsRequ" + "est\032\033.milvus.proto.common.Status\"\000\022a\n\021Re" + "leasePartitions\022-.milvus.proto.milvus.Re" + "leasePartitionsRequest\032\033.milvus.proto.co" + "mmon.Status\"\000\022\203\001\n\026GetPartitionStatistics" + "\0222.milvus.proto.milvus.GetPartitionStati" + "sticsRequest\0323.milvus.proto.milvus.GetPa" + "rtitionStatisticsResponse\"\000\022k\n\016ShowParti" + "tions\022*.milvus.proto.milvus.ShowPartitio" + "nsRequest\032+.milvus.proto.milvus.ShowPart" + "itionsResponse\"\000\022U\n\013CreateIndex\022\'.milvus" + ".proto.milvus.CreateIndexRequest\032\033.milvu" + "s.proto.common.Status\"\000\022h\n\rDescribeIndex" + "\022).milvus.proto.milvus.DescribeIndexRequ" + "est\032*.milvus.proto.milvus.DescribeIndexR" + "esponse\"\000\022h\n\rGetIndexState\022).milvus.prot" + "o.milvus.GetIndexStateRequest\032*.milvus.p" + "roto.milvus.GetIndexStateResponse\"\000\022\200\001\n\025" + "GetIndexBuildProgress\0221.milvus.proto.mil" + "vus.GetIndexBuildProgressRequest\0322.milvu" + "s.proto.milvus.GetIndexBuildProgressResp" + "onse\"\000\022Q\n\tDropIndex\022%.milvus.proto.milvu" + "s.DropIndexRequest\032\033.milvus.proto.common" + ".Status\"\000\022S\n\006Insert\022\".milvus.proto.milvu" + "s.InsertRequest\032#.milvus.proto.milvus.In" + "sertResponse\"\000\022R\n\006Search\022\".milvus.proto." + "milvus.SearchRequest\032\".milvus.proto.milv" + "us.SearchResults\"\000\022I\n\005Flush\022!.milvus.pro" + "to.milvus.FlushRequest\032\033.milvus.proto.co" + "mmon.Status\"\000\022\211\001\n\030GetPersistentSegmentIn" + "fo\0224.milvus.proto.milvus.GetPersistentSe" + "gmentInfoRequest\0325.milvus.proto.milvus.G" + "etPersistentSegmentInfoResponse\"\000\022z\n\023Get" + "QuerySegmentInfo\022/.milvus.proto.milvus.G" + "etQuerySegmentInfoRequest\0320.milvus.proto" + ".milvus.GetQuerySegmentInfoResponse\"\000\022e\n" + "\014RegisterLink\022(.milvus.proto.milvus.Regi" + "sterLinkRequest\032).milvus.proto.milvus.Re" + "gisterLinkResponse\"\0002u\n\014ProxyService\022e\n\014" + "RegisterLink\022(.milvus.proto.milvus.Regis" + "terLinkRequest\032).milvus.proto.milvus.Reg" + "isterLinkResponse\"\000B5Z3github.com/milvus" + "-io/milvus/internal/proto/milvuspbb\006prot" + "o3" ; static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_milvus_2eproto_deps[2] = { &::descriptor_table_common_2eproto, @@ -1846,7 +1852,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_mil static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_milvus_2eproto_once; static bool descriptor_table_milvus_2eproto_initialized = false; const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_milvus_2eproto = { - &descriptor_table_milvus_2eproto_initialized, descriptor_table_protodef_milvus_2eproto, "milvus.proto", 9438, + &descriptor_table_milvus_2eproto_initialized, descriptor_table_protodef_milvus_2eproto, "milvus.proto", 9522, &descriptor_table_milvus_2eproto_once, descriptor_table_milvus_2eproto_sccs, descriptor_table_milvus_2eproto_deps, 51, 2, schemas, file_default_instances, TableStruct_milvus_2eproto::offsets, file_level_metadata_milvus_2eproto, 51, file_level_enum_descriptors_milvus_2eproto, file_level_service_descriptors_milvus_2eproto, @@ -1920,6 +1926,7 @@ CreateCollectionRequest::CreateCollectionRequest(const CreateCollectionRequest& } else { base_ = nullptr; } + shards_num_ = from.shards_num_; // @@protoc_insertion_point(copy_constructor:milvus.proto.milvus.CreateCollectionRequest) } @@ -1928,7 +1935,9 @@ void CreateCollectionRequest::SharedCtor() { db_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); collection_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); schema_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - base_ = nullptr; + ::memset(&base_, 0, static_cast( + reinterpret_cast(&shards_num_) - + reinterpret_cast(&base_)) + sizeof(shards_num_)); } CreateCollectionRequest::~CreateCollectionRequest() { @@ -1965,6 +1974,7 @@ void CreateCollectionRequest::Clear() { delete base_; } base_ = nullptr; + shards_num_ = 0; _internal_metadata_.Clear(); } @@ -2004,6 +2014,13 @@ const char* CreateCollectionRequest::_InternalParse(const char* ptr, ::PROTOBUF_ CHK_(ptr); } else goto handle_unusual; continue; + // int32 shards_num = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) { + shards_num_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; default: { handle_unusual: if ((tag & 7) == 4 || tag == 0) { @@ -2086,6 +2103,19 @@ bool CreateCollectionRequest::MergePartialFromCodedStream( break; } + // int32 shards_num = 5; + case 5: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (40 & 0xFF)) { + + DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive< + ::PROTOBUF_NAMESPACE_ID::int32, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT32>( + input, &shards_num_))); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -2145,6 +2175,11 @@ void CreateCollectionRequest::SerializeWithCachedSizes( 4, this->schema(), output); } + // int32 shards_num = 5; + if (this->shards_num() != 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32(5, this->shards_num(), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -2194,6 +2229,11 @@ void CreateCollectionRequest::SerializeWithCachedSizes( 4, this->schema(), target); } + // int32 shards_num = 5; + if (this->shards_num() != 0) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->shards_num(), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -2243,6 +2283,13 @@ size_t CreateCollectionRequest::ByteSizeLong() const { *base_); } + // int32 shards_num = 5; + if (this->shards_num() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size( + this->shards_num()); + } + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -2285,6 +2332,9 @@ void CreateCollectionRequest::MergeFrom(const CreateCollectionRequest& from) { if (from.has_base()) { mutable_base()->::milvus::proto::common::MsgBase::MergeFrom(from.base()); } + if (from.shards_num() != 0) { + set_shards_num(from.shards_num()); + } } void CreateCollectionRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { @@ -2315,6 +2365,7 @@ void CreateCollectionRequest::InternalSwap(CreateCollectionRequest* other) { schema_.Swap(&other->schema_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); swap(base_, other->base_); + swap(shards_num_, other->shards_num_); } ::PROTOBUF_NAMESPACE_ID::Metadata CreateCollectionRequest::GetMetadata() const { @@ -4252,7 +4303,9 @@ DescribeCollectionResponse::DescribeCollectionResponse() } DescribeCollectionResponse::DescribeCollectionResponse(const DescribeCollectionResponse& from) : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr) { + _internal_metadata_(nullptr), + virtual_channel_names_(from.virtual_channel_names_), + physical_channel_names_(from.physical_channel_names_) { _internal_metadata_.MergeFrom(from._internal_metadata_); if (from.has_status()) { status_ = new ::milvus::proto::common::Status(*from.status_); @@ -4300,6 +4353,8 @@ void DescribeCollectionResponse::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + virtual_channel_names_.Clear(); + physical_channel_names_.Clear(); if (GetArenaNoVirtual() == nullptr && status_ != nullptr) { delete status_; } @@ -4341,6 +4396,30 @@ const char* DescribeCollectionResponse::_InternalParse(const char* ptr, ::PROTOB CHK_(ptr); } else goto handle_unusual; continue; + // repeated string virtual_channel_names = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) { + ptr -= 1; + do { + ptr += 1; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(add_virtual_channel_names(), ptr, ctx, "milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names"); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 34); + } else goto handle_unusual; + continue; + // repeated string physical_channel_names = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) { + ptr -= 1; + do { + ptr += 1; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(add_physical_channel_names(), ptr, ctx, "milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names"); + 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) { @@ -4406,6 +4485,38 @@ bool DescribeCollectionResponse::MergePartialFromCodedStream( break; } + // repeated string virtual_channel_names = 4; + case 4: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) { + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString( + input, this->add_virtual_channel_names())); + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->virtual_channel_names(this->virtual_channel_names_size() - 1).data(), + static_cast(this->virtual_channel_names(this->virtual_channel_names_size() - 1).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, + "milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names")); + } else { + goto handle_unusual; + } + break; + } + + // repeated string physical_channel_names = 5; + case 5: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) { + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString( + input, this->add_physical_channel_names())); + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->physical_channel_names(this->physical_channel_names_size() - 1).data(), + static_cast(this->physical_channel_names(this->physical_channel_names_size() - 1).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, + "milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names")); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -4450,6 +4561,26 @@ void DescribeCollectionResponse::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64(3, this->collectionid(), output); } + // repeated string virtual_channel_names = 4; + for (int i = 0, n = this->virtual_channel_names_size(); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->virtual_channel_names(i).data(), static_cast(this->virtual_channel_names(i).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names"); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteString( + 4, this->virtual_channel_names(i), output); + } + + // repeated string physical_channel_names = 5; + for (int i = 0, n = this->physical_channel_names_size(); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->physical_channel_names(i).data(), static_cast(this->physical_channel_names(i).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names"); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteString( + 5, this->physical_channel_names(i), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -4482,6 +4613,26 @@ void DescribeCollectionResponse::SerializeWithCachedSizes( target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->collectionid(), target); } + // repeated string virtual_channel_names = 4; + for (int i = 0, n = this->virtual_channel_names_size(); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->virtual_channel_names(i).data(), static_cast(this->virtual_channel_names(i).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names"); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + WriteStringToArray(4, this->virtual_channel_names(i), target); + } + + // repeated string physical_channel_names = 5; + for (int i = 0, n = this->physical_channel_names_size(); i < n; i++) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->physical_channel_names(i).data(), static_cast(this->physical_channel_names(i).length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names"); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + WriteStringToArray(5, this->physical_channel_names(i), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -4503,6 +4654,22 @@ size_t DescribeCollectionResponse::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + // repeated string virtual_channel_names = 4; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->virtual_channel_names_size()); + for (int i = 0, n = this->virtual_channel_names_size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->virtual_channel_names(i)); + } + + // repeated string physical_channel_names = 5; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->physical_channel_names_size()); + for (int i = 0, n = this->physical_channel_names_size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->physical_channel_names(i)); + } + // .milvus.proto.common.Status status = 1; if (this->has_status()) { total_size += 1 + @@ -4551,6 +4718,8 @@ void DescribeCollectionResponse::MergeFrom(const DescribeCollectionResponse& fro ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; + virtual_channel_names_.MergeFrom(from.virtual_channel_names_); + physical_channel_names_.MergeFrom(from.physical_channel_names_); if (from.has_status()) { mutable_status()->::milvus::proto::common::Status::MergeFrom(from.status()); } @@ -4583,6 +4752,8 @@ bool DescribeCollectionResponse::IsInitialized() const { void DescribeCollectionResponse::InternalSwap(DescribeCollectionResponse* other) { using std::swap; _internal_metadata_.Swap(&other->_internal_metadata_); + virtual_channel_names_.InternalSwap(CastToBase(&other->virtual_channel_names_)); + physical_channel_names_.InternalSwap(CastToBase(&other->physical_channel_names_)); swap(status_, other->status_); swap(schema_, other->schema_); swap(collectionid_, other->collectionid_); diff --git a/internal/core/src/pb/milvus.pb.h b/internal/core/src/pb/milvus.pb.h index fbd8eb4bc9..0259202444 100644 --- a/internal/core/src/pb/milvus.pb.h +++ b/internal/core/src/pb/milvus.pb.h @@ -418,6 +418,7 @@ class CreateCollectionRequest : kCollectionNameFieldNumber = 3, kSchemaFieldNumber = 4, kBaseFieldNumber = 1, + kShardsNumFieldNumber = 5, }; // string db_name = 2; void clear_db_name(); @@ -460,6 +461,11 @@ class CreateCollectionRequest : ::milvus::proto::common::MsgBase* mutable_base(); void set_allocated_base(::milvus::proto::common::MsgBase* base); + // int32 shards_num = 5; + void clear_shards_num(); + ::PROTOBUF_NAMESPACE_ID::int32 shards_num() const; + void set_shards_num(::PROTOBUF_NAMESPACE_ID::int32 value); + // @@protoc_insertion_point(class_scope:milvus.proto.milvus.CreateCollectionRequest) private: class _Internal; @@ -469,6 +475,7 @@ class CreateCollectionRequest : ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr collection_name_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr schema_; ::milvus::proto::common::MsgBase* base_; + ::PROTOBUF_NAMESPACE_ID::int32 shards_num_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; friend struct ::TableStruct_milvus_2eproto; }; @@ -1362,10 +1369,46 @@ class DescribeCollectionResponse : // accessors ------------------------------------------------------- enum : int { + kVirtualChannelNamesFieldNumber = 4, + kPhysicalChannelNamesFieldNumber = 5, kStatusFieldNumber = 1, kSchemaFieldNumber = 2, kCollectionIDFieldNumber = 3, }; + // repeated string virtual_channel_names = 4; + int virtual_channel_names_size() const; + void clear_virtual_channel_names(); + const std::string& virtual_channel_names(int index) const; + std::string* mutable_virtual_channel_names(int index); + void set_virtual_channel_names(int index, const std::string& value); + void set_virtual_channel_names(int index, std::string&& value); + void set_virtual_channel_names(int index, const char* value); + void set_virtual_channel_names(int index, const char* value, size_t size); + std::string* add_virtual_channel_names(); + void add_virtual_channel_names(const std::string& value); + void add_virtual_channel_names(std::string&& value); + void add_virtual_channel_names(const char* value); + void add_virtual_channel_names(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& virtual_channel_names() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_virtual_channel_names(); + + // repeated string physical_channel_names = 5; + int physical_channel_names_size() const; + void clear_physical_channel_names(); + const std::string& physical_channel_names(int index) const; + std::string* mutable_physical_channel_names(int index); + void set_physical_channel_names(int index, const std::string& value); + void set_physical_channel_names(int index, std::string&& value); + void set_physical_channel_names(int index, const char* value); + void set_physical_channel_names(int index, const char* value, size_t size); + std::string* add_physical_channel_names(); + void add_physical_channel_names(const std::string& value); + void add_physical_channel_names(std::string&& value); + void add_physical_channel_names(const char* value); + void add_physical_channel_names(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& physical_channel_names() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_physical_channel_names(); + // .milvus.proto.common.Status status = 1; bool has_status() const; void clear_status(); @@ -1392,6 +1435,8 @@ class DescribeCollectionResponse : class _Internal; ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField virtual_channel_names_; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField physical_channel_names_; ::milvus::proto::common::Status* status_; ::milvus::proto::schema::CollectionSchema* schema_; ::PROTOBUF_NAMESPACE_ID::int64 collectionid_; @@ -8809,6 +8854,20 @@ inline void CreateCollectionRequest::set_allocated_schema(std::string* schema) { // @@protoc_insertion_point(field_set_allocated:milvus.proto.milvus.CreateCollectionRequest.schema) } +// int32 shards_num = 5; +inline void CreateCollectionRequest::clear_shards_num() { + shards_num_ = 0; +} +inline ::PROTOBUF_NAMESPACE_ID::int32 CreateCollectionRequest::shards_num() const { + // @@protoc_insertion_point(field_get:milvus.proto.milvus.CreateCollectionRequest.shards_num) + return shards_num_; +} +inline void CreateCollectionRequest::set_shards_num(::PROTOBUF_NAMESPACE_ID::int32 value) { + + shards_num_ = value; + // @@protoc_insertion_point(field_set:milvus.proto.milvus.CreateCollectionRequest.shards_num) +} + // ------------------------------------------------------------------- // DropCollectionRequest @@ -9547,6 +9606,136 @@ inline void DescribeCollectionResponse::set_collectionid(::PROTOBUF_NAMESPACE_ID // @@protoc_insertion_point(field_set:milvus.proto.milvus.DescribeCollectionResponse.collectionID) } +// repeated string virtual_channel_names = 4; +inline int DescribeCollectionResponse::virtual_channel_names_size() const { + return virtual_channel_names_.size(); +} +inline void DescribeCollectionResponse::clear_virtual_channel_names() { + virtual_channel_names_.Clear(); +} +inline const std::string& DescribeCollectionResponse::virtual_channel_names(int index) const { + // @@protoc_insertion_point(field_get:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) + return virtual_channel_names_.Get(index); +} +inline std::string* DescribeCollectionResponse::mutable_virtual_channel_names(int index) { + // @@protoc_insertion_point(field_mutable:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) + return virtual_channel_names_.Mutable(index); +} +inline void DescribeCollectionResponse::set_virtual_channel_names(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) + virtual_channel_names_.Mutable(index)->assign(value); +} +inline void DescribeCollectionResponse::set_virtual_channel_names(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) + virtual_channel_names_.Mutable(index)->assign(std::move(value)); +} +inline void DescribeCollectionResponse::set_virtual_channel_names(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + virtual_channel_names_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) +} +inline void DescribeCollectionResponse::set_virtual_channel_names(int index, const char* value, size_t size) { + virtual_channel_names_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) +} +inline std::string* DescribeCollectionResponse::add_virtual_channel_names() { + // @@protoc_insertion_point(field_add_mutable:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) + return virtual_channel_names_.Add(); +} +inline void DescribeCollectionResponse::add_virtual_channel_names(const std::string& value) { + virtual_channel_names_.Add()->assign(value); + // @@protoc_insertion_point(field_add:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) +} +inline void DescribeCollectionResponse::add_virtual_channel_names(std::string&& value) { + virtual_channel_names_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) +} +inline void DescribeCollectionResponse::add_virtual_channel_names(const char* value) { + GOOGLE_DCHECK(value != nullptr); + virtual_channel_names_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) +} +inline void DescribeCollectionResponse::add_virtual_channel_names(const char* value, size_t size) { + virtual_channel_names_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& +DescribeCollectionResponse::virtual_channel_names() const { + // @@protoc_insertion_point(field_list:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) + return virtual_channel_names_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* +DescribeCollectionResponse::mutable_virtual_channel_names() { + // @@protoc_insertion_point(field_mutable_list:milvus.proto.milvus.DescribeCollectionResponse.virtual_channel_names) + return &virtual_channel_names_; +} + +// repeated string physical_channel_names = 5; +inline int DescribeCollectionResponse::physical_channel_names_size() const { + return physical_channel_names_.size(); +} +inline void DescribeCollectionResponse::clear_physical_channel_names() { + physical_channel_names_.Clear(); +} +inline const std::string& DescribeCollectionResponse::physical_channel_names(int index) const { + // @@protoc_insertion_point(field_get:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) + return physical_channel_names_.Get(index); +} +inline std::string* DescribeCollectionResponse::mutable_physical_channel_names(int index) { + // @@protoc_insertion_point(field_mutable:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) + return physical_channel_names_.Mutable(index); +} +inline void DescribeCollectionResponse::set_physical_channel_names(int index, const std::string& value) { + // @@protoc_insertion_point(field_set:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) + physical_channel_names_.Mutable(index)->assign(value); +} +inline void DescribeCollectionResponse::set_physical_channel_names(int index, std::string&& value) { + // @@protoc_insertion_point(field_set:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) + physical_channel_names_.Mutable(index)->assign(std::move(value)); +} +inline void DescribeCollectionResponse::set_physical_channel_names(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + physical_channel_names_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) +} +inline void DescribeCollectionResponse::set_physical_channel_names(int index, const char* value, size_t size) { + physical_channel_names_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) +} +inline std::string* DescribeCollectionResponse::add_physical_channel_names() { + // @@protoc_insertion_point(field_add_mutable:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) + return physical_channel_names_.Add(); +} +inline void DescribeCollectionResponse::add_physical_channel_names(const std::string& value) { + physical_channel_names_.Add()->assign(value); + // @@protoc_insertion_point(field_add:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) +} +inline void DescribeCollectionResponse::add_physical_channel_names(std::string&& value) { + physical_channel_names_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) +} +inline void DescribeCollectionResponse::add_physical_channel_names(const char* value) { + GOOGLE_DCHECK(value != nullptr); + physical_channel_names_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) +} +inline void DescribeCollectionResponse::add_physical_channel_names(const char* value, size_t size) { + physical_channel_names_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& +DescribeCollectionResponse::physical_channel_names() const { + // @@protoc_insertion_point(field_list:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) + return physical_channel_names_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* +DescribeCollectionResponse::mutable_physical_channel_names() { + // @@protoc_insertion_point(field_mutable_list:milvus.proto.milvus.DescribeCollectionResponse.physical_channel_names) + return &physical_channel_names_; +} + // ------------------------------------------------------------------- // LoadCollectionRequest diff --git a/internal/masterservice/master_service_test.go b/internal/masterservice/master_service_test.go index 5d73172b22..59450646e5 100644 --- a/internal/masterservice/master_service_test.go +++ b/internal/masterservice/master_service_test.go @@ -194,6 +194,12 @@ func consumeMsgChan(timeout time.Duration, targetChan <-chan *msgstream.MsgPack) } func TestMasterService(t *testing.T) { + const ( + dbName = "testDb" + collName = "testColl" + partName = "testPartition" + ) + ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -294,24 +300,23 @@ func TestMasterService(t *testing.T) { ttmsg, ok := <-timeTickStream.Chan() assert.True(t, ok) - assert.Equal(t, len(ttmsg.Msgs), 1) + assert.Equal(t, 1, len(ttmsg.Msgs)) ttm, ok := (ttmsg.Msgs[0]).(*msgstream.TimeTickMsg) assert.True(t, ok) - assert.Equal(t, ttm.Base.Timestamp, timeTick) + assert.Equal(t, timeTick, ttm.Base.Timestamp) ddmsg, ok := <-ddStream.Chan() assert.True(t, ok) - assert.Equal(t, len(ddmsg.Msgs), 1) + assert.Equal(t, 1, len(ddmsg.Msgs)) ddm, ok := (ddmsg.Msgs[0]).(*msgstream.TimeTickMsg) assert.True(t, ok) - assert.Equal(t, ddm.Base.Timestamp, timeTick) + assert.Equal(t, timeTick, ddm.Base.Timestamp) }) t.Run("create collection", func(t *testing.T) { schema := schemapb.CollectionSchema{ - Name: "testColl", - Description: "testColl", - AutoID: true, + Name: collName, + AutoID: true, Fields: []*schemapb.FieldSchema{ { FieldID: 100, @@ -339,13 +344,13 @@ func TestMasterService(t *testing.T) { Timestamp: 100, SourceID: 100, }, - DbName: "testDb", - CollectionName: "testColl", + DbName: dbName, + CollectionName: collName, Schema: sbf, } status, err := core.CreateCollection(ctx, req) assert.Nil(t, err) - assert.Equal(t, status.ErrorCode, commonpb.ErrorCode_Success) + assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode) msg, ok := <-ddStream.Chan() assert.True(t, ok) @@ -353,23 +358,30 @@ func TestMasterService(t *testing.T) { createMsg, ok := (msg.Msgs[0]).(*msgstream.CreateCollectionMsg) assert.True(t, ok) - createMeta, err := core.MetaTable.GetCollectionByName("testColl") + createMeta, err := core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) - assert.Equal(t, createMsg.CollectionID, createMeta.ID) - assert.Equal(t, len(createMeta.PartitionIDs), 1) + assert.Equal(t, createMeta.ID, createMsg.CollectionID) + assert.Equal(t, 1, len(createMeta.PartitionIDs)) + assert.Equal(t, 2, len(createMeta.VirtualChannelNames)) + assert.Equal(t, 2, len(createMeta.PhysicalChannelNames)) + + vChanName := createMeta.VirtualChannelNames[0] + chanName, err := core.MetaTable.GetChanNameByVirtualChan(vChanName) + assert.Nil(t, err) + assert.Equal(t, createMeta.PhysicalChannelNames[0], chanName) if len(msg.Msgs) == 2 { createPart, ok := (msg.Msgs[1]).(*msgstream.CreatePartitionMsg) assert.True(t, ok) - assert.Equal(t, createPart.CollectionName, "testColl") - assert.Equal(t, createPart.PartitionID, createMeta.PartitionIDs[0]) + assert.Equal(t, collName, createPart.CollectionName) + assert.Equal(t, createMeta.PartitionIDs[0], createPart.PartitionID) } else { msg, ok = <-ddStream.Chan() assert.True(t, ok) createPart, ok := (msg.Msgs[0]).(*msgstream.CreatePartitionMsg) assert.True(t, ok) - assert.Equal(t, createPart.CollectionName, "testColl") - assert.Equal(t, createPart.PartitionID, createMeta.PartitionIDs[0]) + assert.Equal(t, collName, createPart.CollectionName) + assert.Equal(t, createMeta.PartitionIDs[0], createPart.PartitionID) } req.Base.MsgID = 101 @@ -377,7 +389,7 @@ func TestMasterService(t *testing.T) { req.Base.SourceID = 101 status, err = core.CreateCollection(ctx, req) assert.Nil(t, err) - assert.Equal(t, status.ErrorCode, commonpb.ErrorCode_UnexpectedError) + assert.Equal(t, commonpb.ErrorCode_UnexpectedError, status.ErrorCode) req.Base.MsgID = 102 req.Base.Timestamp = 102 @@ -385,7 +397,7 @@ func TestMasterService(t *testing.T) { req.CollectionName = "testColl-again" status, err = core.CreateCollection(ctx, req) assert.Nil(t, err) - assert.Equal(t, status.ErrorCode, commonpb.ErrorCode_UnexpectedError) + assert.Equal(t, commonpb.ErrorCode_UnexpectedError, status.ErrorCode) schema.Name = req.CollectionName sbf, err = proto.Marshal(&schema) @@ -396,7 +408,7 @@ func TestMasterService(t *testing.T) { req.Base.SourceID = 103 status, err = core.CreateCollection(ctx, req) assert.Nil(t, err) - assert.Equal(t, status.ErrorCode, commonpb.ErrorCode_Success) + assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode) msg, ok = <-ddStream.Chan() assert.True(t, ok) @@ -404,7 +416,7 @@ func TestMasterService(t *testing.T) { assert.True(t, ok) createMeta, err = core.MetaTable.GetCollectionByName("testColl-again") assert.Nil(t, err) - assert.Equal(t, createMsg.CollectionID, createMeta.ID) + assert.Equal(t, createMeta.ID, createMsg.CollectionID) // check DD operation info flag, err := core.MetaTable.client.Load(DDMsgSendPrefix) @@ -437,13 +449,13 @@ func TestMasterService(t *testing.T) { Timestamp: 110, SourceID: 110, }, - DbName: "testDb", - CollectionName: "testColl", + DbName: dbName, + CollectionName: collName, } rsp, err := core.HasCollection(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success) - assert.Equal(t, rsp.Value, true) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.Status.ErrorCode) + assert.Equal(t, true, rsp.Value) req = &milvuspb.HasCollectionRequest{ Base: &commonpb.MsgBase{ @@ -452,13 +464,13 @@ func TestMasterService(t *testing.T) { Timestamp: 111, SourceID: 111, }, - DbName: "testDb", + DbName: dbName, CollectionName: "testColl2", } rsp, err = core.HasCollection(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success) - assert.Equal(t, rsp.Value, false) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.Status.ErrorCode) + assert.Equal(t, false, rsp.Value) // test time stamp go back req = &milvuspb.HasCollectionRequest{ @@ -468,17 +480,17 @@ func TestMasterService(t *testing.T) { Timestamp: 111, SourceID: 111, }, - DbName: "testDb", - CollectionName: "testColl", + DbName: dbName, + CollectionName: collName, } rsp, err = core.HasCollection(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success) - assert.Equal(t, rsp.Value, true) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.Status.ErrorCode) + assert.Equal(t, true, rsp.Value) }) t.Run("describe collection", func(t *testing.T) { - collMeta, err := core.MetaTable.GetCollectionByName("testColl") + collMeta, err := core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) req := &milvuspb.DescribeCollectionRequest{ Base: &commonpb.MsgBase{ @@ -487,15 +499,16 @@ func TestMasterService(t *testing.T) { Timestamp: 120, SourceID: 120, }, - DbName: "testDb", - CollectionName: "testColl", + DbName: dbName, + CollectionName: collName, } rsp, err := core.DescribeCollection(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success) - assert.Equal(t, rsp.Schema.Name, "testColl") - assert.Equal(t, rsp.CollectionID, collMeta.ID) - + assert.Equal(t, commonpb.ErrorCode_Success, rsp.Status.ErrorCode) + assert.Equal(t, collName, rsp.Schema.Name) + assert.Equal(t, collMeta.ID, rsp.CollectionID) + assert.Equal(t, 2, len(rsp.VirtualChannelNames)) + assert.Equal(t, 2, len(rsp.PhysicalChannelNames)) }) t.Run("show collection", func(t *testing.T) { @@ -506,12 +519,12 @@ func TestMasterService(t *testing.T) { Timestamp: 130, SourceID: 130, }, - DbName: "testDb", + DbName: dbName, } rsp, err := core.ShowCollections(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success) - assert.ElementsMatch(t, rsp.CollectionNames, []string{"testColl", "testColl-again"}) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.Status.ErrorCode) + assert.ElementsMatch(t, rsp.CollectionNames, []string{collName, "testColl-again"}) assert.Equal(t, len(rsp.CollectionNames), 2) }) @@ -523,31 +536,31 @@ func TestMasterService(t *testing.T) { Timestamp: 140, SourceID: 140, }, - DbName: "testDb", - CollectionName: "testColl", - PartitionName: "testPartition", + DbName: dbName, + CollectionName: collName, + PartitionName: partName, } consumeMsgChan(time.Second, ddStream.Chan()) status, err := core.CreatePartition(ctx, req) assert.Nil(t, err) - assert.Equal(t, status.ErrorCode, commonpb.ErrorCode_Success) - collMeta, err := core.MetaTable.GetCollectionByName("testColl") + assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode) + collMeta, err := core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) - assert.Equal(t, len(collMeta.PartitionIDs), 2) + assert.Equal(t, 2, len(collMeta.PartitionIDs)) partMeta, err := core.MetaTable.GetPartitionByID(collMeta.PartitionIDs[1]) assert.Nil(t, err) - assert.Equal(t, partMeta.PartitionName, "testPartition") + assert.Equal(t, partName, partMeta.PartitionName) msg, ok := <-ddStream.Chan() assert.True(t, ok) - assert.Equal(t, len(msg.Msgs), 1) + assert.Equal(t, 1, len(msg.Msgs)) partMsg, ok := (msg.Msgs[0]).(*msgstream.CreatePartitionMsg) assert.True(t, ok) - assert.Equal(t, partMsg.CollectionID, collMeta.ID) - assert.Equal(t, partMsg.PartitionID, partMeta.PartitionID) + assert.Equal(t, collMeta.ID, partMsg.CollectionID) + assert.Equal(t, partMeta.PartitionID, partMsg.PartitionID) assert.Equal(t, 1, len(pm.GetCollArray())) - assert.Equal(t, "testColl", pm.GetCollArray()[0]) + assert.Equal(t, collName, pm.GetCollArray()[0]) // check DD operation info flag, err := core.MetaTable.client.Load(DDMsgSendPrefix) @@ -575,18 +588,18 @@ func TestMasterService(t *testing.T) { Timestamp: 150, SourceID: 150, }, - DbName: "testDb", - CollectionName: "testColl", - PartitionName: "testPartition", + DbName: dbName, + CollectionName: collName, + PartitionName: partName, } rsp, err := core.HasPartition(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success) - assert.Equal(t, rsp.Value, true) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.Status.ErrorCode) + assert.Equal(t, true, rsp.Value) }) t.Run("show partition", func(t *testing.T) { - coll, err := core.MetaTable.GetCollectionByName("testColl") + coll, err := core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) req := &milvuspb.ShowPartitionsRequest{ Base: &commonpb.MsgBase{ @@ -595,19 +608,19 @@ func TestMasterService(t *testing.T) { Timestamp: 160, SourceID: 160, }, - DbName: "testDb", - CollectionName: "testColl", + DbName: dbName, + CollectionName: collName, CollectionID: coll.ID, } rsp, err := core.ShowPartitions(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success) - assert.Equal(t, len(rsp.PartitionNames), 2) - assert.Equal(t, len(rsp.PartitionIDs), 2) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.Status.ErrorCode) + assert.Equal(t, 2, len(rsp.PartitionNames)) + assert.Equal(t, 2, len(rsp.PartitionIDs)) }) t.Run("show segment", func(t *testing.T) { - coll, err := core.MetaTable.GetCollectionByName("testColl") + coll, err := core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) partID := coll.PartitionIDs[1] part, err := core.MetaTable.GetPartitionByID(partID) @@ -645,7 +658,7 @@ func TestMasterService(t *testing.T) { part, err = core.MetaTable.GetPartitionByID(partID) assert.Nil(t, err) - assert.Equal(t, len(part.SegmentIDs), 1) + assert.Equal(t, 1, len(part.SegmentIDs)) req := &milvuspb.ShowSegmentsRequest{ Base: &commonpb.MsgBase{ @@ -659,9 +672,9 @@ func TestMasterService(t *testing.T) { } rsp, err := core.ShowSegments(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success) - assert.Equal(t, rsp.SegmentIDs[0], int64(1000)) - assert.Equal(t, len(rsp.SegmentIDs), 1) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.Status.ErrorCode) + assert.Equal(t, int64(1000), rsp.SegmentIDs[0]) + assert.Equal(t, 1, len(rsp.SegmentIDs)) }) t.Run("create index", func(t *testing.T) { @@ -673,7 +686,7 @@ func TestMasterService(t *testing.T) { SourceID: 180, }, DbName: "", - CollectionName: "testColl", + CollectionName: collName, FieldName: "vector", ExtraParams: []*commonpb.KeyValuePair{ { @@ -682,32 +695,32 @@ func TestMasterService(t *testing.T) { }, }, } - collMeta, err := core.MetaTable.GetCollectionByName("testColl") + collMeta, err := core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) - assert.Equal(t, len(collMeta.FieldIndexes), 0) + assert.Equal(t, 0, len(collMeta.FieldIndexes)) rsp, err := core.CreateIndex(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.ErrorCode, commonpb.ErrorCode_Success) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.ErrorCode) time.Sleep(time.Second) 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") + collMeta, err = core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) - assert.Equal(t, len(collMeta.FieldIndexes), 1) + assert.Equal(t, 1, len(collMeta.FieldIndexes)) idxMeta, err := core.MetaTable.GetIndexByID(collMeta.FieldIndexes[0].IndexID) assert.Nil(t, err) - assert.Equal(t, idxMeta.IndexName, Params.DefaultIndexName) + assert.Equal(t, Params.DefaultIndexName, idxMeta.IndexName) req.FieldName = "no field" rsp, err = core.CreateIndex(ctx, req) assert.Nil(t, err) - assert.NotEqual(t, rsp.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp.ErrorCode) }) t.Run("describe segment", func(t *testing.T) { - coll, err := core.MetaTable.GetCollectionByName("testColl") + coll, err := core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) req := &milvuspb.DescribeSegmentRequest{ @@ -722,7 +735,7 @@ func TestMasterService(t *testing.T) { } rsp, err := core.DescribeSegment(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.Status.ErrorCode) t.Logf("index id = %d", rsp.IndexID) }) @@ -735,16 +748,16 @@ func TestMasterService(t *testing.T) { SourceID: 200, }, DbName: "", - CollectionName: "testColl", + CollectionName: collName, FieldName: "vector", IndexName: "", } rsp, err := core.DescribeIndex(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success) - assert.Equal(t, len(rsp.IndexDescriptions), 1) - assert.Equal(t, rsp.IndexDescriptions[0].IndexName, Params.DefaultIndexName) - assert.Equal(t, rsp.IndexDescriptions[0].FieldName, "vector") + assert.Equal(t, commonpb.ErrorCode_Success, rsp.Status.ErrorCode) + assert.Equal(t, 1, len(rsp.IndexDescriptions)) + assert.Equal(t, Params.DefaultIndexName, rsp.IndexDescriptions[0].IndexName) + assert.Equal(t, "vector", rsp.IndexDescriptions[0].FieldName) }) t.Run("describe index not exist", func(t *testing.T) { @@ -756,23 +769,23 @@ func TestMasterService(t *testing.T) { SourceID: 200, }, DbName: "", - CollectionName: "testColl", + CollectionName: collName, FieldName: "vector", IndexName: "not-exist-index", } rsp, err := core.DescribeIndex(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_IndexNotExist) - assert.Equal(t, len(rsp.IndexDescriptions), 0) + assert.Equal(t, commonpb.ErrorCode_IndexNotExist, rsp.Status.ErrorCode) + assert.Equal(t, 0, len(rsp.IndexDescriptions)) }) t.Run("flush segment", func(t *testing.T) { - coll, err := core.MetaTable.GetCollectionByName("testColl") + coll, err := core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) partID := coll.PartitionIDs[1] part, err := core.MetaTable.GetPartitionByID(partID) assert.Nil(t, err) - assert.Equal(t, len(part.SegmentIDs), 1) + assert.Equal(t, 1, len(part.SegmentIDs)) seg := &datapb.SegmentInfo{ ID: 1001, @@ -805,7 +818,7 @@ func TestMasterService(t *testing.T) { part, err = core.MetaTable.GetPartitionByID(partID) assert.Nil(t, err) - assert.Equal(t, len(part.SegmentIDs), 2) + assert.Equal(t, 2, len(part.SegmentIDs)) flushMsg := &msgstream.FlushCompletedMsg{ BaseMsg: baseMsg, @@ -832,15 +845,15 @@ func TestMasterService(t *testing.T) { SourceID: 210, }, DbName: "", - CollectionName: "testColl", + CollectionName: collName, FieldName: "vector", IndexName: "", } rsp, err := core.DescribeIndex(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_Success) - assert.Equal(t, len(rsp.IndexDescriptions), 1) - assert.Equal(t, rsp.IndexDescriptions[0].IndexName, Params.DefaultIndexName) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.Status.ErrorCode) + assert.Equal(t, 1, len(rsp.IndexDescriptions)) + assert.Equal(t, Params.DefaultIndexName, rsp.IndexDescriptions[0].IndexName) }) t.Run("over ride index", func(t *testing.T) { @@ -852,7 +865,7 @@ func TestMasterService(t *testing.T) { SourceID: 211, }, DbName: "", - CollectionName: "testColl", + CollectionName: collName, FieldName: "vector", ExtraParams: []*commonpb.KeyValuePair{ { @@ -862,29 +875,28 @@ func TestMasterService(t *testing.T) { }, } - collMeta, err := core.MetaTable.GetCollectionByName("testColl") + collMeta, err := core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) - assert.Equal(t, len(collMeta.FieldIndexes), 1) + assert.Equal(t, 1, len(collMeta.FieldIndexes)) oldIdx := collMeta.FieldIndexes[0].IndexID rsp, err := core.CreateIndex(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.ErrorCode, commonpb.ErrorCode_Success) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.ErrorCode) time.Sleep(time.Second) - collMeta, err = core.MetaTable.GetCollectionByName("testColl") + collMeta, err = core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) - assert.Equal(t, len(collMeta.FieldIndexes), 2) - + assert.Equal(t, 2, len(collMeta.FieldIndexes)) assert.Equal(t, oldIdx, collMeta.FieldIndexes[0].IndexID) idxMeta, err := core.MetaTable.GetIndexByID(collMeta.FieldIndexes[1].IndexID) assert.Nil(t, err) - assert.Equal(t, idxMeta.IndexName, Params.DefaultIndexName) + assert.Equal(t, Params.DefaultIndexName, idxMeta.IndexName) idxMeta, err = core.MetaTable.GetIndexByID(collMeta.FieldIndexes[0].IndexID) assert.Nil(t, err) - assert.Equal(t, idxMeta.IndexName, Params.DefaultIndexName+"_bak") + assert.Equal(t, Params.DefaultIndexName+"_bak", idxMeta.IndexName) }) @@ -897,26 +909,26 @@ func TestMasterService(t *testing.T) { SourceID: 215, }, DbName: "", - CollectionName: "testColl", + CollectionName: collName, FieldName: "vector", IndexName: Params.DefaultIndexName, } - _, idx, err := core.MetaTable.GetIndexByName("testColl", Params.DefaultIndexName) + _, idx, err := core.MetaTable.GetIndexByName(collName, Params.DefaultIndexName) assert.Nil(t, err) - assert.Equal(t, len(idx), 1) + assert.Equal(t, 1, len(idx)) rsp, err := core.DropIndex(ctx, req) assert.Nil(t, err) - assert.Equal(t, rsp.ErrorCode, commonpb.ErrorCode_Success) + assert.Equal(t, commonpb.ErrorCode_Success, rsp.ErrorCode) im.mutex.Lock() - assert.Equal(t, len(im.idxDropID), 1) - assert.Equal(t, im.idxDropID[0], idx[0].IndexID) + assert.Equal(t, 1, len(im.idxDropID)) + assert.Equal(t, idx[0].IndexID, im.idxDropID[0]) im.mutex.Unlock() - _, idx, err = core.MetaTable.GetIndexByName("testColl", Params.DefaultIndexName) + _, idx, err = core.MetaTable.GetIndexByName(collName, Params.DefaultIndexName) assert.Nil(t, err) - assert.Equal(t, len(idx), 0) + assert.Equal(t, 0, len(idx)) }) t.Run("drop partition", func(t *testing.T) { @@ -927,33 +939,33 @@ func TestMasterService(t *testing.T) { Timestamp: 220, SourceID: 220, }, - DbName: "testDb", - CollectionName: "testColl", - PartitionName: "testPartition", + DbName: dbName, + CollectionName: collName, + PartitionName: partName, } - collMeta, err := core.MetaTable.GetCollectionByName("testColl") + collMeta, err := core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) dropPartID := collMeta.PartitionIDs[1] status, err := core.DropPartition(ctx, req) assert.Nil(t, err) - assert.Equal(t, status.ErrorCode, commonpb.ErrorCode_Success) - collMeta, err = core.MetaTable.GetCollectionByName("testColl") + assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode) + collMeta, err = core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) - assert.Equal(t, len(collMeta.PartitionIDs), 1) + assert.Equal(t, 1, len(collMeta.PartitionIDs)) partMeta, err := core.MetaTable.GetPartitionByID(collMeta.PartitionIDs[0]) assert.Nil(t, err) - assert.Equal(t, partMeta.PartitionName, Params.DefaultPartitionName) + assert.Equal(t, Params.DefaultPartitionName, partMeta.PartitionName) msg, ok := <-ddStream.Chan() assert.True(t, ok) - assert.Equal(t, len(msg.Msgs), 1) + assert.Equal(t, 1, len(msg.Msgs)) dmsg, ok := (msg.Msgs[0]).(*msgstream.DropPartitionMsg) assert.True(t, ok) - assert.Equal(t, dmsg.CollectionID, collMeta.ID) - assert.Equal(t, dmsg.PartitionID, dropPartID) + assert.Equal(t, collMeta.ID, dmsg.CollectionID) + assert.Equal(t, dropPartID, dmsg.PartitionID) assert.Equal(t, 2, len(pm.GetCollArray())) - assert.Equal(t, "testColl", pm.GetCollArray()[1]) + assert.Equal(t, collName, pm.GetCollArray()[1]) // check DD operation info flag, err := core.MetaTable.client.Load(DDMsgSendPrefix) @@ -981,29 +993,33 @@ func TestMasterService(t *testing.T) { Timestamp: 230, SourceID: 230, }, - DbName: "testDb", - CollectionName: "testColl", + DbName: dbName, + CollectionName: collName, } - collMeta, err := core.MetaTable.GetCollectionByName("testColl") + collMeta, err := core.MetaTable.GetCollectionByName(collName) assert.Nil(t, err) status, err := core.DropCollection(ctx, req) assert.Nil(t, err) - assert.Equal(t, status.ErrorCode, commonpb.ErrorCode_Success) + assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode) + + vChanName := collMeta.VirtualChannelNames[0] + _, err = core.MetaTable.GetChanNameByVirtualChan(vChanName) + assert.NotNil(t, err) msg, ok := <-ddStream.Chan() assert.True(t, ok) - assert.Equal(t, len(msg.Msgs), 1) + assert.Equal(t, 1, len(msg.Msgs)) dmsg, ok := (msg.Msgs[0]).(*msgstream.DropCollectionMsg) assert.True(t, ok) - assert.Equal(t, dmsg.CollectionID, collMeta.ID) + assert.Equal(t, collMeta.ID, dmsg.CollectionID) collArray := pm.GetCollArray() - assert.Equal(t, len(collArray), 3) - assert.Equal(t, collArray[2], "testColl") + assert.Equal(t, 3, len(collArray)) + assert.Equal(t, collName, collArray[2]) time.Sleep(time.Millisecond * 100) qm.mutex.Lock() - assert.Equal(t, len(qm.collID), 1) - assert.Equal(t, qm.collID[0], collMeta.ID) + assert.Equal(t, 1, len(qm.collID)) + assert.Equal(t, collMeta.ID, qm.collID[0]) qm.mutex.Unlock() req = &milvuspb.DropCollectionRequest{ @@ -1013,17 +1029,17 @@ func TestMasterService(t *testing.T) { Timestamp: 231, SourceID: 231, }, - DbName: "testDb", - CollectionName: "testColl", + DbName: dbName, + CollectionName: collName, } status, err = core.DropCollection(ctx, req) assert.Nil(t, err) - assert.Equal(t, status.ErrorCode, commonpb.ErrorCode_UnexpectedError) + assert.Equal(t, commonpb.ErrorCode_UnexpectedError, status.ErrorCode) time.Sleep(time.Second) assert.Zero(t, len(ddStream.Chan())) collArray = pm.GetCollArray() - assert.Equal(t, len(collArray), 3) - assert.Equal(t, collArray[2], "testColl") + assert.Equal(t, 3, len(collArray)) + assert.Equal(t, collName, collArray[2]) // check DD operation info flag, err := core.MetaTable.client.Load(DDMsgSendPrefix) @@ -1055,7 +1071,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) st, err = core.DropCollection(ctx2, &milvuspb.DropCollectionRequest{ Base: &commonpb.MsgBase{ @@ -1066,7 +1082,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp1, err := core.HasCollection(ctx2, &milvuspb.HasCollectionRequest{ Base: &commonpb.MsgBase{ @@ -1077,7 +1093,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp1.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp1.Status.ErrorCode) rsp2, err := core.DescribeCollection(ctx2, &milvuspb.DescribeCollectionRequest{ Base: &commonpb.MsgBase{ @@ -1088,7 +1104,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp2.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp2.Status.ErrorCode) rsp3, err := core.ShowCollections(ctx2, &milvuspb.ShowCollectionsRequest{ Base: &commonpb.MsgBase{ @@ -1099,7 +1115,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp3.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp3.Status.ErrorCode) st, err = core.CreatePartition(ctx2, &milvuspb.CreatePartitionRequest{ Base: &commonpb.MsgBase{ @@ -1110,7 +1126,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) st, err = core.DropPartition(ctx2, &milvuspb.DropPartitionRequest{ Base: &commonpb.MsgBase{ @@ -1121,7 +1137,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp4, err := core.HasPartition(ctx2, &milvuspb.HasPartitionRequest{ Base: &commonpb.MsgBase{ @@ -1132,7 +1148,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp4.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp4.Status.ErrorCode) rsp5, err := core.ShowPartitions(ctx2, &milvuspb.ShowPartitionsRequest{ Base: &commonpb.MsgBase{ @@ -1143,7 +1159,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp5.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp5.Status.ErrorCode) st, err = core.CreateIndex(ctx2, &milvuspb.CreateIndexRequest{ Base: &commonpb.MsgBase{ @@ -1154,7 +1170,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp6, err := core.DescribeIndex(ctx2, &milvuspb.DescribeIndexRequest{ Base: &commonpb.MsgBase{ @@ -1165,7 +1181,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp6.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp6.Status.ErrorCode) st, err = core.DropIndex(ctx2, &milvuspb.DropIndexRequest{ Base: &commonpb.MsgBase{ @@ -1176,7 +1192,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp7, err := core.DescribeSegment(ctx2, &milvuspb.DescribeSegmentRequest{ Base: &commonpb.MsgBase{ @@ -1187,7 +1203,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp7.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp7.Status.ErrorCode) rsp8, err := core.ShowSegments(ctx2, &milvuspb.ShowSegmentsRequest{ Base: &commonpb.MsgBase{ @@ -1198,7 +1214,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp8.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp8.Status.ErrorCode) }) @@ -1212,7 +1228,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) st, err = core.DropCollection(ctx, &milvuspb.DropCollectionRequest{ Base: &commonpb.MsgBase{ @@ -1223,7 +1239,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp1, err := core.HasCollection(ctx, &milvuspb.HasCollectionRequest{ Base: &commonpb.MsgBase{ @@ -1234,7 +1250,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp1.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp1.Status.ErrorCode) rsp2, err := core.DescribeCollection(ctx, &milvuspb.DescribeCollectionRequest{ Base: &commonpb.MsgBase{ @@ -1245,7 +1261,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp2.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp2.Status.ErrorCode) rsp3, err := core.ShowCollections(ctx, &milvuspb.ShowCollectionsRequest{ Base: &commonpb.MsgBase{ @@ -1256,7 +1272,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp3.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp3.Status.ErrorCode) st, err = core.CreatePartition(ctx, &milvuspb.CreatePartitionRequest{ Base: &commonpb.MsgBase{ @@ -1267,7 +1283,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) st, err = core.DropPartition(ctx, &milvuspb.DropPartitionRequest{ Base: &commonpb.MsgBase{ @@ -1278,7 +1294,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp4, err := core.HasPartition(ctx, &milvuspb.HasPartitionRequest{ Base: &commonpb.MsgBase{ @@ -1289,7 +1305,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp4.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp4.Status.ErrorCode) rsp5, err := core.ShowPartitions(ctx, &milvuspb.ShowPartitionsRequest{ Base: &commonpb.MsgBase{ @@ -1300,7 +1316,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp5.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp5.Status.ErrorCode) st, err = core.CreateIndex(ctx, &milvuspb.CreateIndexRequest{ Base: &commonpb.MsgBase{ @@ -1311,7 +1327,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp6, err := core.DescribeIndex(ctx, &milvuspb.DescribeIndexRequest{ Base: &commonpb.MsgBase{ @@ -1322,7 +1338,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp6.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp6.Status.ErrorCode) st, err = core.DropIndex(ctx, &milvuspb.DropIndexRequest{ Base: &commonpb.MsgBase{ @@ -1333,7 +1349,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp7, err := core.DescribeSegment(ctx, &milvuspb.DescribeSegmentRequest{ Base: &commonpb.MsgBase{ @@ -1344,7 +1360,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp7.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp7.Status.ErrorCode) rsp8, err := core.ShowSegments(ctx, &milvuspb.ShowSegmentsRequest{ Base: &commonpb.MsgBase{ @@ -1355,7 +1371,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp8.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp8.Status.ErrorCode) }) @@ -1404,8 +1420,8 @@ func TestMasterService(t *testing.T) { assert.Nil(t, err) st, err := core.GetComponentStates(ctx) assert.Nil(t, err) - assert.Equal(t, st.Status.ErrorCode, commonpb.ErrorCode_Success) - assert.NotEqual(t, st.State.StateCode, internalpb.StateCode_Healthy) + assert.Equal(t, commonpb.ErrorCode_Success, st.Status.ErrorCode) + assert.NotEqual(t, internalpb.StateCode_Healthy, st.State.StateCode) t.Run("state_not_healthy", func(t *testing.T) { st, err := core.CreateCollection(ctx, &milvuspb.CreateCollectionRequest{ @@ -1417,7 +1433,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) st, err = core.DropCollection(ctx, &milvuspb.DropCollectionRequest{ Base: &commonpb.MsgBase{ @@ -1428,7 +1444,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp1, err := core.HasCollection(ctx, &milvuspb.HasCollectionRequest{ Base: &commonpb.MsgBase{ @@ -1439,7 +1455,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp1.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp1.Status.ErrorCode) rsp2, err := core.DescribeCollection(ctx, &milvuspb.DescribeCollectionRequest{ Base: &commonpb.MsgBase{ @@ -1450,7 +1466,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp2.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp2.Status.ErrorCode) rsp3, err := core.ShowCollections(ctx, &milvuspb.ShowCollectionsRequest{ Base: &commonpb.MsgBase{ @@ -1461,7 +1477,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp3.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp3.Status.ErrorCode) st, err = core.CreatePartition(ctx, &milvuspb.CreatePartitionRequest{ Base: &commonpb.MsgBase{ @@ -1472,7 +1488,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) st, err = core.DropPartition(ctx, &milvuspb.DropPartitionRequest{ Base: &commonpb.MsgBase{ @@ -1483,7 +1499,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp4, err := core.HasPartition(ctx, &milvuspb.HasPartitionRequest{ Base: &commonpb.MsgBase{ @@ -1494,7 +1510,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp4.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp4.Status.ErrorCode) rsp5, err := core.ShowPartitions(ctx, &milvuspb.ShowPartitionsRequest{ Base: &commonpb.MsgBase{ @@ -1505,7 +1521,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp5.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp5.Status.ErrorCode) st, err = core.CreateIndex(ctx, &milvuspb.CreateIndexRequest{ Base: &commonpb.MsgBase{ @@ -1516,7 +1532,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp6, err := core.DescribeIndex(ctx, &milvuspb.DescribeIndexRequest{ Base: &commonpb.MsgBase{ @@ -1527,7 +1543,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp6.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp6.Status.ErrorCode) st, err = core.DropIndex(ctx, &milvuspb.DropIndexRequest{ Base: &commonpb.MsgBase{ @@ -1538,7 +1554,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, st.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, st.ErrorCode) rsp7, err := core.DescribeSegment(ctx, &milvuspb.DescribeSegmentRequest{ Base: &commonpb.MsgBase{ @@ -1549,7 +1565,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp7.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp7.Status.ErrorCode) rsp8, err := core.ShowSegments(ctx, &milvuspb.ShowSegmentsRequest{ Base: &commonpb.MsgBase{ @@ -1560,7 +1576,7 @@ func TestMasterService(t *testing.T) { }, }) assert.Nil(t, err) - assert.NotEqual(t, rsp8.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, rsp8.Status.ErrorCode) }) @@ -1582,7 +1598,7 @@ func TestMasterService(t *testing.T) { } p1, err := core.AllocTimestamp(ctx, r1) assert.Nil(t, err) - assert.NotEqual(t, p1.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, p1.Status.ErrorCode) r2 := &masterpb.AllocIDRequest{ Base: &commonpb.MsgBase{ @@ -1595,7 +1611,7 @@ func TestMasterService(t *testing.T) { } p2, err := core.AllocID(ctx, r2) assert.Nil(t, err) - assert.NotEqual(t, p2.Status.ErrorCode, commonpb.ErrorCode_Success) + assert.NotEqual(t, commonpb.ErrorCode_Success, p2.Status.ErrorCode) }) } diff --git a/internal/masterservice/meta_table.go b/internal/masterservice/meta_table.go index 3fd3bf0ea0..f8f81f6d67 100644 --- a/internal/masterservice/meta_table.go +++ b/internal/masterservice/meta_table.go @@ -61,6 +61,7 @@ type metaTable struct { segID2PartitionID map[typeutil.UniqueID]typeutil.UniqueID // segment id -> partition id flushedSegID map[typeutil.UniqueID]bool // flushed segment id partitionID2CollID map[typeutil.UniqueID]typeutil.UniqueID // partition id -> collection id + vChan2Chan map[string]string // virtual channel name to physical channel name tenantLock sync.RWMutex proxyLock sync.RWMutex @@ -94,6 +95,7 @@ func (mt *metaTable) reloadFromKV() error { mt.segID2CollID = make(map[typeutil.UniqueID]typeutil.UniqueID) mt.segID2PartitionID = make(map[typeutil.UniqueID]typeutil.UniqueID) mt.flushedSegID = make(map[typeutil.UniqueID]bool) + mt.vChan2Chan = make(map[string]string) _, values, err := mt.client.LoadWithPrefix(TenantMetaPrefix) if err != nil { @@ -129,15 +131,19 @@ func (mt *metaTable) reloadFromKV() error { } for _, value := range values { - collectionInfo := pb.CollectionInfo{} - err = proto.UnmarshalText(value, &collectionInfo) + collInfo := pb.CollectionInfo{} + err = proto.UnmarshalText(value, &collInfo) if err != nil { return fmt.Errorf("MasterService UnmarshalText pb.CollectionInfo err:%w", err) } - mt.collID2Meta[collectionInfo.ID] = collectionInfo - mt.collName2ID[collectionInfo.Schema.Name] = collectionInfo.ID - for _, partID := range collectionInfo.PartitionIDs { - mt.partitionID2CollID[partID] = collectionInfo.ID + mt.collID2Meta[collInfo.ID] = collInfo + mt.collName2ID[collInfo.Schema.Name] = collInfo.ID + for _, partID := range collInfo.PartitionIDs { + mt.partitionID2CollID[partID] = collInfo.ID + } + shardsNum := len(collInfo.VirtualChannelNames) + for i := 0; i < shardsNum; i++ { + mt.vChan2Chan[collInfo.VirtualChannelNames[i]] = collInfo.PhysicalChannelNames[i] } } @@ -266,6 +272,11 @@ func (mt *metaTable) AddCollection(coll *pb.CollectionInfo, part *pb.PartitionIn meta[k] = v } + shardsNum := len(coll.VirtualChannelNames) + for i := 0; i < shardsNum; i++ { + mt.vChan2Chan[coll.VirtualChannelNames[i]] = coll.PhysicalChannelNames[i] + } + // save ddOpStr into etcd meta[DDOperationPrefix] = ddOpStr meta[DDMsgSendPrefix] = "false" @@ -317,6 +328,12 @@ func (mt *metaTable) DeleteCollection(collID typeutil.UniqueID, ddOpStr string) } delete(mt.indexID2Meta, idxInfo.IndexID) } + + shardsNum := len(collMeta.VirtualChannelNames) + for i := 0; i < shardsNum; i++ { + delete(mt.vChan2Chan, collMeta.VirtualChannelNames[i]) + } + delMetakeys := []string{ fmt.Sprintf("%s/%d", CollectionMetaPrefix, collID), fmt.Sprintf("%s/%d", PartitionMetaPrefix, collID), @@ -749,7 +766,7 @@ func (mt *metaTable) GetSegmentIndexInfoByID(segID typeutil.UniqueID, filedID in _, ok := mt.flushedSegID[segID] if !ok { - return pb.SegmentIndexInfo{}, fmt.Errorf("segment id %d hasn't flused, there is no index meta", segID) + return pb.SegmentIndexInfo{}, fmt.Errorf("segment id %d hasn't flushed, there is no index meta", segID) } segIdxMap, ok := mt.segID2IndexMeta[segID] @@ -1006,3 +1023,15 @@ func (mt *metaTable) AddFlushedSegment(segID typeutil.UniqueID) error { mt.flushedSegID[segID] = true return nil } + +// GetChanNameByVirtualChan return physical channel name corresponding the virtual channel +func (mt *metaTable) GetChanNameByVirtualChan(vname string) (string, error) { + mt.ddLock.RLock() + defer mt.ddLock.RUnlock() + + chanName, ok := mt.vChan2Chan[vname] + if !ok { + return "", fmt.Errorf("cannot find virtual channel %s", vname) + } + return chanName, nil +} diff --git a/internal/masterservice/meta_table_test.go b/internal/masterservice/meta_table_test.go index bf442ecebe..9255cf6a7d 100644 --- a/internal/masterservice/meta_table_test.go +++ b/internal/masterservice/meta_table_test.go @@ -147,14 +147,20 @@ func Test_MockKV(t *testing.T) { } func TestMetaTable(t *testing.T) { - const collID = typeutil.UniqueID(1) - const collIDInvalid = typeutil.UniqueID(2) - const partIDDefault = typeutil.UniqueID(10) - const partID = typeutil.UniqueID(20) - const partIDInvalid = typeutil.UniqueID(21) - const segID = typeutil.UniqueID(100) - const segID2 = typeutil.UniqueID(101) - const fieldID = typeutil.UniqueID(110) + const ( + collID = typeutil.UniqueID(1) + collIDInvalid = typeutil.UniqueID(2) + partIDDefault = typeutil.UniqueID(10) + partID = typeutil.UniqueID(20) + partIDInvalid = typeutil.UniqueID(21) + segID = typeutil.UniqueID(100) + segID2 = typeutil.UniqueID(101) + fieldID = typeutil.UniqueID(110) + fieldID2 = typeutil.UniqueID(111) + indexID = typeutil.UniqueID(10000) + indexID2 = typeutil.UniqueID(10001) + buildID = typeutil.UniqueID(201) + ) rand.Seed(time.Now().UnixNano()) randVal := rand.Int() @@ -208,7 +214,7 @@ func TestMetaTable(t *testing.T) { FieldIndexes: []*pb.FieldIndexInfo{ { FiledID: fieldID, - IndexID: 10000, + IndexID: indexID, }, }, CreateTime: 0, @@ -227,7 +233,7 @@ func TestMetaTable(t *testing.T) { idxInfo := []*pb.IndexInfo{ { IndexName: "testColl_index_110", - IndexID: 10000, + IndexID: indexID, IndexParams: []*commonpb.KeyValuePair{ { Key: "field110-i1", @@ -260,13 +266,13 @@ func TestMetaTable(t *testing.T) { collMeta, err := mt.GetCollectionByName("testColl") assert.Nil(t, err) - assert.Equal(t, collMeta.PartitionIDs[0], partIDDefault) - assert.Equal(t, len(collMeta.PartitionIDs), 1) + assert.Equal(t, partIDDefault, collMeta.PartitionIDs[0]) + assert.Equal(t, 1, len(collMeta.PartitionIDs)) assert.True(t, mt.HasCollection(collInfo.ID)) field, err := mt.GetFieldSchema("testColl", "field110") assert.Nil(t, err) - assert.Equal(t, field.FieldID, collInfo.Schema.Fields[0].FieldID) + assert.Equal(t, collInfo.Schema.Fields[0].FieldID, field.FieldID) // check DD operation flag flag, err := mt.client.Load(DDMsgSendPrefix) @@ -305,8 +311,8 @@ func TestMetaTable(t *testing.T) { segIdxInfo := pb.SegmentIndexInfo{ SegmentID: segID, FieldID: fieldID, - IndexID: 10000, - BuildID: 201, + IndexID: indexID, + BuildID: buildID, } err := mt.AddIndex(&segIdxInfo) assert.Nil(t, err) @@ -353,8 +359,8 @@ func TestMetaTable(t *testing.T) { assert.NotNil(t, err) seg, field, err := mt.GetNotIndexedSegments("testColl", "field110", idxInfo) assert.Nil(t, err) - assert.Equal(t, len(seg), 1) - assert.Equal(t, seg[0], segID2) + assert.Equal(t, 1, len(seg)) + assert.Equal(t, segID2, seg[0]) assert.True(t, EqualKeyPairArray(field.TypeParams, tparams)) params = []*commonpb.KeyValuePair{ @@ -369,9 +375,9 @@ func TestMetaTable(t *testing.T) { seg, field, err = mt.GetNotIndexedSegments("testColl", "field110", idxInfo) assert.Nil(t, err) - assert.Equal(t, len(seg), 2) - assert.Equal(t, seg[0], segID) - assert.Equal(t, seg[1], segID2) + assert.Equal(t, 2, len(seg)) + assert.Equal(t, segID, seg[0]) + assert.Equal(t, segID2, seg[1]) assert.True(t, EqualKeyPairArray(field.TypeParams, tparams)) }) @@ -379,8 +385,8 @@ func TestMetaTable(t *testing.T) { t.Run("get index by name", func(t *testing.T) { _, idx, err := mt.GetIndexByName("testColl", "field110") assert.Nil(t, err) - assert.Equal(t, len(idx), 1) - assert.Equal(t, idx[0].IndexID, int64(10000)) + assert.Equal(t, 1, len(idx)) + assert.Equal(t, indexID, idx[0].IndexID) params := []*commonpb.KeyValuePair{ { Key: "field110-i1", @@ -418,7 +424,7 @@ func TestMetaTable(t *testing.T) { idx, ok, err := mt.DropIndex("testColl", "field110", "field110") assert.Nil(t, err) assert.True(t, ok) - assert.Equal(t, idx, int64(10000)) + assert.Equal(t, indexID, idx) _, ok, err = mt.DropIndex("testColl", "field110", "field110-error") assert.Nil(t, err) @@ -449,7 +455,7 @@ func TestMetaTable(t *testing.T) { }) t.Run("drop collection", func(t *testing.T) { - err := mt.DeleteCollection(collIDInvalid, "") + err = mt.DeleteCollection(collIDInvalid, "") assert.NotNil(t, err) err = mt.DeleteCollection(collID, "") assert.Nil(t, err) @@ -706,10 +712,10 @@ func TestMetaTable(t *testing.T) { assert.Nil(t, mt.AddSegment(seg)) segIdxInfo := &pb.SegmentIndexInfo{ - SegmentID: 100, - FieldID: 110, - IndexID: 10001, - BuildID: 201, + SegmentID: segID, + FieldID: fieldID, + IndexID: indexID2, + BuildID: buildID, } err = mt.AddIndex(segIdxInfo) assert.NotNil(t, err) @@ -738,7 +744,7 @@ func TestMetaTable(t *testing.T) { assert.Nil(t, err) assert.Nil(t, mt.AddSegment(seg)) - segIdxInfo.IndexID = 10000 + segIdxInfo.IndexID = indexID mockKV.save = func(key, value string) error { return fmt.Errorf("save error") } @@ -780,12 +786,12 @@ func TestMetaTable(t *testing.T) { coll := mt.collID2Meta[collInfo.ID] coll.FieldIndexes = []*pb.FieldIndexInfo{ { - FiledID: 109, - IndexID: 10001, + FiledID: fieldID2, + IndexID: indexID2, }, { - FiledID: 110, - IndexID: 10000, + FiledID: fieldID, + IndexID: indexID, }, } mt.collID2Meta[coll.ID] = coll @@ -826,21 +832,17 @@ func TestMetaTable(t *testing.T) { err = mt.AddCollection(collInfo, partInfo, idxInfo, "") assert.Nil(t, err) - _, err = mt.GetSegmentIndexInfoByID(101, 101, "abc") + _, err = mt.GetSegmentIndexInfoByID(segID2, fieldID, "abc") assert.NotNil(t, err) - assert.EqualError(t, err, "segment id 101 hasn't flused, there is no index meta") + assert.EqualError(t, err, "segment id 101 hasn't flushed, there is no index meta") - err = mt.AddFlushedSegment(101) + err = mt.AddFlushedSegment(segID2) assert.Nil(t, err) - seg, err := mt.GetSegmentIndexInfoByID(101, 101, "abc") + seg, err := mt.GetSegmentIndexInfoByID(segID2, fieldID, "abc") assert.Nil(t, err) - assert.Equal(t, seg, pb.SegmentIndexInfo{ - SegmentID: 101, - FieldID: 101, - IndexID: 0, - BuildID: 0, - EnableIndex: false, - }) + assert.Equal(t, segID2, seg.SegmentID) + assert.Equal(t, fieldID, seg.FieldID) + assert.Equal(t, false, seg.EnableIndex) segInfo := &datapb.SegmentInfo{ ID: 100, @@ -849,10 +851,10 @@ func TestMetaTable(t *testing.T) { } assert.Nil(t, mt.AddSegment(segInfo)) segIdx := &pb.SegmentIndexInfo{ - SegmentID: 100, - FieldID: 110, - IndexID: 10000, - BuildID: 201, + SegmentID: segID, + FieldID: fieldID, + IndexID: indexID, + BuildID: buildID, } assert.Nil(t, mt.AddIndex(segIdx)) idx, err := mt.GetSegmentIndexInfoByID(segIdx.SegmentID, segIdx.FieldID, idxInfo[0].IndexName) @@ -1050,5 +1052,4 @@ func TestMetaTable(t *testing.T) { assert.NotNil(t, err) assert.EqualError(t, err, "segment id = 222 exist") }) - } diff --git a/internal/masterservice/task.go b/internal/masterservice/task.go index 4b8f9dac2c..1b584d4525 100644 --- a/internal/masterservice/task.go +++ b/internal/masterservice/task.go @@ -82,6 +82,8 @@ func (t *CreateCollectionReqTask) IgnoreTimeStamp() bool { } func (t *CreateCollectionReqTask) Execute(ctx context.Context) error { + const defaultShardsNum = 2 + if t.Type() != commonpb.MsgType_CreateCollection { return fmt.Errorf("create collection, msg type = %s", commonpb.MsgType_name[int32(t.Type())]) } @@ -95,6 +97,12 @@ func (t *CreateCollectionReqTask) Execute(ctx context.Context) error { return fmt.Errorf("collection name = %s, schema.Name=%s", t.Req.CollectionName, schema.Name) } + if t.Req.ShardsNum <= 0 { + log.Debug("Set ShardsNum to default", zap.String("collection name", t.Req.CollectionName), + zap.Int32("defaultShardsNum", defaultShardsNum)) + t.Req.ShardsNum = defaultShardsNum + } + for idx, field := range schema.Fields { field.FieldID = int64(idx + StartOfUserFieldID) } @@ -126,12 +134,22 @@ func (t *CreateCollectionReqTask) Execute(ctx context.Context) error { if err != nil { return err } + + vchanNames := make([]string, t.Req.ShardsNum) + chanNames := make([]string, t.Req.ShardsNum) + for i := int32(0); i < t.Req.ShardsNum; i++ { + vchanNames[i] = fmt.Sprintf("%s_%d_v%d", t.Req.CollectionName, collID, i) + chanNames[i] = fmt.Sprintf("%s_%d_c%d", t.Req.CollectionName, collID, i) + } + collInfo := etcdpb.CollectionInfo{ - ID: collID, - Schema: &schema, - CreateTime: collTs, - PartitionIDs: make([]typeutil.UniqueID, 0, 16), - FieldIndexes: make([]*etcdpb.FieldIndexInfo, 0, 16), + ID: collID, + Schema: &schema, + CreateTime: collTs, + PartitionIDs: make([]typeutil.UniqueID, 0, 16), + FieldIndexes: make([]*etcdpb.FieldIndexInfo, 0, 16), + VirtualChannelNames: vchanNames, + PhysicalChannelNames: chanNames, } // every collection has _default partition @@ -172,12 +190,14 @@ func (t *CreateCollectionReqTask) Execute(ctx context.Context) error { } ddCollReq := internalpb.CreateCollectionRequest{ - Base: t.Req.Base, - DbName: t.Req.DbName, - CollectionName: t.Req.CollectionName, - DbID: 0, //TODO,not used - CollectionID: collID, - Schema: schemaBytes, + Base: t.Req.Base, + DbName: t.Req.DbName, + CollectionName: t.Req.CollectionName, + DbID: 0, //TODO,not used + CollectionID: collID, + Schema: schemaBytes, + VirtualChannelNames: vchanNames, + PhysicalChannelNames: chanNames, } ddPartReq := internalpb.CreatePartitionRequest{ @@ -351,23 +371,23 @@ func (t *DescribeCollectionReqTask) Execute(ctx context.Context) error { if t.Type() != commonpb.MsgType_DescribeCollection { return fmt.Errorf("describe collection, msg type = %s", commonpb.MsgType_name[int32(t.Type())]) } - var coll *etcdpb.CollectionInfo + var collInfo *etcdpb.CollectionInfo var err error if t.Req.CollectionName != "" { - coll, err = t.core.MetaTable.GetCollectionByName(t.Req.CollectionName) + collInfo, err = t.core.MetaTable.GetCollectionByName(t.Req.CollectionName) if err != nil { return err } } else { - coll, err = t.core.MetaTable.GetCollectionByID(t.Req.CollectionID) + collInfo, err = t.core.MetaTable.GetCollectionByID(t.Req.CollectionID) if err != nil { return err } } - t.Rsp.Schema = proto.Clone(coll.Schema).(*schemapb.CollectionSchema) - t.Rsp.CollectionID = coll.ID + t.Rsp.Schema = proto.Clone(collInfo.Schema).(*schemapb.CollectionSchema) + t.Rsp.CollectionID = collInfo.ID var newField []*schemapb.FieldSchema for _, field := range t.Rsp.Schema.Fields { if field.FieldID >= StartOfUserFieldID { @@ -375,6 +395,9 @@ func (t *DescribeCollectionReqTask) Execute(ctx context.Context) error { } } t.Rsp.Schema.Fields = newField + + t.Rsp.VirtualChannelNames = collInfo.VirtualChannelNames + t.Rsp.PhysicalChannelNames = collInfo.PhysicalChannelNames return nil } diff --git a/internal/proto/etcd_meta.proto b/internal/proto/etcd_meta.proto index 8ac0960113..26f8149398 100644 --- a/internal/proto/etcd_meta.proto +++ b/internal/proto/etcd_meta.proto @@ -41,6 +41,8 @@ message CollectionInfo { uint64 create_time = 3; repeated int64 partitionIDs = 4; repeated FieldIndexInfo field_indexes = 5; + repeated string virtual_channel_names = 6; + repeated string physical_channel_names = 7; } message SegmentIndexInfo { diff --git a/internal/proto/etcdpb/etcd_meta.pb.go b/internal/proto/etcdpb/etcd_meta.pb.go index b750684ce6..08d0b9af8a 100644 --- a/internal/proto/etcdpb/etcd_meta.pb.go +++ b/internal/proto/etcdpb/etcd_meta.pb.go @@ -303,6 +303,8 @@ type CollectionInfo struct { 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"` FieldIndexes []*FieldIndexInfo `protobuf:"bytes,5,rep,name=field_indexes,json=fieldIndexes,proto3" json:"field_indexes,omitempty"` + VirtualChannelNames []string `protobuf:"bytes,6,rep,name=virtual_channel_names,json=virtualChannelNames,proto3" json:"virtual_channel_names,omitempty"` + PhysicalChannelNames []string `protobuf:"bytes,7,rep,name=physical_channel_names,json=physicalChannelNames,proto3" json:"physical_channel_names,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -368,6 +370,20 @@ func (m *CollectionInfo) GetFieldIndexes() []*FieldIndexInfo { return nil } +func (m *CollectionInfo) GetVirtualChannelNames() []string { + if m != nil { + return m.VirtualChannelNames + } + return nil +} + +func (m *CollectionInfo) GetPhysicalChannelNames() []string { + if m != nil { + return m.PhysicalChannelNames + } + return nil +} + type SegmentIndexInfo struct { SegmentID int64 `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"` FieldID int64 `protobuf:"varint,2,opt,name=fieldID,proto3" json:"fieldID,omitempty"` @@ -772,59 +788,62 @@ func init() { func init() { proto.RegisterFile("etcd_meta.proto", fileDescriptor_975d306d62b73e88) } var fileDescriptor_975d306d62b73e88 = []byte{ - // 853 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xcd, 0x8e, 0xe3, 0x44, - 0x10, 0x96, 0xf3, 0x3b, 0xae, 0x38, 0x99, 0x99, 0x3e, 0x99, 0x65, 0x97, 0xcd, 0x78, 0xb5, 0x10, - 0x09, 0x31, 0x23, 0x66, 0x05, 0x37, 0x0e, 0xec, 0x86, 0x91, 0x22, 0xc4, 0x6e, 0x70, 0x46, 0x1c, - 0xb8, 0x58, 0x9d, 0xb8, 0x26, 0x69, 0xc9, 0xdd, 0x0e, 0xee, 0x36, 0x3b, 0xb3, 0x27, 0xae, 0xf0, - 0x08, 0xdc, 0x78, 0x3e, 0x78, 0x05, 0x24, 0xd4, 0x3f, 0x71, 0xec, 0xd9, 0x2c, 0x42, 0x2b, 0x71, - 0x73, 0x7d, 0x55, 0xd5, 0x55, 0xf5, 0x7d, 0x5d, 0x6d, 0x38, 0x46, 0xb5, 0x4a, 0x13, 0x8e, 0x8a, - 0x9e, 0x6f, 0x8b, 0x5c, 0xe5, 0xe4, 0x94, 0xb3, 0xec, 0xe7, 0x52, 0x5a, 0xeb, 0x5c, 0x7b, 0x1f, - 0x04, 0xab, 0x9c, 0xf3, 0x5c, 0x58, 0xe8, 0x41, 0x20, 0x57, 0x1b, 0xe4, 0x2e, 0x3c, 0xfa, 0xdd, - 0x03, 0xb8, 0x46, 0x41, 0x85, 0xfa, 0x0e, 0x15, 0x25, 0x23, 0x68, 0xcd, 0xa6, 0xa1, 0x37, 0xf6, - 0x26, 0xed, 0xb8, 0x35, 0x9b, 0x92, 0x8f, 0xe1, 0x58, 0x94, 0x3c, 0xf9, 0xa9, 0xc4, 0xe2, 0x2e, - 0x11, 0x79, 0x8a, 0x32, 0x6c, 0x19, 0xe7, 0x50, 0x94, 0xfc, 0x7b, 0x8d, 0xbe, 0xd4, 0x20, 0xf9, - 0x14, 0x4e, 0x99, 0x90, 0x58, 0xa8, 0x64, 0xb5, 0xa1, 0x42, 0x60, 0x36, 0x9b, 0xca, 0xb0, 0x3d, - 0x6e, 0x4f, 0xfc, 0xf8, 0xc4, 0x3a, 0x5e, 0x54, 0x38, 0xf9, 0x04, 0x8e, 0xed, 0x81, 0x55, 0x6c, - 0xd8, 0x19, 0x7b, 0x13, 0x3f, 0x1e, 0x19, 0xb8, 0x8a, 0x8c, 0x7e, 0xf1, 0xc0, 0x9f, 0x17, 0xf9, - 0xed, 0xdd, 0xc1, 0xde, 0xbe, 0x84, 0x3e, 0x4d, 0xd3, 0x02, 0xa5, 0xed, 0x69, 0x70, 0xf9, 0xf0, - 0xbc, 0x31, 0xbb, 0x9b, 0xfa, 0x6b, 0x1b, 0x13, 0xef, 0x82, 0x75, 0xaf, 0x05, 0xca, 0x32, 0x3b, - 0xd4, 0xab, 0x75, 0xec, 0x7b, 0x8d, 0x6e, 0x61, 0x38, 0xa7, 0x85, 0x62, 0x8a, 0xe5, 0x62, 0x26, - 0x6e, 0x72, 0xf2, 0x14, 0x46, 0xdb, 0x1d, 0x90, 0x08, 0xca, 0xd1, 0x74, 0xe4, 0xc7, 0xc3, 0x0a, - 0x7d, 0x49, 0x39, 0x92, 0x31, 0x0c, 0x2a, 0x60, 0x36, 0x75, 0xa4, 0xd5, 0x21, 0xf2, 0x11, 0x80, - 0xc4, 0x35, 0x47, 0xa1, 0x76, 0xf5, 0xdb, 0x71, 0x0d, 0x89, 0x7e, 0xf3, 0xc0, 0x9f, 0x89, 0x14, - 0x6f, 0x4d, 0xd9, 0x47, 0x00, 0x4c, 0x1b, 0xf5, 0x92, 0xbe, 0x41, 0x4c, 0xb9, 0x10, 0xfa, 0xc6, - 0xa8, 0x4a, 0xed, 0x4c, 0x32, 0x85, 0xc0, 0x26, 0x6e, 0x69, 0x41, 0xb9, 0x2d, 0x34, 0xb8, 0x3c, - 0x3b, 0x48, 0xd5, 0xb7, 0x78, 0xf7, 0x03, 0xcd, 0x4a, 0x9c, 0x53, 0x56, 0xc4, 0x03, 0x93, 0x36, - 0x37, 0x59, 0xd1, 0x14, 0x46, 0x57, 0x0c, 0xb3, 0x74, 0xdf, 0x50, 0x08, 0xfd, 0x1b, 0x96, 0x61, - 0x5a, 0x49, 0xb2, 0x33, 0xdf, 0xdd, 0x4b, 0xf4, 0x97, 0x07, 0xa3, 0x17, 0x79, 0x96, 0xe1, 0xaa, - 0xa2, 0xf3, 0xbe, 0xa8, 0x5f, 0x41, 0xcf, 0xde, 0x4f, 0xa7, 0xe9, 0xd3, 0x66, 0xa3, 0xee, 0xee, - 0xee, 0x0f, 0x59, 0x18, 0x20, 0x76, 0x49, 0xe4, 0x31, 0x0c, 0x56, 0x05, 0x52, 0x85, 0x89, 0x62, - 0x1c, 0xc3, 0xf6, 0xd8, 0x9b, 0x74, 0x62, 0xb0, 0xd0, 0x35, 0xe3, 0x48, 0x22, 0x08, 0x6a, 0x22, - 0xc8, 0xb0, 0x63, 0x78, 0x6f, 0x60, 0xe4, 0x0a, 0x86, 0x37, 0x7a, 0xd8, 0xc4, 0xf4, 0x8d, 0x32, - 0xec, 0x1e, 0xe2, 0x4c, 0xaf, 0xd6, 0x79, 0x93, 0x94, 0x38, 0xb8, 0xa9, 0x6c, 0x94, 0xd1, 0x1f, - 0x1e, 0x9c, 0x2c, 0x9c, 0xa0, 0x15, 0x6f, 0x0f, 0xc1, 0xaf, 0x44, 0x76, 0x73, 0xef, 0x01, 0xcb, - 0xaa, 0x3e, 0xa2, 0xe2, 0xce, 0x99, 0x75, 0x56, 0xdb, 0x4d, 0x85, 0x43, 0xe8, 0x2f, 0x4b, 0x66, - 0x72, 0x3a, 0xd6, 0xe3, 0x4c, 0x72, 0x06, 0x01, 0x0a, 0xba, 0xcc, 0xd0, 0x4e, 0x12, 0x76, 0xc7, - 0xde, 0xe4, 0x28, 0x1e, 0x58, 0xcc, 0xb4, 0x14, 0xfd, 0xd9, 0x90, 0xe4, 0xe0, 0x9e, 0xfd, 0xdf, - 0x92, 0x34, 0x17, 0xa1, 0x73, 0x7f, 0x11, 0x9a, 0x1b, 0xa7, 0xe8, 0xda, 0xea, 0x51, 0xdf, 0xb8, - 0x6b, 0xba, 0x96, 0x6f, 0x29, 0xdb, 0x7b, 0x5b, 0xd9, 0xe8, 0x15, 0x9c, 0x18, 0xc5, 0x9e, 0x33, - 0x91, 0xe5, 0xeb, 0x2b, 0x96, 0xa1, 0xac, 0x53, 0xee, 0x35, 0x29, 0x3f, 0x83, 0x60, 0x69, 0x02, - 0x13, 0x7d, 0xb5, 0xf5, 0x2b, 0xa3, 0xcb, 0x0e, 0x96, 0xfb, 0xe4, 0xe8, 0xef, 0x16, 0x0c, 0x9c, - 0xc4, 0x86, 0xbb, 0x7f, 0x57, 0x37, 0x82, 0x60, 0xb5, 0xbf, 0xfe, 0x3b, 0x89, 0x1b, 0x18, 0x79, - 0x02, 0xc3, 0xc6, 0xb4, 0x86, 0x30, 0xbf, 0x36, 0xc7, 0x35, 0x5d, 0xeb, 0x20, 0xf7, 0x76, 0x25, - 0x52, 0xd1, 0x42, 0x19, 0xe1, 0xbb, 0x71, 0xe0, 0xc0, 0x85, 0xc6, 0x0c, 0xf1, 0x2e, 0x08, 0x45, - 0x6a, 0xc4, 0xef, 0xc6, 0xe0, 0xa0, 0x6f, 0x44, 0x4a, 0x3e, 0x04, 0x3f, 0xdf, 0xa2, 0xb0, 0xba, - 0xf4, 0x8c, 0x2e, 0x47, 0x1a, 0x30, 0xaa, 0x3c, 0x02, 0x58, 0x65, 0xb9, 0x74, 0xaa, 0xf5, 0x8d, - 0xd7, 0x37, 0x88, 0x71, 0x7f, 0x00, 0x47, 0xfa, 0xc7, 0x50, 0xe4, 0xaf, 0x65, 0x78, 0x64, 0x69, - 0x13, 0x25, 0x8f, 0xf3, 0xd7, 0x52, 0xbb, 0x38, 0xf2, 0x44, 0xb2, 0x37, 0x18, 0xfa, 0xd6, 0xc5, - 0x91, 0x2f, 0xd8, 0x1b, 0x24, 0xaf, 0xe0, 0xb4, 0xc6, 0x68, 0xb2, 0xa5, 0x6a, 0x23, 0x43, 0x30, - 0xdb, 0xf5, 0xe4, 0x5d, 0xdb, 0x55, 0xd3, 0x2a, 0x3e, 0xde, 0x73, 0x3f, 0xd7, 0xb9, 0xd1, 0xaf, - 0xad, 0xfa, 0xc3, 0xf4, 0x1f, 0x24, 0x78, 0x9f, 0x05, 0xbb, 0xff, 0x84, 0x76, 0xde, 0xe7, 0x09, - 0x25, 0x5f, 0x40, 0x57, 0x2a, 0xaa, 0xd0, 0x08, 0x31, 0xba, 0x7c, 0x7c, 0x30, 0xdd, 0x8c, 0xb1, - 0xd0, 0x61, 0xb1, 0x8d, 0x26, 0x13, 0x38, 0xb1, 0xc5, 0x6b, 0x8c, 0xf5, 0xcc, 0x45, 0x1c, 0x19, - 0xbc, 0xe2, 0xe2, 0xf9, 0xb3, 0x1f, 0x3f, 0x5f, 0x33, 0xb5, 0x29, 0x97, 0xfa, 0xb0, 0x0b, 0x7b, - 0xfa, 0x67, 0x2c, 0x77, 0x5f, 0x17, 0x4c, 0x28, 0x2c, 0x04, 0xcd, 0x2e, 0x4c, 0xc1, 0x0b, 0x4d, - 0xf0, 0x76, 0xb9, 0xec, 0x19, 0xeb, 0xd9, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7c, 0xf0, 0x38, - 0xe7, 0x48, 0x08, 0x00, 0x00, + // 899 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xcd, 0x8e, 0x1b, 0x45, + 0x10, 0xd6, 0xf8, 0x77, 0xa7, 0xfc, 0xb3, 0xbb, 0xcd, 0x8f, 0x86, 0x90, 0x10, 0xef, 0x44, 0x01, + 0x4b, 0x88, 0x5d, 0xb1, 0x01, 0x6e, 0x1c, 0x48, 0xcc, 0x4a, 0x16, 0x22, 0x31, 0xe3, 0x15, 0x07, + 0x2e, 0xa3, 0xb6, 0x5d, 0x6b, 0xb7, 0x34, 0xdd, 0x63, 0xa6, 0x7b, 0x92, 0xdd, 0x9c, 0xb8, 0xc2, + 0x23, 0x70, 0xe3, 0xa5, 0x78, 0x09, 0x9e, 0x01, 0x09, 0xf5, 0xcf, 0x8c, 0x67, 0x76, 0x1d, 0x84, + 0x22, 0x71, 0x73, 0x7d, 0x55, 0x35, 0x55, 0xf5, 0x7d, 0x55, 0x6d, 0x38, 0x44, 0xb5, 0x5c, 0xc5, + 0x1c, 0x15, 0x3d, 0xdd, 0x66, 0xa9, 0x4a, 0xc9, 0x31, 0x67, 0xc9, 0xcb, 0x5c, 0x5a, 0xeb, 0x54, + 0x7b, 0xef, 0xf5, 0x97, 0x29, 0xe7, 0xa9, 0xb0, 0xd0, 0xbd, 0xbe, 0x5c, 0x6e, 0x90, 0xbb, 0xf0, + 0xf0, 0x77, 0x0f, 0xe0, 0x12, 0x05, 0x15, 0xea, 0x7b, 0x54, 0x94, 0x0c, 0xa1, 0x31, 0x9d, 0x04, + 0xde, 0xc8, 0x1b, 0x37, 0xa3, 0xc6, 0x74, 0x42, 0x3e, 0x86, 0x43, 0x91, 0xf3, 0xf8, 0xe7, 0x1c, + 0xb3, 0x9b, 0x58, 0xa4, 0x2b, 0x94, 0x41, 0xc3, 0x38, 0x07, 0x22, 0xe7, 0x3f, 0x68, 0xf4, 0xb9, + 0x06, 0xc9, 0xa7, 0x70, 0xcc, 0x84, 0xc4, 0x4c, 0xc5, 0xcb, 0x0d, 0x15, 0x02, 0x93, 0xe9, 0x44, + 0x06, 0xcd, 0x51, 0x73, 0xec, 0x47, 0x47, 0xd6, 0xf1, 0xac, 0xc4, 0xc9, 0x27, 0x70, 0x68, 0x3f, + 0x58, 0xc6, 0x06, 0xad, 0x91, 0x37, 0xf6, 0xa3, 0xa1, 0x81, 0xcb, 0xc8, 0xf0, 0x17, 0x0f, 0xfc, + 0x59, 0x96, 0x5e, 0xdf, 0xec, 0xed, 0xed, 0x2b, 0xe8, 0xd2, 0xd5, 0x2a, 0x43, 0x69, 0x7b, 0xea, + 0x9d, 0xdf, 0x3f, 0xad, 0xcd, 0xee, 0xa6, 0xfe, 0xc6, 0xc6, 0x44, 0x45, 0xb0, 0xee, 0x35, 0x43, + 0x99, 0x27, 0xfb, 0x7a, 0xb5, 0x8e, 0x5d, 0xaf, 0xe1, 0x35, 0x0c, 0x66, 0x34, 0x53, 0x4c, 0xb1, + 0x54, 0x4c, 0xc5, 0x55, 0x4a, 0x1e, 0xc3, 0x70, 0x5b, 0x00, 0xb1, 0xa0, 0x1c, 0x4d, 0x47, 0x7e, + 0x34, 0x28, 0xd1, 0xe7, 0x94, 0x23, 0x19, 0x41, 0xaf, 0x04, 0xa6, 0x13, 0x47, 0x5a, 0x15, 0x22, + 0x1f, 0x01, 0x48, 0x5c, 0x73, 0x14, 0xaa, 0xa8, 0xdf, 0x8c, 0x2a, 0x48, 0xf8, 0x9b, 0x07, 0xfe, + 0x54, 0xac, 0xf0, 0xda, 0x94, 0x7d, 0x00, 0xc0, 0xb4, 0x51, 0x2d, 0xe9, 0x1b, 0xc4, 0x94, 0x0b, + 0xa0, 0x6b, 0x8c, 0xb2, 0x54, 0x61, 0x92, 0x09, 0xf4, 0x6d, 0xe2, 0x96, 0x66, 0x94, 0xdb, 0x42, + 0xbd, 0xf3, 0x93, 0xbd, 0x54, 0x7d, 0x87, 0x37, 0x3f, 0xd2, 0x24, 0xc7, 0x19, 0x65, 0x59, 0xd4, + 0x33, 0x69, 0x33, 0x93, 0x15, 0x4e, 0x60, 0x78, 0xc1, 0x30, 0x59, 0xed, 0x1a, 0x0a, 0xa0, 0x7b, + 0xc5, 0x12, 0x5c, 0x95, 0x92, 0x14, 0xe6, 0x9b, 0x7b, 0x09, 0xff, 0x6c, 0xc0, 0xf0, 0x59, 0x9a, + 0x24, 0xb8, 0x2c, 0xe9, 0xbc, 0x2d, 0xea, 0xd7, 0xd0, 0xb1, 0xfb, 0xe9, 0x34, 0x7d, 0x5c, 0x6f, + 0xd4, 0xed, 0xee, 0xee, 0x23, 0x73, 0x03, 0x44, 0x2e, 0x89, 0x3c, 0x84, 0xde, 0x32, 0x43, 0xaa, + 0x30, 0x56, 0x8c, 0x63, 0xd0, 0x1c, 0x79, 0xe3, 0x56, 0x04, 0x16, 0xba, 0x64, 0x1c, 0x49, 0x08, + 0xfd, 0x8a, 0x08, 0x32, 0x68, 0x19, 0xde, 0x6b, 0x18, 0xb9, 0x80, 0xc1, 0x95, 0x1e, 0x36, 0x36, + 0x7d, 0xa3, 0x0c, 0xda, 0xfb, 0x38, 0xd3, 0xa7, 0x75, 0x5a, 0x27, 0x25, 0xea, 0x5f, 0x95, 0x36, + 0x4a, 0x72, 0x0e, 0xef, 0xbd, 0x64, 0x99, 0xca, 0x69, 0x52, 0x6c, 0x9a, 0x51, 0x4f, 0x06, 0x1d, + 0xb3, 0x6c, 0xef, 0x38, 0xa7, 0xdb, 0x36, 0xad, 0xa3, 0x24, 0x5f, 0xc0, 0xfb, 0xdb, 0xcd, 0x8d, + 0x64, 0xcb, 0x3b, 0x49, 0x5d, 0x93, 0xf4, 0x6e, 0xe1, 0xad, 0x66, 0x85, 0x7f, 0x78, 0x70, 0x34, + 0x77, 0xab, 0x53, 0x2a, 0x74, 0x1f, 0xfc, 0x72, 0x9d, 0x1c, 0xc3, 0x3b, 0xc0, 0xea, 0xa7, 0x9b, + 0x2d, 0x55, 0x72, 0x66, 0x55, 0xbf, 0x66, 0x7d, 0x97, 0x02, 0xe8, 0x2e, 0x72, 0x66, 0x72, 0x5a, + 0xd6, 0xe3, 0x4c, 0x72, 0x02, 0x7d, 0x14, 0x74, 0x91, 0xa0, 0xe5, 0x2c, 0x68, 0x8f, 0xbc, 0xf1, + 0x41, 0xd4, 0xb3, 0x98, 0x69, 0x29, 0xfc, 0xcb, 0xab, 0x8a, 0xbf, 0xf7, 0xa2, 0xff, 0x6f, 0xf1, + 0xeb, 0x27, 0xd7, 0xba, 0x7d, 0x72, 0xf5, 0xdb, 0x56, 0x74, 0x6d, 0x95, 0xaf, 0xde, 0xf6, 0x25, + 0x5d, 0xcb, 0x3b, 0x3b, 0xd4, 0xb9, 0xbb, 0x43, 0xe1, 0x0b, 0x38, 0x32, 0xbb, 0xf1, 0x94, 0x89, + 0x24, 0x5d, 0x5f, 0xb0, 0x04, 0x65, 0x95, 0x72, 0xaf, 0x4e, 0xf9, 0x09, 0xf4, 0x17, 0x26, 0x30, + 0xd6, 0x47, 0xa4, 0xdf, 0x33, 0x5d, 0xb6, 0xb7, 0xd8, 0x25, 0x87, 0x7f, 0x37, 0xa0, 0xe7, 0x24, + 0x36, 0xdc, 0xfd, 0xbb, 0xba, 0x21, 0xf4, 0x97, 0xbb, 0x43, 0x2b, 0x24, 0xae, 0x61, 0xe4, 0x11, + 0x0c, 0x6a, 0xd3, 0x1a, 0xc2, 0xfc, 0xca, 0x1c, 0x97, 0x74, 0xad, 0x83, 0x8a, 0x35, 0x94, 0x8a, + 0x66, 0xca, 0x08, 0xdf, 0x8e, 0xfa, 0x0e, 0x9c, 0x6b, 0xcc, 0x10, 0xef, 0x82, 0x50, 0xac, 0x8c, + 0xf8, 0xed, 0x08, 0x1c, 0xf4, 0xad, 0x58, 0x91, 0x0f, 0xc1, 0x4f, 0xb7, 0x28, 0xac, 0x2e, 0x1d, + 0xa3, 0xcb, 0x81, 0x06, 0x8c, 0x2a, 0x0f, 0x00, 0x96, 0x49, 0x2a, 0x9d, 0x6a, 0x5d, 0xe3, 0xf5, + 0x0d, 0x62, 0xdc, 0x1f, 0xc0, 0x81, 0xfe, 0x0b, 0xca, 0xd2, 0x57, 0x32, 0x38, 0xb0, 0xb4, 0x89, + 0x9c, 0x47, 0xe9, 0x2b, 0xa9, 0x5d, 0x1c, 0x79, 0x2c, 0xd9, 0x6b, 0x0c, 0x7c, 0xeb, 0xe2, 0xc8, + 0xe7, 0xec, 0x35, 0x92, 0x17, 0x70, 0x5c, 0x61, 0x34, 0xde, 0x52, 0xb5, 0x91, 0x01, 0x98, 0x3b, + 0x7e, 0xf4, 0xa6, 0x3b, 0xae, 0x68, 0x15, 0x1d, 0xee, 0xb8, 0x9f, 0xe9, 0xdc, 0xf0, 0xd7, 0x46, + 0xf5, 0x09, 0xfc, 0x0f, 0x12, 0xbc, 0xcd, 0x81, 0xdd, 0x7e, 0xac, 0x5b, 0x6f, 0xf3, 0x58, 0x93, + 0x2f, 0xa1, 0x2d, 0x15, 0x55, 0x68, 0x84, 0x18, 0x9e, 0x3f, 0xdc, 0x9b, 0x6e, 0xc6, 0x98, 0xeb, + 0xb0, 0xc8, 0x46, 0x93, 0x31, 0x1c, 0xd9, 0xe2, 0x15, 0xc6, 0xec, 0x4b, 0x35, 0x34, 0x78, 0xc9, + 0xc5, 0xd3, 0x27, 0x3f, 0x7d, 0xbe, 0x66, 0x6a, 0x93, 0x2f, 0xf4, 0xc7, 0xce, 0xec, 0xd7, 0x3f, + 0x63, 0xa9, 0xfb, 0x75, 0xc6, 0x84, 0xc2, 0x4c, 0xd0, 0xe4, 0xcc, 0x14, 0x3c, 0xd3, 0x04, 0x6f, + 0x17, 0x8b, 0x8e, 0xb1, 0x9e, 0xfc, 0x13, 0x00, 0x00, 0xff, 0xff, 0xcf, 0x3a, 0xd8, 0x74, 0xb2, + 0x08, 0x00, 0x00, } diff --git a/internal/proto/internal.proto b/internal/proto/internal.proto index 044ea4b7a3..29804de4df 100644 --- a/internal/proto/internal.proto +++ b/internal/proto/internal.proto @@ -62,6 +62,8 @@ message CreateCollectionRequest { int64 dbID = 4; int64 collectionID = 5; bytes schema = 6; + repeated string virtualChannelNames = 7; + repeated string physicalChannelNames= 8; } message DropCollectionRequest { diff --git a/internal/proto/internalpb/internal.pb.go b/internal/proto/internalpb/internal.pb.go index d3280eba5e..c084472627 100644 --- a/internal/proto/internalpb/internal.pb.go +++ b/internal/proto/internalpb/internal.pb.go @@ -479,6 +479,8 @@ type CreateCollectionRequest struct { DbID int64 `protobuf:"varint,4,opt,name=dbID,proto3" json:"dbID,omitempty"` CollectionID int64 `protobuf:"varint,5,opt,name=collectionID,proto3" json:"collectionID,omitempty"` Schema []byte `protobuf:"bytes,6,opt,name=schema,proto3" json:"schema,omitempty"` + VirtualChannelNames []string `protobuf:"bytes,7,rep,name=virtualChannelNames,proto3" json:"virtualChannelNames,omitempty"` + PhysicalChannelNames []string `protobuf:"bytes,8,rep,name=physicalChannelNames,proto3" json:"physicalChannelNames,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -551,6 +553,20 @@ func (m *CreateCollectionRequest) GetSchema() []byte { return nil } +func (m *CreateCollectionRequest) GetVirtualChannelNames() []string { + if m != nil { + return m.VirtualChannelNames + } + return nil +} + +func (m *CreateCollectionRequest) GetPhysicalChannelNames() []string { + if m != nil { + return m.PhysicalChannelNames + } + return nil +} + type DropCollectionRequest struct { Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` @@ -1842,102 +1858,104 @@ func init() { func init() { proto.RegisterFile("internal.proto", fileDescriptor_41f4a519b878ee3b) } var fileDescriptor_41f4a519b878ee3b = []byte{ - // 1541 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x5b, 0x6f, 0x1b, 0xc5, - 0x17, 0xff, 0xaf, 0xed, 0xc4, 0xf6, 0xf1, 0x26, 0x75, 0xb7, 0xb7, 0x4d, 0x2f, 0xff, 0xba, 0xcb, - 0x2d, 0x50, 0x91, 0x54, 0x29, 0x50, 0xc4, 0x4b, 0xdb, 0xc4, 0x6d, 0xb0, 0xda, 0x44, 0x61, 0xdd, - 0x56, 0x82, 0x97, 0xd5, 0xd8, 0x7b, 0x62, 0x6f, 0xbb, 0x37, 0x66, 0xc6, 0x4d, 0xdc, 0x27, 0x1e, - 0x78, 0x43, 0xf0, 0x80, 0xc4, 0xd7, 0xe0, 0x23, 0x00, 0xe2, 0x09, 0x89, 0x77, 0x24, 0x24, 0x3e, - 0x05, 0x8f, 0x3c, 0xa1, 0xb9, 0xec, 0xda, 0x4e, 0x9d, 0x90, 0x1a, 0x21, 0x84, 0xe0, 0x6d, 0xe7, - 0x9c, 0xe3, 0x99, 0xf9, 0xfd, 0x7e, 0xe7, 0x9c, 0x99, 0x31, 0x2c, 0x06, 0x31, 0x47, 0x1a, 0x93, - 0x70, 0x25, 0xa5, 0x09, 0x4f, 0xac, 0x33, 0x51, 0x10, 0x3e, 0x1d, 0x30, 0x35, 0x5a, 0xc9, 0x9c, - 0xe7, 0xcd, 0x6e, 0x12, 0x45, 0x49, 0xac, 0xcc, 0xce, 0x37, 0x06, 0x2c, 0x6c, 0x24, 0x51, 0x9a, - 0xc4, 0x18, 0xf3, 0x56, 0xbc, 0x9b, 0x58, 0x67, 0x61, 0x3e, 0x4e, 0x7c, 0x6c, 0x35, 0x6d, 0xa3, - 0x61, 0x2c, 0x17, 0x5d, 0x3d, 0xb2, 0x2c, 0x28, 0xd1, 0x24, 0x44, 0xbb, 0xd0, 0x30, 0x96, 0xab, - 0xae, 0xfc, 0xb6, 0x6e, 0x02, 0x30, 0x4e, 0x38, 0x7a, 0xdd, 0xc4, 0x47, 0xbb, 0xd8, 0x30, 0x96, - 0x17, 0xd7, 0x1a, 0x2b, 0x53, 0xd7, 0x5d, 0x69, 0x8b, 0xc0, 0x8d, 0xc4, 0x47, 0xb7, 0xca, 0xb2, - 0x4f, 0xeb, 0x16, 0x00, 0xee, 0x73, 0x4a, 0xbc, 0x20, 0xde, 0x4d, 0xec, 0x52, 0xa3, 0xb8, 0x5c, - 0x5b, 0xbb, 0x32, 0x39, 0x81, 0xde, 0xee, 0x3d, 0x1c, 0x3e, 0x22, 0xe1, 0x00, 0x77, 0x48, 0x40, - 0xdd, 0xaa, 0xfc, 0x91, 0xd8, 0xae, 0xf3, 0xb3, 0x01, 0x27, 0x72, 0x00, 0x72, 0x0d, 0x66, 0xbd, - 0x07, 0x73, 0x72, 0x09, 0x89, 0xa0, 0xb6, 0xf6, 0xf2, 0x21, 0x3b, 0x9a, 0xc0, 0xed, 0xaa, 0x9f, - 0x58, 0x0f, 0xe1, 0x14, 0x1b, 0x74, 0xba, 0x99, 0xcb, 0x93, 0x56, 0x66, 0x17, 0xe4, 0xd6, 0x8e, - 0x37, 0x93, 0x35, 0x3e, 0x81, 0xde, 0xd2, 0x75, 0x98, 0x17, 0x33, 0x0d, 0x98, 0x64, 0xa9, 0xb6, - 0x76, 0x61, 0x2a, 0xc8, 0xb6, 0x0c, 0x71, 0x75, 0xa8, 0x73, 0x01, 0x96, 0x36, 0x91, 0x1f, 0x40, - 0xe7, 0xe2, 0xc7, 0x03, 0x64, 0x5c, 0x3b, 0x1f, 0x04, 0x11, 0x3e, 0x08, 0xba, 0x4f, 0x36, 0xfa, - 0x24, 0x8e, 0x31, 0xcc, 0x9c, 0x97, 0xe0, 0xc2, 0x26, 0xca, 0x1f, 0x04, 0x8c, 0x07, 0x5d, 0x76, - 0xc0, 0x7d, 0x06, 0x4e, 0x6d, 0x22, 0x6f, 0xfa, 0x07, 0xcc, 0x8f, 0xa0, 0xb2, 0x2d, 0xc4, 0x16, - 0x69, 0xf0, 0x0e, 0x94, 0x89, 0xef, 0x53, 0x64, 0x4c, 0xb3, 0x78, 0x71, 0xea, 0x8e, 0x6f, 0xab, - 0x18, 0x37, 0x0b, 0x9e, 0x96, 0x26, 0xce, 0x63, 0x80, 0x56, 0x1c, 0xf0, 0x1d, 0x42, 0x49, 0xc4, - 0x0e, 0x4d, 0xb0, 0x26, 0x98, 0x8c, 0x13, 0xca, 0xbd, 0x54, 0xc6, 0x69, 0xca, 0x8f, 0x91, 0x0d, - 0x35, 0xf9, 0x33, 0x35, 0xbb, 0xf3, 0x21, 0x40, 0x9b, 0xd3, 0x20, 0xee, 0xdd, 0x0f, 0x18, 0x17, - 0x6b, 0x3d, 0x15, 0x71, 0x02, 0x44, 0x71, 0xb9, 0xea, 0xea, 0xd1, 0x98, 0x1c, 0x85, 0xe3, 0xcb, - 0x71, 0x13, 0x6a, 0x19, 0xdd, 0x5b, 0xac, 0x67, 0x5d, 0x83, 0x52, 0x87, 0x30, 0x3c, 0x92, 0x9e, - 0x2d, 0xd6, 0x5b, 0x27, 0x0c, 0x5d, 0x19, 0xe9, 0xfc, 0x62, 0xc0, 0xb9, 0x0d, 0x8a, 0x32, 0xf9, - 0xc3, 0x10, 0xbb, 0x3c, 0x48, 0x62, 0xcd, 0xfd, 0x8b, 0xcf, 0x66, 0x9d, 0x83, 0xb2, 0xdf, 0xf1, - 0x62, 0x12, 0x65, 0x64, 0xcf, 0xfb, 0x9d, 0x6d, 0x12, 0xa1, 0xf5, 0x2a, 0x2c, 0x76, 0xf3, 0xf9, - 0x85, 0x45, 0xe6, 0x5c, 0xd5, 0x3d, 0x60, 0x15, 0x52, 0xf9, 0x9d, 0x56, 0xd3, 0x2e, 0x49, 0x19, - 0xe4, 0xb7, 0xe5, 0x80, 0x39, 0x8a, 0x6a, 0x35, 0xed, 0x39, 0xe9, 0x9b, 0xb0, 0x09, 0x52, 0x59, - 0xb7, 0x8f, 0x11, 0xb1, 0xe7, 0x1b, 0xc6, 0xb2, 0xe9, 0xea, 0x91, 0xf3, 0xbd, 0x01, 0x67, 0x9a, - 0x34, 0x49, 0xff, 0xc9, 0xe0, 0x9c, 0xcf, 0x0b, 0x70, 0x56, 0x69, 0xb4, 0x43, 0x28, 0x0f, 0xfe, - 0x22, 0x14, 0xaf, 0xc1, 0x89, 0xd1, 0xaa, 0x2a, 0x60, 0x3a, 0x8c, 0x57, 0x60, 0x31, 0xcd, 0xf6, - 0xa1, 0xe2, 0x4a, 0x32, 0x6e, 0x21, 0xb7, 0x4e, 0xa0, 0x9d, 0x3b, 0x02, 0xed, 0xfc, 0x14, 0x29, - 0x1b, 0x50, 0xcb, 0x27, 0x6a, 0x35, 0xed, 0xb2, 0x0c, 0x19, 0x37, 0x39, 0x9f, 0x15, 0xe0, 0xb4, - 0x10, 0xf5, 0x3f, 0x36, 0x04, 0x1b, 0xdf, 0x16, 0xc0, 0x52, 0xd9, 0xd1, 0x8a, 0x7d, 0xdc, 0xff, - 0x3b, 0xb9, 0xb8, 0x04, 0xb0, 0x1b, 0x60, 0xe8, 0x8f, 0xf3, 0x50, 0x95, 0x96, 0x3f, 0xc5, 0x81, - 0x0d, 0x65, 0x39, 0x49, 0x8e, 0x3f, 0x1b, 0x8a, 0xfe, 0xac, 0xce, 0x6a, 0xdd, 0x9f, 0x2b, 0xc7, - 0xee, 0xcf, 0xf2, 0x67, 0xba, 0x3f, 0x7f, 0x5d, 0x84, 0x85, 0x56, 0xcc, 0x90, 0xf2, 0x7f, 0x73, - 0x22, 0x59, 0x17, 0xa1, 0xca, 0xb0, 0x17, 0x89, 0x2b, 0x43, 0xd3, 0xae, 0x48, 0xff, 0xc8, 0x20, - 0xbc, 0x5d, 0x75, 0x34, 0xb7, 0x9a, 0x76, 0x55, 0x49, 0x9b, 0x1b, 0xac, 0xff, 0x03, 0xf0, 0x20, - 0x42, 0xc6, 0x49, 0x94, 0x32, 0x1b, 0x1a, 0xc5, 0xe5, 0x92, 0x3b, 0x66, 0x11, 0xfd, 0x99, 0x26, - 0x7b, 0xad, 0x26, 0xb3, 0x6b, 0x8d, 0xa2, 0x38, 0x60, 0xd5, 0xc8, 0x7a, 0x0b, 0x2a, 0x34, 0xd9, - 0xf3, 0x7c, 0xc2, 0x89, 0x6d, 0x4a, 0xf1, 0x96, 0xa6, 0x92, 0xbd, 0x1e, 0x26, 0x1d, 0xb7, 0x4c, - 0x93, 0xbd, 0x26, 0xe1, 0xc4, 0xf9, 0xb5, 0x00, 0x0b, 0x6d, 0x24, 0xb4, 0xdb, 0x9f, 0x5d, 0xb0, - 0xd7, 0xa1, 0x4e, 0x91, 0x0d, 0x42, 0xee, 0x8d, 0x60, 0x29, 0xe5, 0x4e, 0x28, 0xfb, 0x46, 0x0e, - 0x2e, 0xa3, 0xbc, 0x78, 0x04, 0xe5, 0xa5, 0x29, 0x94, 0x3b, 0x60, 0x8e, 0xf1, 0xcb, 0xec, 0x39, - 0x09, 0x7d, 0xc2, 0x66, 0xd5, 0xa1, 0xe8, 0xb3, 0x50, 0x2a, 0x56, 0x75, 0xc5, 0xa7, 0x75, 0x15, - 0x4e, 0xa6, 0x21, 0xe9, 0x62, 0x3f, 0x09, 0x7d, 0xa4, 0x5e, 0x8f, 0x26, 0x83, 0x54, 0xca, 0x65, - 0xba, 0xf5, 0x31, 0xc7, 0xa6, 0xb0, 0x5b, 0x37, 0xa0, 0xe2, 0xb3, 0xd0, 0xe3, 0xc3, 0x14, 0xa5, - 0x64, 0x8b, 0x87, 0x60, 0x6f, 0xb2, 0xf0, 0xc1, 0x30, 0x45, 0xb7, 0xec, 0xab, 0x0f, 0xeb, 0x1a, - 0x9c, 0x66, 0x48, 0x03, 0x12, 0x06, 0xcf, 0xd0, 0xf7, 0x70, 0x3f, 0xa5, 0x5e, 0x1a, 0x92, 0x58, - 0x2a, 0x6b, 0xba, 0xd6, 0xc8, 0x77, 0x67, 0x3f, 0xa5, 0x3b, 0x21, 0x89, 0x9d, 0x9f, 0x8c, 0x11, - 0xe9, 0x82, 0x1f, 0x36, 0x03, 0xe9, 0xb3, 0xdc, 0x71, 0xa6, 0x2a, 0x55, 0x9c, 0xae, 0xd4, 0x65, - 0xa8, 0x45, 0xc8, 0x69, 0xd0, 0x55, 0x8c, 0xa8, 0x02, 0x02, 0x65, 0x92, 0xb0, 0x2d, 0x28, 0xf5, - 0x03, 0xae, 0xa4, 0x30, 0x5d, 0xf9, 0xed, 0xfc, 0x68, 0xc0, 0x42, 0x13, 0x43, 0xe4, 0x38, 0x7b, - 0x36, 0x4d, 0xa9, 0xf2, 0xc2, 0xd4, 0x2a, 0x9f, 0x28, 0xa3, 0xe2, 0xd1, 0x65, 0x54, 0x7a, 0xae, - 0x8c, 0xae, 0x80, 0x99, 0xd2, 0x20, 0x22, 0x74, 0xe8, 0x3d, 0xc1, 0x61, 0x96, 0x51, 0x35, 0x6d, - 0xbb, 0x87, 0x43, 0xe6, 0xfc, 0x66, 0x40, 0xf5, 0x7e, 0x42, 0x7c, 0x79, 0x18, 0xcc, 0x80, 0x64, - 0xa2, 0x0b, 0x14, 0xa6, 0x74, 0x81, 0xbc, 0x9f, 0x67, 0xdb, 0x1f, 0x35, 0xf8, 0xb1, 0x46, 0x5d, - 0x9a, 0x6c, 0xd4, 0x97, 0xa1, 0x16, 0x88, 0x0d, 0x79, 0x29, 0xe1, 0x7d, 0xb5, 0xef, 0xaa, 0x0b, - 0xd2, 0xb4, 0x23, 0x2c, 0xa2, 0x93, 0x67, 0x01, 0xb2, 0x93, 0xcf, 0x1f, 0xbb, 0x93, 0xeb, 0x49, - 0x64, 0x27, 0xff, 0xae, 0x00, 0x76, 0x5b, 0x6d, 0x76, 0xf4, 0xd0, 0x78, 0x98, 0xfa, 0xf2, 0xbd, - 0x73, 0x11, 0xaa, 0xed, 0x1c, 0x99, 0xba, 0xe7, 0x8f, 0x0c, 0x82, 0xfa, 0x2d, 0x8c, 0x12, 0x3a, - 0x6c, 0x07, 0xcf, 0x50, 0x03, 0x1f, 0xb3, 0x08, 0x6c, 0xdb, 0x83, 0xc8, 0x4d, 0xf6, 0x98, 0xee, - 0x03, 0xd9, 0x50, 0x60, 0xeb, 0xca, 0xf3, 0xd7, 0x13, 0x4a, 0x49, 0xe4, 0x25, 0x17, 0x94, 0x49, - 0x5c, 0xce, 0xad, 0x25, 0xa8, 0x60, 0xec, 0x2b, 0xef, 0x9c, 0xf4, 0x96, 0x31, 0xf6, 0xa5, 0xab, - 0x05, 0x8b, 0xfa, 0x81, 0x91, 0x30, 0xd9, 0x13, 0x64, 0x27, 0xa8, 0xad, 0x39, 0x87, 0xbc, 0xea, - 0xb6, 0x58, 0x6f, 0x47, 0x47, 0xba, 0x0b, 0xea, 0x8d, 0xa1, 0x87, 0xd6, 0x1d, 0x30, 0xc5, 0x2a, - 0xf9, 0x44, 0xe5, 0x63, 0x4f, 0x54, 0xc3, 0xd8, 0xcf, 0x06, 0xce, 0x97, 0x06, 0x9c, 0x7c, 0x8e, - 0xc2, 0x19, 0xf2, 0xe8, 0x1e, 0x54, 0xda, 0xd8, 0x13, 0x53, 0x64, 0xcf, 0xa6, 0xd5, 0xc3, 0x5e, - 0xe1, 0x87, 0x08, 0xe6, 0xe6, 0x13, 0x38, 0x8f, 0x73, 0x59, 0xef, 0x86, 0x03, 0xd6, 0x17, 0xcf, - 0x4f, 0x51, 0xaf, 0xfe, 0x4c, 0x6f, 0x9e, 0xa3, 0x53, 0xdc, 0xf9, 0xd4, 0x10, 0x4f, 0x43, 0x1f, - 0xf7, 0xe5, 0xd2, 0xcf, 0x25, 0xa6, 0x31, 0x4b, 0x62, 0x8a, 0x76, 0x1b, 0x0f, 0x22, 0x8f, 0x62, - 0x48, 0x38, 0xfa, 0x9e, 0x5e, 0x8d, 0xe9, 0xd5, 0xad, 0x78, 0x10, 0xb9, 0xca, 0xa5, 0x61, 0x32, - 0xe7, 0x0b, 0x03, 0xe0, 0xae, 0xa8, 0x1e, 0xb5, 0x8d, 0x83, 0xe7, 0x8d, 0x71, 0xf4, 0x3d, 0xa9, - 0x30, 0x59, 0x7e, 0xeb, 0x59, 0xf9, 0x31, 0xa9, 0x47, 0x71, 0x1a, 0x86, 0x5c, 0x8f, 0x11, 0x78, - 0x5d, 0xa1, 0x4a, 0x83, 0xaf, 0x0c, 0x30, 0xc7, 0xa4, 0x62, 0x93, 0x34, 0x1a, 0x07, 0x3b, 0x85, - 0x6c, 0xc5, 0xa2, 0x7a, 0x3c, 0x36, 0x56, 0x50, 0xd1, 0xa8, 0xa0, 0x96, 0xa0, 0x22, 0x29, 0x19, - 0xab, 0xa8, 0x58, 0x57, 0xd4, 0x55, 0x38, 0x49, 0xb1, 0x8b, 0x31, 0x0f, 0x87, 0x5e, 0x94, 0xf8, - 0xc1, 0x6e, 0x80, 0xbe, 0xac, 0xab, 0x8a, 0x5b, 0xcf, 0x1c, 0x5b, 0xda, 0xee, 0xfc, 0x60, 0xc0, - 0xe2, 0x07, 0x03, 0xa4, 0xc3, 0xed, 0xc4, 0x47, 0xb5, 0xb3, 0x17, 0x4f, 0x89, 0x5b, 0x12, 0x8b, - 0xa6, 0x47, 0xa5, 0xeb, 0x4b, 0x7f, 0x9c, 0xae, 0xcc, 0xad, 0x30, 0x9d, 0xa2, 0x82, 0x62, 0x75, - 0xf7, 0x3d, 0x0e, 0xc5, 0x23, 0x61, 0x5d, 0x75, 0x63, 0x56, 0x14, 0x7f, 0x62, 0x40, 0x6d, 0xac, - 0x30, 0x45, 0xbb, 0xd7, 0x67, 0x83, 0x3a, 0x52, 0x0c, 0xd9, 0x70, 0x6b, 0xda, 0x26, 0x5b, 0xee, - 0x69, 0x98, 0x8b, 0x58, 0x4f, 0x2b, 0x6e, 0xba, 0x6a, 0x60, 0x9d, 0x87, 0x4a, 0xc4, 0x7a, 0xf2, - 0x8a, 0xa0, 0xbb, 0x74, 0x3e, 0x16, 0xb2, 0xe5, 0x27, 0x8a, 0x6e, 0x56, 0x23, 0xc3, 0x1b, 0xef, - 0x42, 0x35, 0xff, 0x57, 0xcc, 0xaa, 0x83, 0xd9, 0x8a, 0x03, 0x2e, 0x6f, 0x02, 0x41, 0xdc, 0xab, - 0xff, 0xcf, 0xaa, 0x41, 0xf9, 0x7d, 0x24, 0x21, 0xef, 0x0f, 0xeb, 0x86, 0x65, 0x42, 0xe5, 0x76, - 0x27, 0x4e, 0x68, 0x44, 0xc2, 0x7a, 0x61, 0xfd, 0xc6, 0x47, 0x6f, 0xf7, 0x02, 0xde, 0x1f, 0x74, - 0x04, 0xc3, 0xab, 0x0a, 0xf7, 0x9b, 0x41, 0xa2, 0xbf, 0x56, 0x33, 0xec, 0xab, 0x92, 0x8a, 0x7c, - 0x98, 0x76, 0x3a, 0xf3, 0xd2, 0x72, 0xfd, 0xf7, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe6, 0xc6, 0xf9, - 0xd2, 0x2d, 0x14, 0x00, 0x00, + // 1576 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4d, 0x6f, 0x1b, 0xc5, + 0x1b, 0xff, 0xaf, 0xed, 0xc4, 0xf6, 0xe3, 0x4d, 0xea, 0x4e, 0xd3, 0x76, 0xd3, 0x97, 0x7f, 0xdd, + 0xfd, 0xbf, 0x10, 0xa8, 0x48, 0xaa, 0x14, 0x28, 0xe2, 0xd2, 0x36, 0x71, 0x1b, 0xac, 0x36, 0x51, + 0x58, 0xb7, 0x95, 0xe0, 0xb2, 0x1a, 0xef, 0x4e, 0xec, 0x6d, 0xf7, 0x8d, 0x99, 0x71, 0x13, 0xf7, + 0xc4, 0x81, 0x1b, 0x82, 0x03, 0x12, 0x5f, 0x83, 0x8f, 0x00, 0xa8, 0x27, 0x24, 0xee, 0x48, 0x7c, + 0x0d, 0x8e, 0x9c, 0xd0, 0xbc, 0xec, 0xda, 0x4e, 0x37, 0x21, 0x35, 0x42, 0x08, 0xc1, 0x6d, 0xe7, + 0x79, 0x9e, 0x79, 0x66, 0x7e, 0xbf, 0xe7, 0x65, 0x66, 0x16, 0x16, 0x83, 0x98, 0x13, 0x1a, 0xe3, + 0x70, 0x35, 0xa5, 0x09, 0x4f, 0xd0, 0xd9, 0x28, 0x08, 0x9f, 0x0d, 0x99, 0x1a, 0xad, 0x66, 0xca, + 0x0b, 0xa6, 0x97, 0x44, 0x51, 0x12, 0x2b, 0xb1, 0xfd, 0x8d, 0x01, 0x0b, 0x9b, 0x49, 0x94, 0x26, + 0x31, 0x89, 0x79, 0x27, 0xde, 0x4b, 0xd0, 0x39, 0x98, 0x8f, 0x13, 0x9f, 0x74, 0xda, 0x96, 0xd1, + 0x32, 0x56, 0xca, 0x8e, 0x1e, 0x21, 0x04, 0x15, 0x9a, 0x84, 0xc4, 0x2a, 0xb5, 0x8c, 0x95, 0xba, + 0x23, 0xbf, 0xd1, 0x2d, 0x00, 0xc6, 0x31, 0x27, 0xae, 0x97, 0xf8, 0xc4, 0x2a, 0xb7, 0x8c, 0x95, + 0xc5, 0xf5, 0xd6, 0x6a, 0xe1, 0xba, 0xab, 0x5d, 0x61, 0xb8, 0x99, 0xf8, 0xc4, 0xa9, 0xb3, 0xec, + 0x13, 0xdd, 0x06, 0x20, 0x07, 0x9c, 0x62, 0x37, 0x88, 0xf7, 0x12, 0xab, 0xd2, 0x2a, 0xaf, 0x34, + 0xd6, 0xaf, 0x4e, 0x3b, 0xd0, 0xdb, 0xbd, 0x4f, 0x46, 0x8f, 0x71, 0x38, 0x24, 0xbb, 0x38, 0xa0, + 0x4e, 0x5d, 0x4e, 0x12, 0xdb, 0xb5, 0x7f, 0x32, 0xe0, 0x54, 0x0e, 0x40, 0xae, 0xc1, 0xd0, 0x7b, + 0x30, 0x27, 0x97, 0x90, 0x08, 0x1a, 0xeb, 0xff, 0x3d, 0x62, 0x47, 0x53, 0xb8, 0x1d, 0x35, 0x05, + 0x3d, 0x82, 0x33, 0x6c, 0xd8, 0xf3, 0x32, 0x95, 0x2b, 0xa5, 0xcc, 0x2a, 0xc9, 0xad, 0x9d, 0xcc, + 0x13, 0x9a, 0x74, 0xa0, 0xb7, 0x74, 0x03, 0xe6, 0x85, 0xa7, 0x21, 0x93, 0x2c, 0x35, 0xd6, 0x2f, + 0x16, 0x82, 0xec, 0x4a, 0x13, 0x47, 0x9b, 0xda, 0x17, 0x61, 0x79, 0x8b, 0xf0, 0x43, 0xe8, 0x1c, + 0xf2, 0xf1, 0x90, 0x30, 0xae, 0x95, 0x0f, 0x83, 0x88, 0x3c, 0x0c, 0xbc, 0xa7, 0x9b, 0x03, 0x1c, + 0xc7, 0x24, 0xcc, 0x94, 0x97, 0xe1, 0xe2, 0x16, 0x91, 0x13, 0x02, 0xc6, 0x03, 0x8f, 0x1d, 0x52, + 0x9f, 0x85, 0x33, 0x5b, 0x84, 0xb7, 0xfd, 0x43, 0xe2, 0xc7, 0x50, 0xdb, 0x11, 0xc1, 0x16, 0x69, + 0xf0, 0x0e, 0x54, 0xb1, 0xef, 0x53, 0xc2, 0x98, 0x66, 0xf1, 0x52, 0xe1, 0x8e, 0xef, 0x28, 0x1b, + 0x27, 0x33, 0x2e, 0x4a, 0x13, 0xfb, 0x09, 0x40, 0x27, 0x0e, 0xf8, 0x2e, 0xa6, 0x38, 0x62, 0x47, + 0x26, 0x58, 0x1b, 0x4c, 0xc6, 0x31, 0xe5, 0x6e, 0x2a, 0xed, 0x34, 0xe5, 0x27, 0xc8, 0x86, 0x86, + 0x9c, 0xa6, 0xbc, 0xdb, 0x1f, 0x02, 0x74, 0x39, 0x0d, 0xe2, 0xfe, 0x83, 0x80, 0x71, 0xb1, 0xd6, + 0x33, 0x61, 0x27, 0x40, 0x94, 0x57, 0xea, 0x8e, 0x1e, 0x4d, 0x84, 0xa3, 0x74, 0xf2, 0x70, 0xdc, + 0x82, 0x46, 0x46, 0xf7, 0x36, 0xeb, 0xa3, 0xeb, 0x50, 0xe9, 0x61, 0x46, 0x8e, 0xa5, 0x67, 0x9b, + 0xf5, 0x37, 0x30, 0x23, 0x8e, 0xb4, 0xb4, 0x5f, 0x94, 0xe0, 0xfc, 0x26, 0x25, 0x32, 0xf9, 0xc3, + 0x90, 0x78, 0x3c, 0x48, 0x62, 0xcd, 0xfd, 0xab, 0x7b, 0x43, 0xe7, 0xa1, 0xea, 0xf7, 0xdc, 0x18, + 0x47, 0x19, 0xd9, 0xf3, 0x7e, 0x6f, 0x07, 0x47, 0x04, 0xfd, 0x1f, 0x16, 0xbd, 0xdc, 0xbf, 0x90, + 0xc8, 0x9c, 0xab, 0x3b, 0x87, 0xa4, 0x22, 0x54, 0x7e, 0xaf, 0xd3, 0xb6, 0x2a, 0x32, 0x0c, 0xf2, + 0x1b, 0xd9, 0x60, 0x8e, 0xad, 0x3a, 0x6d, 0x6b, 0x4e, 0xea, 0xa6, 0x64, 0x82, 0x54, 0xe6, 0x0d, + 0x48, 0x84, 0xad, 0xf9, 0x96, 0xb1, 0x62, 0x3a, 0x7a, 0x84, 0xae, 0xc3, 0x99, 0x67, 0x01, 0xe5, + 0x43, 0x1c, 0xea, 0xbc, 0x12, 0xab, 0x30, 0xab, 0x2a, 0x99, 0x2f, 0x52, 0xa1, 0x75, 0x58, 0x4a, + 0x07, 0x23, 0x16, 0x78, 0x87, 0xa6, 0xd4, 0xe4, 0x94, 0x42, 0x9d, 0xfd, 0xc2, 0x80, 0xb3, 0x6d, + 0x9a, 0xa4, 0x7f, 0x65, 0x0a, 0xed, 0xcf, 0x4b, 0x70, 0x4e, 0x65, 0xc2, 0x2e, 0xa6, 0x3c, 0xf8, + 0x83, 0x50, 0xbc, 0x06, 0xa7, 0xc6, 0xab, 0x2a, 0x83, 0x62, 0x18, 0xff, 0x83, 0xc5, 0x34, 0xdb, + 0x87, 0xb2, 0xab, 0x48, 0xbb, 0x85, 0x5c, 0x3a, 0x85, 0x76, 0xee, 0x18, 0xb4, 0xf3, 0x05, 0x09, + 0xd3, 0x82, 0x46, 0xee, 0xa8, 0xd3, 0xb6, 0xaa, 0xd2, 0x64, 0x52, 0x64, 0x7f, 0x56, 0x82, 0x25, + 0x11, 0xd4, 0x7f, 0xd8, 0x10, 0x6c, 0x7c, 0x5b, 0x02, 0xa4, 0xb2, 0xa3, 0x13, 0xfb, 0xe4, 0xe0, + 0xcf, 0xe4, 0xe2, 0x32, 0xc0, 0x5e, 0x40, 0x42, 0x7f, 0x92, 0x87, 0xba, 0x94, 0xfc, 0x2e, 0x0e, + 0x2c, 0xa8, 0x4a, 0x27, 0x39, 0xfe, 0x6c, 0x28, 0x4e, 0x01, 0x75, 0x23, 0xd0, 0xa7, 0x40, 0xed, + 0xc4, 0xa7, 0x80, 0x9c, 0xa6, 0x4f, 0x81, 0xaf, 0xcb, 0xb0, 0xd0, 0x89, 0x19, 0xa1, 0xfc, 0xef, + 0x9c, 0x48, 0xe8, 0x12, 0xd4, 0x19, 0xe9, 0x47, 0xe2, 0x62, 0xd2, 0xb6, 0x6a, 0x52, 0x3f, 0x16, + 0x08, 0xad, 0xa7, 0x3a, 0x6b, 0xa7, 0x6d, 0xd5, 0x55, 0x68, 0x73, 0x01, 0xfa, 0x37, 0x00, 0x0f, + 0x22, 0xc2, 0x38, 0x8e, 0x52, 0x66, 0x41, 0xab, 0xbc, 0x52, 0x71, 0x26, 0x24, 0xe2, 0x14, 0xa0, + 0xc9, 0x7e, 0xa7, 0xcd, 0xac, 0x46, 0xab, 0x2c, 0x8e, 0x71, 0x35, 0x42, 0x6f, 0x41, 0x8d, 0x26, + 0xfb, 0xae, 0x8f, 0x39, 0xb6, 0x4c, 0x19, 0xbc, 0xe5, 0x42, 0xb2, 0x37, 0xc2, 0xa4, 0xe7, 0x54, + 0x69, 0xb2, 0xdf, 0xc6, 0x1c, 0xdb, 0x3f, 0x97, 0x60, 0xa1, 0x4b, 0x30, 0xf5, 0x06, 0xb3, 0x07, + 0xec, 0x75, 0x68, 0x52, 0xc2, 0x86, 0x21, 0x77, 0xc7, 0xb0, 0x54, 0xe4, 0x4e, 0x29, 0xf9, 0x66, + 0x0e, 0x2e, 0xa3, 0xbc, 0x7c, 0x0c, 0xe5, 0x95, 0x02, 0xca, 0x6d, 0x30, 0x27, 0xf8, 0x65, 0xd6, + 0x9c, 0x84, 0x3e, 0x25, 0x43, 0x4d, 0x28, 0xfb, 0x2c, 0x94, 0x11, 0xab, 0x3b, 0xe2, 0x13, 0x5d, + 0x83, 0xd3, 0x69, 0x88, 0x3d, 0x32, 0x48, 0x42, 0x9f, 0x50, 0xb7, 0x4f, 0x93, 0x61, 0x2a, 0xc3, + 0x65, 0x3a, 0xcd, 0x09, 0xc5, 0x96, 0x90, 0xa3, 0x9b, 0x50, 0xf3, 0x59, 0xe8, 0xf2, 0x51, 0x4a, + 0x64, 0xc8, 0x16, 0x8f, 0xc0, 0xde, 0x66, 0xe1, 0xc3, 0x51, 0x4a, 0x9c, 0xaa, 0xaf, 0x3e, 0xd0, + 0x75, 0x58, 0x62, 0x84, 0x06, 0x38, 0x0c, 0x9e, 0x13, 0xdf, 0x25, 0x07, 0x29, 0x75, 0xd3, 0x10, + 0xc7, 0x32, 0xb2, 0xa6, 0x83, 0xc6, 0xba, 0xbb, 0x07, 0x29, 0xdd, 0x0d, 0x71, 0x6c, 0xff, 0x68, + 0x8c, 0x49, 0x17, 0xfc, 0xb0, 0x19, 0x48, 0x9f, 0xe5, 0x26, 0x55, 0x18, 0xa9, 0x72, 0x71, 0xa4, + 0xae, 0x40, 0x23, 0x22, 0x9c, 0x06, 0x9e, 0x62, 0x44, 0x15, 0x10, 0x28, 0x91, 0x84, 0x8d, 0xa0, + 0x32, 0x08, 0xb8, 0x0a, 0x85, 0xe9, 0xc8, 0x6f, 0xfb, 0x07, 0x03, 0x16, 0xda, 0x24, 0x24, 0x9c, + 0xcc, 0x9e, 0x4d, 0x05, 0x55, 0x5e, 0x2a, 0xac, 0xf2, 0xa9, 0x32, 0x2a, 0x1f, 0x5f, 0x46, 0x95, + 0x97, 0xca, 0xe8, 0x2a, 0x98, 0x29, 0x0d, 0x22, 0x4c, 0x47, 0xee, 0x53, 0x32, 0xca, 0x32, 0xaa, + 0xa1, 0x65, 0xf7, 0xc9, 0x88, 0xd9, 0xbf, 0x18, 0x50, 0x7f, 0x90, 0x60, 0x5f, 0x1e, 0x06, 0x33, + 0x20, 0x99, 0xea, 0x02, 0xa5, 0x82, 0x2e, 0x90, 0xf7, 0xf3, 0x6c, 0xfb, 0xe3, 0x06, 0x3f, 0xd1, + 0xa8, 0x2b, 0xd3, 0x8d, 0xfa, 0x0a, 0x34, 0x02, 0xb1, 0x21, 0x37, 0xc5, 0x7c, 0xa0, 0xf6, 0x5d, + 0x77, 0x40, 0x8a, 0x76, 0x85, 0x44, 0x74, 0xf2, 0xcc, 0x40, 0x76, 0xf2, 0xf9, 0x13, 0x77, 0x72, + 0xed, 0x44, 0x76, 0xf2, 0xef, 0x4a, 0x60, 0x75, 0xd5, 0x66, 0xc7, 0xcf, 0x99, 0x47, 0xa9, 0x2f, + 0x5f, 0x55, 0x97, 0xa0, 0xde, 0xcd, 0x91, 0xa9, 0xd7, 0xc4, 0x58, 0x20, 0xa8, 0xdf, 0x26, 0x51, + 0x42, 0x47, 0xdd, 0xe0, 0x39, 0xd1, 0xc0, 0x27, 0x24, 0x02, 0xdb, 0xce, 0x30, 0x72, 0x92, 0x7d, + 0xa6, 0xfb, 0x40, 0x36, 0x14, 0xd8, 0x3c, 0x79, 0xfe, 0xba, 0x22, 0x52, 0x12, 0x79, 0xc5, 0x01, + 0x25, 0x12, 0x4f, 0x00, 0xb4, 0x0c, 0x35, 0x12, 0xfb, 0x4a, 0x3b, 0x27, 0xb5, 0x55, 0x12, 0xfb, + 0x52, 0xd5, 0x81, 0x45, 0xfd, 0x8c, 0x49, 0x98, 0xec, 0x09, 0xb2, 0x13, 0x34, 0xd6, 0xed, 0x23, + 0xde, 0x8e, 0xdb, 0xac, 0xbf, 0xab, 0x2d, 0x9d, 0x05, 0xf5, 0x92, 0xd1, 0x43, 0x74, 0x17, 0x4c, + 0xb1, 0x4a, 0xee, 0xa8, 0x7a, 0x62, 0x47, 0x0d, 0x12, 0xfb, 0xd9, 0xc0, 0xfe, 0xd2, 0x80, 0xd3, + 0x2f, 0x51, 0x38, 0x43, 0x1e, 0xdd, 0x87, 0x5a, 0x97, 0xf4, 0x85, 0x8b, 0xec, 0x71, 0xb6, 0x76, + 0xd4, 0x5b, 0xff, 0x88, 0x80, 0x39, 0xb9, 0x03, 0xfb, 0x49, 0x1e, 0xd6, 0x7b, 0xe1, 0x90, 0x0d, + 0xc4, 0x23, 0x57, 0xd4, 0xab, 0x3f, 0xd3, 0xcb, 0xea, 0xf8, 0x14, 0xb7, 0x3f, 0x35, 0xc4, 0x03, + 0xd4, 0x27, 0x07, 0x72, 0xe9, 0x97, 0x12, 0xd3, 0x98, 0x25, 0x31, 0x45, 0xbb, 0x8d, 0x87, 0x91, + 0x4b, 0x49, 0x88, 0x39, 0xf1, 0x5d, 0xbd, 0x1a, 0xd3, 0xab, 0xa3, 0x78, 0x18, 0x39, 0x4a, 0xa5, + 0x61, 0x32, 0xfb, 0x0b, 0x03, 0xe0, 0x9e, 0xa8, 0x1e, 0xb5, 0x8d, 0xc3, 0xe7, 0x8d, 0x71, 0xfc, + 0x3d, 0xa9, 0x34, 0x5d, 0x7e, 0x1b, 0x59, 0xf9, 0x31, 0x19, 0x8f, 0x72, 0x11, 0x86, 0x3c, 0x1e, + 0x63, 0xf0, 0xba, 0x42, 0x55, 0x0c, 0xbe, 0x32, 0xc0, 0x9c, 0x08, 0x15, 0x9b, 0xa6, 0xd1, 0x38, + 0xdc, 0x29, 0x64, 0x2b, 0x16, 0xd5, 0xe3, 0xb2, 0x89, 0x82, 0x8a, 0xc6, 0x05, 0xb5, 0x0c, 0x35, + 0x49, 0xc9, 0x44, 0x45, 0xc5, 0xba, 0xa2, 0xae, 0xc1, 0x69, 0x4a, 0x3c, 0x12, 0xf3, 0x70, 0xe4, + 0x46, 0x89, 0x1f, 0xec, 0x05, 0xc4, 0x97, 0x75, 0x55, 0x73, 0x9a, 0x99, 0x62, 0x5b, 0xcb, 0xed, + 0xef, 0x0d, 0x58, 0xfc, 0x60, 0x48, 0xe8, 0x68, 0x27, 0xf1, 0x89, 0xda, 0xd9, 0xab, 0xa7, 0xc4, + 0x6d, 0x89, 0x45, 0xd3, 0xa3, 0xd2, 0xf5, 0x3f, 0xbf, 0x9d, 0xae, 0xcc, 0xa9, 0x31, 0x9d, 0xa2, + 0x82, 0x62, 0x75, 0xf7, 0x3d, 0x09, 0xc5, 0xe3, 0xc0, 0x3a, 0xea, 0xc6, 0xac, 0x28, 0xfe, 0xc4, + 0x80, 0xc6, 0x44, 0x61, 0x8a, 0x76, 0xaf, 0xcf, 0x06, 0x75, 0xa4, 0x18, 0xb2, 0xe1, 0x36, 0xbc, + 0xf1, 0x0b, 0x17, 0x2d, 0xc1, 0x5c, 0xc4, 0xfa, 0x3a, 0xe2, 0xa6, 0xa3, 0x06, 0xe8, 0x02, 0xd4, + 0x22, 0xd6, 0x97, 0x57, 0x04, 0xdd, 0xa5, 0xf3, 0xb1, 0x08, 0x5b, 0x7e, 0xa2, 0xe8, 0x66, 0x35, + 0x16, 0xbc, 0xf1, 0x2e, 0xd4, 0xf3, 0x7f, 0x6f, 0xa8, 0x09, 0x66, 0x27, 0x0e, 0xb8, 0xbc, 0x09, + 0x04, 0x71, 0xbf, 0xf9, 0x2f, 0xd4, 0x80, 0xea, 0xfb, 0x04, 0x87, 0x7c, 0x30, 0x6a, 0x1a, 0xc8, + 0x84, 0xda, 0x9d, 0x5e, 0x9c, 0xd0, 0x08, 0x87, 0xcd, 0xd2, 0xc6, 0xcd, 0x8f, 0xde, 0xee, 0x07, + 0x7c, 0x30, 0xec, 0x09, 0x86, 0xd7, 0x14, 0xee, 0x37, 0x83, 0x44, 0x7f, 0xad, 0x65, 0xd8, 0xd7, + 0x24, 0x15, 0xf9, 0x30, 0xed, 0xf5, 0xe6, 0xa5, 0xe4, 0xc6, 0xaf, 0x01, 0x00, 0x00, 0xff, 0xff, + 0x06, 0xd4, 0x73, 0xc8, 0x93, 0x14, 0x00, 0x00, } diff --git a/internal/proto/milvus.proto b/internal/proto/milvus.proto index 73c1fdd1a0..e62e709b25 100644 --- a/internal/proto/milvus.proto +++ b/internal/proto/milvus.proto @@ -47,6 +47,7 @@ message CreateCollectionRequest { string collection_name = 3; // `schema` is the serialized `schema.CollectionSchema` bytes schema = 4; + int32 shards_num = 5; } message DropCollectionRequest { @@ -82,6 +83,8 @@ message DescribeCollectionResponse { common.Status status = 1; schema.CollectionSchema schema = 2; int64 collectionID = 3; + repeated string virtual_channel_names = 4; + repeated string physical_channel_names = 5; } message LoadCollectionRequest { diff --git a/internal/proto/milvuspb/milvus.pb.go b/internal/proto/milvuspb/milvus.pb.go index 14717858e9..e8f369ca4d 100644 --- a/internal/proto/milvuspb/milvus.pb.go +++ b/internal/proto/milvuspb/milvus.pb.go @@ -60,6 +60,7 @@ type CreateCollectionRequest struct { CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // `schema` is the serialized `schema.CollectionSchema` Schema []byte `protobuf:"bytes,4,opt,name=schema,proto3" json:"schema,omitempty"` + ShardsNum int32 `protobuf:"varint,5,opt,name=shards_num,json=shardsNum,proto3" json:"shards_num,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -118,6 +119,13 @@ func (m *CreateCollectionRequest) GetSchema() []byte { return nil } +func (m *CreateCollectionRequest) GetShardsNum() int32 { + if m != nil { + return m.ShardsNum + } + return 0 +} + type DropCollectionRequest struct { Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` @@ -389,6 +397,8 @@ type DescribeCollectionResponse struct { Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` Schema *schemapb.CollectionSchema `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"` CollectionID int64 `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + VirtualChannelNames []string `protobuf:"bytes,4,rep,name=virtual_channel_names,json=virtualChannelNames,proto3" json:"virtual_channel_names,omitempty"` + PhysicalChannelNames []string `protobuf:"bytes,5,rep,name=physical_channel_names,json=physicalChannelNames,proto3" json:"physical_channel_names,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -440,6 +450,20 @@ func (m *DescribeCollectionResponse) GetCollectionID() int64 { return 0 } +func (m *DescribeCollectionResponse) GetVirtualChannelNames() []string { + if m != nil { + return m.VirtualChannelNames + } + return nil +} + +func (m *DescribeCollectionResponse) GetPhysicalChannelNames() []string { + if m != nil { + return m.PhysicalChannelNames + } + return nil +} + type LoadCollectionRequest struct { Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` @@ -3088,138 +3112,142 @@ func init() { func init() { proto.RegisterFile("milvus.proto", fileDescriptor_02345ba45cc0e303) } var fileDescriptor_02345ba45cc0e303 = []byte{ - // 2084 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0xdf, 0x6f, 0x1b, 0xc7, - 0xf1, 0xf7, 0x92, 0x14, 0x45, 0x0d, 0x8f, 0x12, 0xbd, 0xfa, 0x61, 0xea, 0x6c, 0xc7, 0xd2, 0x7d, - 0xbf, 0x6e, 0x64, 0x3b, 0xb1, 0x52, 0x29, 0x6e, 0x5a, 0x14, 0x2d, 0x5a, 0x45, 0xb5, 0x2c, 0x38, - 0x09, 0x94, 0x93, 0x1b, 0x34, 0x0d, 0x0c, 0xe2, 0xc8, 0x5b, 0x8b, 0x07, 0x1f, 0xef, 0xd8, 0xdb, - 0xa3, 0x65, 0xfa, 0xa9, 0x40, 0x8a, 0x02, 0xfd, 0xe5, 0x14, 0x68, 0x51, 0xa0, 0x7d, 0x2c, 0x90, - 0xe7, 0xb6, 0x68, 0x80, 0x02, 0x7d, 0xee, 0x43, 0x81, 0xbe, 0xf4, 0x9f, 0xe8, 0x5b, 0xfb, 0x27, - 0x14, 0x28, 0xf6, 0x07, 0x8f, 0x77, 0xc7, 0x3d, 0x8a, 0x32, 0xe3, 0x88, 0x7a, 0xbb, 0x9b, 0x9b, - 0xdd, 0xfd, 0xcc, 0xec, 0xcc, 0xec, 0xec, 0xcc, 0x81, 0xd6, 0x76, 0xdc, 0x27, 0x5d, 0x7a, 0xbb, - 0x13, 0xf8, 0xa1, 0x8f, 0x17, 0xe3, 0x6f, 0xb7, 0xc5, 0x8b, 0xae, 0x35, 0xfd, 0x76, 0xdb, 0xf7, - 0x04, 0x51, 0xd7, 0x68, 0xb3, 0x45, 0xda, 0x96, 0x78, 0x33, 0x3e, 0x45, 0x70, 0xe9, 0xed, 0x80, - 0x58, 0x21, 0x79, 0xdb, 0x77, 0x5d, 0xd2, 0x0c, 0x1d, 0xdf, 0x33, 0xc9, 0x0f, 0xba, 0x84, 0x86, - 0xf8, 0x0d, 0x28, 0x34, 0x2c, 0x4a, 0x6a, 0x68, 0x0d, 0x6d, 0x94, 0xb7, 0xae, 0xdc, 0x4e, 0xcc, - 0x2d, 0xe7, 0x7c, 0x97, 0x1e, 0xed, 0x58, 0x94, 0x98, 0x9c, 0x13, 0x5f, 0x82, 0x59, 0xbb, 0x51, - 0xf7, 0xac, 0x36, 0xa9, 0xe5, 0xd6, 0xd0, 0xc6, 0x9c, 0x59, 0xb4, 0x1b, 0xef, 0x59, 0x6d, 0x82, - 0x5f, 0x85, 0x85, 0x66, 0x34, 0xbf, 0x60, 0xc8, 0x73, 0x86, 0xf9, 0x01, 0x99, 0x33, 0xae, 0x40, - 0x51, 0xe0, 0xab, 0x15, 0xd6, 0xd0, 0x86, 0x66, 0xca, 0x37, 0xe3, 0x67, 0x08, 0x96, 0x77, 0x03, - 0xbf, 0x33, 0x15, 0x28, 0x8d, 0x9f, 0x22, 0x58, 0xba, 0x67, 0xd1, 0xe9, 0x00, 0xf3, 0x21, 0x68, - 0x3b, 0xbe, 0xef, 0x9a, 0x84, 0x76, 0x7c, 0x8f, 0x12, 0xbc, 0x0d, 0x45, 0x1a, 0x5a, 0x61, 0x97, - 0x4a, 0x14, 0x97, 0x95, 0x28, 0x0e, 0x39, 0x8b, 0x29, 0x59, 0xf1, 0x12, 0xcc, 0x3c, 0xb1, 0xdc, - 0xae, 0x00, 0x51, 0x32, 0xc5, 0x8b, 0xf1, 0x11, 0xcc, 0x1f, 0x86, 0x81, 0xe3, 0x1d, 0x7d, 0x8e, - 0x93, 0xcf, 0xf5, 0x27, 0xff, 0x33, 0x82, 0xd5, 0x5d, 0x42, 0x9b, 0x81, 0xd3, 0x98, 0x12, 0xe3, - 0x33, 0x40, 0x1b, 0x50, 0xf6, 0x77, 0xb9, 0x09, 0xe6, 0xcd, 0x04, 0xcd, 0xf8, 0x0c, 0x81, 0xae, - 0x42, 0x3d, 0x89, 0x7e, 0xbe, 0x11, 0x19, 0x7d, 0x8e, 0x0f, 0xba, 0x9e, 0x1c, 0x24, 0x1d, 0x76, - 0xb0, 0xda, 0x21, 0x27, 0xf4, 0x7d, 0x63, 0x08, 0x76, 0x5e, 0x01, 0x9b, 0xf9, 0xcf, 0x3b, 0xbe, - 0x65, 0x4f, 0x87, 0xc9, 0x3e, 0x47, 0x50, 0x33, 0x89, 0x4b, 0x2c, 0x3a, 0x1d, 0x3b, 0x6f, 0xfc, - 0x1a, 0xc1, 0x2b, 0x7b, 0x24, 0x8c, 0xa9, 0x38, 0xb4, 0x42, 0x87, 0x86, 0x4e, 0x93, 0x9e, 0x25, - 0xac, 0x4f, 0x10, 0x5c, 0xcb, 0x84, 0x35, 0x89, 0xc5, 0xbd, 0x05, 0x33, 0xec, 0x89, 0xd6, 0x72, - 0x6b, 0xf9, 0x8d, 0xf2, 0xd6, 0xba, 0x72, 0xcc, 0x7d, 0xd2, 0xfb, 0x80, 0x79, 0xea, 0x81, 0xe5, - 0x04, 0xa6, 0xe0, 0x37, 0x9a, 0xb0, 0x72, 0xd8, 0xf2, 0x8f, 0x07, 0x88, 0x5e, 0x82, 0x7e, 0x8c, - 0x1e, 0x5c, 0x1a, 0x5a, 0x64, 0x12, 0x69, 0x6f, 0x40, 0x35, 0xa5, 0x6f, 0x21, 0xf8, 0x9c, 0xb9, - 0x90, 0x54, 0x38, 0x65, 0x41, 0x69, 0x45, 0x9c, 0x87, 0x07, 0x56, 0x10, 0x3a, 0x67, 0x1d, 0x91, - 0xae, 0xc3, 0x7c, 0xa7, 0x8f, 0x43, 0xf0, 0x15, 0x38, 0x5f, 0x25, 0xa2, 0x72, 0x85, 0xfd, 0x09, - 0xc1, 0x12, 0x3b, 0x1d, 0xcf, 0x13, 0xe6, 0x3f, 0x22, 0x58, 0xbc, 0x67, 0xd1, 0xf3, 0x04, 0xf9, - 0x33, 0x19, 0x44, 0x23, 0xcc, 0x67, 0x19, 0x1c, 0x18, 0x63, 0x12, 0x34, 0xad, 0x15, 0xb8, 0x51, - 0xcf, 0x27, 0x50, 0x53, 0xe3, 0x2f, 0x83, 0x68, 0x7b, 0xce, 0x90, 0xff, 0x15, 0xc1, 0xd5, 0x3d, - 0x12, 0x46, 0xa8, 0xa7, 0x22, 0x2a, 0x8f, 0x6b, 0x2d, 0xcf, 0xc5, 0x99, 0xa2, 0x04, 0x7f, 0x26, - 0xb1, 0xfb, 0x0f, 0x08, 0x96, 0x59, 0x5c, 0x9d, 0x0e, 0x23, 0x18, 0x27, 0xd9, 0xfa, 0x1d, 0x12, - 0xc7, 0x4d, 0x1c, 0xf1, 0x24, 0xaa, 0x53, 0x18, 0x5e, 0x4e, 0x65, 0x78, 0x0c, 0x5c, 0x44, 0xd9, - 0xdf, 0xa5, 0xb5, 0xfc, 0x5a, 0x9e, 0x81, 0x8b, 0xd3, 0x8c, 0x9f, 0x23, 0x58, 0xe9, 0x67, 0x82, - 0x87, 0xe4, 0xa8, 0x4d, 0xbc, 0xf0, 0xc5, 0xf5, 0x99, 0xd6, 0x46, 0x6e, 0x58, 0x1b, 0xf8, 0x0a, - 0xcc, 0x51, 0xb1, 0x4e, 0x94, 0xe4, 0x0d, 0x08, 0xfc, 0x26, 0x37, 0x04, 0x67, 0x12, 0x65, 0xd5, - 0x60, 0xd6, 0xf1, 0x6c, 0xf2, 0x34, 0x42, 0xd3, 0x7f, 0x65, 0x5f, 0x1a, 0x5d, 0xc7, 0xb5, 0x23, - 0x18, 0xfd, 0x57, 0xbc, 0x0e, 0x1a, 0xf1, 0xac, 0x86, 0x4b, 0xea, 0x9c, 0x97, 0x6f, 0x6a, 0xc9, - 0x2c, 0x0b, 0xda, 0x3e, 0x23, 0x19, 0xbf, 0x40, 0xb0, 0xc8, 0xf6, 0x54, 0x62, 0xa4, 0x2f, 0x57, - 0x67, 0x6b, 0x50, 0x8e, 0x6d, 0x9a, 0x84, 0x1b, 0x27, 0x19, 0x8f, 0x61, 0x29, 0x09, 0x67, 0x12, - 0x9d, 0xbd, 0x02, 0x10, 0xed, 0x88, 0xb0, 0xad, 0xbc, 0x19, 0xa3, 0x18, 0xff, 0x41, 0x80, 0x45, - 0x7a, 0xc1, 0x95, 0x71, 0x96, 0xfe, 0x77, 0x15, 0xe0, 0x91, 0x43, 0x5c, 0x3b, 0x1e, 0xc1, 0xe6, - 0x38, 0x85, 0x7f, 0xde, 0x05, 0x8d, 0x3c, 0x0d, 0x03, 0xab, 0xde, 0xb1, 0x02, 0xab, 0x4d, 0x6b, - 0x33, 0xe3, 0x06, 0x9b, 0x32, 0x1f, 0x76, 0xc0, 0x47, 0x19, 0x7f, 0x67, 0x89, 0x89, 0x34, 0xca, - 0x69, 0x97, 0xf8, 0x2a, 0x00, 0x37, 0x5a, 0xf1, 0x79, 0x46, 0x7c, 0xe6, 0x14, 0x1e, 0xce, 0x3f, - 0x45, 0x50, 0xe5, 0x22, 0x08, 0x79, 0x3a, 0x6c, 0xda, 0xd4, 0x18, 0x94, 0x1a, 0x33, 0xc2, 0x85, - 0xbe, 0x06, 0x45, 0xa9, 0xd8, 0xfc, 0xb8, 0x8a, 0x95, 0x03, 0x4e, 0x10, 0xc3, 0xf8, 0x3d, 0x82, - 0xe5, 0x94, 0xca, 0x27, 0xb1, 0xe8, 0x07, 0x80, 0x85, 0x84, 0xf6, 0x40, 0xec, 0xfe, 0xd1, 0x93, - 0xba, 0xa7, 0xca, 0x97, 0xb4, 0x92, 0xcc, 0x8b, 0x4e, 0x8a, 0x42, 0x8d, 0x7f, 0x22, 0xb8, 0xb2, - 0x47, 0x42, 0xce, 0xba, 0xc3, 0x62, 0xc7, 0x41, 0xe0, 0x1f, 0x05, 0x84, 0xd2, 0xf3, 0x6b, 0x1f, - 0xbf, 0x11, 0xb9, 0x8a, 0x4a, 0xa4, 0x49, 0xf4, 0xbf, 0x0e, 0x1a, 0x5f, 0x83, 0xd8, 0xf5, 0xc0, - 0x3f, 0xa6, 0xd2, 0x8e, 0xca, 0x92, 0x66, 0xfa, 0xc7, 0xdc, 0x20, 0x42, 0x3f, 0xb4, 0x5c, 0xc1, - 0x20, 0x0f, 0x06, 0x4e, 0x61, 0x9f, 0xb9, 0x0f, 0xf6, 0x81, 0xb1, 0xc9, 0xc9, 0xf9, 0xd5, 0xf1, - 0xc7, 0x08, 0x96, 0x53, 0xa2, 0x4c, 0xa2, 0xdb, 0x3b, 0x22, 0x93, 0x12, 0xc2, 0xcc, 0x6f, 0x5d, - 0x53, 0x8e, 0x89, 0x2d, 0x26, 0xb8, 0x8d, 0xbf, 0x21, 0xa8, 0xb2, 0xdb, 0xd6, 0x39, 0x0f, 0x68, - 0xff, 0x45, 0x50, 0xd9, 0xf7, 0x28, 0x09, 0xc2, 0xe9, 0x4f, 0xa6, 0xf1, 0x9b, 0x50, 0x0a, 0xfc, - 0xe3, 0xba, 0x6d, 0x85, 0x96, 0x3c, 0x8a, 0x56, 0x95, 0xf0, 0x76, 0x5c, 0xbf, 0x61, 0xce, 0x06, - 0xfe, 0xf1, 0xae, 0x15, 0x5a, 0xf8, 0x32, 0xcc, 0xb5, 0x2c, 0xda, 0xaa, 0x3f, 0x26, 0x3d, 0x5a, - 0x2b, 0xae, 0xe5, 0x37, 0x2a, 0x66, 0x89, 0x11, 0xee, 0x93, 0x1e, 0x65, 0xc6, 0x34, 0xdf, 0x97, - 0x7f, 0x12, 0x2b, 0xba, 0x06, 0xe5, 0xc0, 0x3f, 0xde, 0xdf, 0xad, 0x37, 0xc8, 0x91, 0xe3, 0x49, - 0x07, 0x05, 0x4e, 0xda, 0x61, 0x14, 0x86, 0x42, 0x30, 0x10, 0xcf, 0x96, 0xee, 0x59, 0xe2, 0x84, - 0xef, 0x78, 0xb6, 0xf1, 0x04, 0xaa, 0x07, 0xae, 0xd5, 0x24, 0x2d, 0xdf, 0xb5, 0x49, 0xc0, 0xa3, - 0x3d, 0xae, 0x42, 0x3e, 0xb4, 0x8e, 0xe4, 0x71, 0xc2, 0x1e, 0xf1, 0x57, 0xa1, 0x10, 0xf6, 0x3a, - 0x7d, 0x43, 0xfd, 0x7f, 0x65, 0xdc, 0x8d, 0x4d, 0xf3, 0xa0, 0xd7, 0x21, 0x26, 0x1f, 0x81, 0x57, - 0xa0, 0xc8, 0xcb, 0xad, 0xe2, 0xa0, 0xd1, 0x4c, 0xf9, 0x66, 0x3c, 0x4c, 0xac, 0xbb, 0x17, 0xf8, - 0xdd, 0x0e, 0xde, 0x07, 0xad, 0x33, 0xa0, 0x31, 0x25, 0x64, 0x47, 0xf9, 0x34, 0x68, 0x33, 0x31, - 0xd4, 0xf8, 0x77, 0x0e, 0x2a, 0x87, 0xc4, 0x0a, 0x9a, 0xad, 0xf3, 0x70, 0xd1, 0x64, 0x1a, 0xb7, - 0xa9, 0x2b, 0x7d, 0x84, 0x3d, 0xe2, 0x5b, 0x70, 0x31, 0x26, 0x50, 0xfd, 0x88, 0x29, 0xa8, 0x56, - 0xe4, 0x3d, 0x89, 0x6a, 0x27, 0xad, 0xb8, 0xb7, 0xa0, 0x64, 0x53, 0xb7, 0xce, 0xb7, 0x68, 0x96, - 0x6f, 0x91, 0x5a, 0xbe, 0x5d, 0xea, 0xf2, 0xad, 0x99, 0xb5, 0xc5, 0x03, 0xbe, 0x0b, 0x15, 0xca, - 0xb5, 0xd4, 0x4f, 0xb3, 0x4a, 0xe3, 0x66, 0x03, 0x9a, 0x18, 0x27, 0xf3, 0xac, 0xfb, 0x50, 0xb8, - 0xe7, 0x84, 0x5c, 0x0e, 0x96, 0x78, 0x22, 0x9e, 0x78, 0xb2, 0x47, 0xbc, 0x1a, 0x73, 0x9c, 0x1c, - 0xb7, 0x80, 0xc8, 0x3b, 0x78, 0xaf, 0xc5, 0x0f, 0xa4, 0x69, 0xe4, 0x4c, 0xf9, 0x66, 0x7c, 0x6f, - 0xb0, 0x75, 0xb4, 0xeb, 0x86, 0xf4, 0xc5, 0xdc, 0x02, 0x43, 0xa1, 0xe5, 0xc8, 0x5b, 0xaa, 0x66, - 0xf2, 0x67, 0xe3, 0x47, 0x08, 0xb4, 0xbb, 0x6e, 0x97, 0xbe, 0x0c, 0xa3, 0x50, 0x15, 0xf9, 0xf2, - 0xea, 0x22, 0xdf, 0x3f, 0x72, 0xb0, 0x7c, 0x40, 0x02, 0xea, 0xd0, 0x90, 0x78, 0xa1, 0xcc, 0xfc, - 0xf7, 0xbd, 0x47, 0x7e, 0xf2, 0x8a, 0x85, 0x52, 0x57, 0xac, 0xcf, 0xe7, 0xc2, 0xc1, 0xc2, 0x81, - 0xdf, 0x21, 0x5e, 0x3d, 0x74, 0x64, 0xb0, 0x2b, 0x98, 0x25, 0x46, 0x78, 0xe0, 0xb4, 0x09, 0x0b, - 0x26, 0x94, 0x58, 0x2e, 0xb1, 0xc5, 0xe7, 0x19, 0xfe, 0x19, 0x04, 0x89, 0x33, 0xac, 0x83, 0xf6, - 0x88, 0x69, 0xb0, 0xcf, 0x51, 0xe4, 0x1c, 0x65, 0x49, 0xe3, 0x2c, 0xab, 0x50, 0xf2, 0xba, 0x6d, - 0x91, 0x0d, 0xcc, 0x8a, 0xb4, 0xd3, 0xeb, 0xb6, 0x79, 0xaa, 0xb0, 0x0a, 0xa5, 0x36, 0x69, 0xd7, - 0xa9, 0xf3, 0x8c, 0xd4, 0x4a, 0xe2, 0x53, 0x9b, 0xb4, 0x0f, 0x9d, 0x67, 0xa4, 0x5f, 0x56, 0x20, - 0xb5, 0x39, 0x6e, 0xc0, 0x6a, 0x13, 0x94, 0xba, 0x4a, 0x1c, 0x87, 0xbf, 0x12, 0x45, 0x6a, 0xa5, - 0x42, 0x5f, 0x7c, 0x9f, 0x57, 0x40, 0x6e, 0x6c, 0x6a, 0x9b, 0xbf, 0x04, 0x29, 0x27, 0xcf, 0x28, - 0x9d, 0xff, 0x16, 0xc1, 0x5a, 0x36, 0xaa, 0x49, 0xe2, 0xfd, 0xb7, 0x60, 0xc6, 0xf1, 0x1e, 0xf9, - 0xfd, 0x24, 0xf8, 0xa6, 0x3a, 0x3c, 0x2a, 0xd7, 0x15, 0x03, 0x8d, 0x7f, 0x21, 0xa8, 0xbe, 0xdf, - 0x25, 0x41, 0xef, 0x8b, 0x36, 0xbd, 0xf8, 0xf6, 0x17, 0x92, 0xdb, 0x1f, 0x37, 0x9a, 0x99, 0xa4, - 0xd1, 0x24, 0xf3, 0x88, 0xe2, 0x88, 0x4b, 0xce, 0x6c, 0xe2, 0x92, 0x63, 0x3c, 0x47, 0xa0, 0xef, - 0x91, 0x30, 0x2d, 0xea, 0xd9, 0x19, 0xc5, 0x27, 0x08, 0x2e, 0x2b, 0x01, 0x4d, 0x62, 0x0f, 0x5f, - 0x4f, 0xda, 0x83, 0xfa, 0xb8, 0x1c, 0x5a, 0x52, 0x9a, 0xc2, 0x32, 0x2c, 0x9a, 0xe4, 0x88, 0x59, - 0x4a, 0xf0, 0x8e, 0xe3, 0x3d, 0x96, 0xaa, 0x61, 0xb9, 0xc9, 0x52, 0x92, 0x2e, 0x11, 0x7e, 0x05, - 0x66, 0x2d, 0xdb, 0x66, 0xd7, 0x8a, 0x91, 0x6a, 0xfb, 0xb6, 0xe0, 0x31, 0xfb, 0xcc, 0x31, 0xc9, - 0x72, 0x63, 0x4b, 0x76, 0xf3, 0x9b, 0xb0, 0x90, 0x4a, 0x2a, 0x70, 0x09, 0x0a, 0xef, 0xf9, 0x1e, - 0xa9, 0x5e, 0xc0, 0x55, 0xd0, 0x76, 0x1c, 0xcf, 0x0a, 0x7a, 0x1f, 0x90, 0x66, 0xe8, 0x07, 0x55, - 0x1b, 0x2f, 0x40, 0xf9, 0xae, 0xeb, 0x5b, 0xa1, 0x24, 0x90, 0xad, 0x5f, 0x2e, 0x43, 0xe5, 0x5d, - 0xbe, 0xcc, 0x21, 0x09, 0x9e, 0x38, 0x4d, 0x82, 0xeb, 0x50, 0x4d, 0xff, 0x6d, 0x80, 0x5f, 0x53, - 0x2a, 0x2c, 0xe3, 0xa7, 0x04, 0x7d, 0x14, 0x70, 0xe3, 0x02, 0xfe, 0x08, 0xe6, 0x93, 0xbf, 0x09, - 0x60, 0xb5, 0x7f, 0x2a, 0xff, 0x25, 0x38, 0x69, 0xf2, 0x3a, 0x54, 0x12, 0x5d, 0x7f, 0x7c, 0x43, - 0x39, 0xb7, 0xea, 0xcf, 0x00, 0x7d, 0x5d, 0xc9, 0x1a, 0x6f, 0xdc, 0x0b, 0xf4, 0xc9, 0x26, 0x6d, - 0x06, 0x7a, 0x65, 0x27, 0xf7, 0x24, 0xf4, 0x16, 0x5c, 0x1c, 0xea, 0xb9, 0xe2, 0xd7, 0x95, 0xf3, - 0x67, 0xf5, 0x66, 0x4f, 0x5a, 0xe2, 0x18, 0xf0, 0x70, 0x6f, 0x1c, 0xdf, 0x56, 0xef, 0x40, 0x56, - 0xeb, 0x5f, 0xdf, 0x1c, 0x9b, 0x3f, 0x52, 0xdc, 0x8f, 0x11, 0x5c, 0xca, 0x68, 0x94, 0xe2, 0x6d, - 0xe5, 0x74, 0xa3, 0xbb, 0xbd, 0xfa, 0x9b, 0xa7, 0x1b, 0x14, 0x01, 0xf1, 0x60, 0x21, 0xd5, 0xba, - 0xc4, 0xb7, 0x94, 0x53, 0xa9, 0xbb, 0xa8, 0xfa, 0x6b, 0xe3, 0x31, 0x47, 0xeb, 0x3d, 0x84, 0x85, - 0x54, 0xbb, 0x32, 0x63, 0x3d, 0x75, 0x53, 0xf3, 0xa4, 0x0d, 0xfd, 0x10, 0x2a, 0x89, 0xbe, 0x62, - 0x86, 0xc5, 0xab, 0x7a, 0x8f, 0x27, 0x4d, 0xfd, 0x10, 0xb4, 0x78, 0xfb, 0x0f, 0x6f, 0x64, 0xf9, - 0xd2, 0xd0, 0xc4, 0xa7, 0x71, 0xa5, 0x41, 0xe7, 0x60, 0x84, 0x2b, 0x0d, 0x35, 0x44, 0xc6, 0x77, - 0xa5, 0xd8, 0xfc, 0x23, 0x5d, 0xe9, 0xd4, 0x4b, 0x7c, 0x8c, 0x60, 0x45, 0xdd, 0x3d, 0xc2, 0x5b, - 0x59, 0xb6, 0x99, 0xdd, 0x27, 0xd3, 0xb7, 0x4f, 0x35, 0x26, 0xd2, 0xe2, 0x63, 0x98, 0x4f, 0xf6, - 0x5f, 0x32, 0xb4, 0xa8, 0x6c, 0x2b, 0xe9, 0xb7, 0xc6, 0xe2, 0x8d, 0x16, 0xfb, 0x2e, 0x94, 0x63, - 0xb5, 0x71, 0xfc, 0xea, 0x08, 0x3b, 0x8e, 0x97, 0x5e, 0x4e, 0xd2, 0x64, 0x0b, 0x2a, 0x89, 0x7a, - 0x68, 0x96, 0x0d, 0x2b, 0xca, 0xd4, 0xfa, 0xcd, 0x71, 0x58, 0x23, 0x01, 0x5a, 0x50, 0x49, 0x54, - 0xa7, 0x32, 0x56, 0x52, 0x15, 0xe3, 0x32, 0x56, 0x52, 0x16, 0xbb, 0x8c, 0x0b, 0xf8, 0x87, 0xb1, - 0x42, 0x58, 0xa2, 0xd8, 0x88, 0xbf, 0x3c, 0x72, 0x1e, 0x55, 0xad, 0x55, 0xdf, 0x3a, 0xcd, 0x90, - 0x08, 0xc2, 0xfb, 0x30, 0x17, 0x15, 0xc1, 0xf0, 0xf5, 0xcc, 0xb0, 0x70, 0x9a, 0x9d, 0x3a, 0x84, - 0xa2, 0x28, 0xc8, 0x60, 0x23, 0xa3, 0xb2, 0x1c, 0xab, 0x56, 0xe9, 0xff, 0x37, 0x92, 0x27, 0xc2, - 0x69, 0x42, 0x51, 0xdc, 0x66, 0x33, 0x26, 0x4d, 0x54, 0x29, 0xf4, 0xd1, 0x3c, 0xfc, 0x3a, 0x6c, - 0x5c, 0xc0, 0xfb, 0x30, 0xc3, 0xaf, 0xb1, 0x58, 0x1d, 0x8a, 0xe2, 0x57, 0xdc, 0x93, 0x64, 0xfe, - 0x09, 0x82, 0x5a, 0xd6, 0x3d, 0x05, 0x67, 0x9e, 0x42, 0xa3, 0x2e, 0x5b, 0xfa, 0x9d, 0x53, 0x8e, - 0x8a, 0x54, 0xf5, 0x0c, 0x16, 0x15, 0xd9, 0x31, 0xde, 0xcc, 0x9a, 0x2f, 0x23, 0xb1, 0xd7, 0xdf, - 0x18, 0x7f, 0x40, 0xb4, 0x36, 0x01, 0x2d, 0x9e, 0xf0, 0x66, 0x1c, 0x07, 0x8a, 0x5c, 0x59, 0xbf, - 0x31, 0x06, 0x67, 0x7f, 0x99, 0xad, 0x2e, 0x68, 0x07, 0x81, 0xff, 0xb4, 0xd7, 0x4f, 0x48, 0xbf, - 0x98, 0x65, 0x77, 0xee, 0x7c, 0x7f, 0xfb, 0xc8, 0x09, 0x5b, 0xdd, 0x06, 0xdb, 0xff, 0x4d, 0xc1, - 0xfb, 0xba, 0xe3, 0xcb, 0xa7, 0x4d, 0xc7, 0x0b, 0x49, 0xe0, 0x59, 0xee, 0x26, 0x9f, 0x4b, 0x52, - 0x3b, 0x8d, 0x46, 0x91, 0xbf, 0x6f, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x24, 0x9e, 0xb3, 0x1f, - 0xe5, 0x2b, 0x00, 0x00, + // 2157 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0xdd, 0x6f, 0x1c, 0x49, + 0x11, 0x4f, 0xef, 0x97, 0x77, 0x6b, 0x67, 0xed, 0x4d, 0xfb, 0x23, 0x9b, 0x4d, 0x72, 0x59, 0x0f, + 0x84, 0x73, 0x92, 0xbb, 0xf8, 0xb0, 0x13, 0x0e, 0x84, 0x40, 0xe0, 0x98, 0x38, 0x56, 0xee, 0x22, + 0xdf, 0x38, 0x9c, 0x38, 0x4e, 0xd1, 0x6a, 0x76, 0xa7, 0xe3, 0x1d, 0x65, 0x76, 0x66, 0x99, 0x9e, + 0xb5, 0xb3, 0x79, 0x42, 0x3a, 0x84, 0xc4, 0x57, 0x0e, 0x09, 0x84, 0x04, 0x0f, 0x3c, 0x20, 0xdd, + 0x33, 0x20, 0x90, 0x90, 0x78, 0xbe, 0x07, 0x24, 0x5e, 0xf8, 0x27, 0x78, 0x83, 0x3f, 0x01, 0x09, + 0xf5, 0xc7, 0xce, 0xce, 0x8c, 0x7b, 0xd6, 0xeb, 0xec, 0xe5, 0x6c, 0xbf, 0x4d, 0x57, 0x57, 0x77, + 0xff, 0xba, 0xba, 0xaa, 0xba, 0xba, 0x6a, 0x40, 0xeb, 0xda, 0xce, 0x7e, 0x9f, 0xde, 0xea, 0xf9, + 0x5e, 0xe0, 0xe1, 0xf9, 0x68, 0xeb, 0x96, 0x68, 0xd4, 0xb5, 0xb6, 0xd7, 0xed, 0x7a, 0xae, 0x20, + 0xd6, 0x35, 0xda, 0xee, 0x90, 0xae, 0x29, 0x5a, 0xfa, 0xa7, 0x08, 0x2e, 0xdc, 0xf5, 0x89, 0x19, + 0x90, 0xbb, 0x9e, 0xe3, 0x90, 0x76, 0x60, 0x7b, 0xae, 0x41, 0x7e, 0xd0, 0x27, 0x34, 0xc0, 0x6f, + 0x41, 0xae, 0x65, 0x52, 0x52, 0x43, 0x0d, 0xb4, 0x52, 0x5e, 0xbb, 0x7c, 0x2b, 0x36, 0xb7, 0x9c, + 0xf3, 0x5d, 0xba, 0xb7, 0x61, 0x52, 0x62, 0x70, 0x4e, 0x7c, 0x01, 0x66, 0xac, 0x56, 0xd3, 0x35, + 0xbb, 0xa4, 0x96, 0x69, 0xa0, 0x95, 0x92, 0x51, 0xb0, 0x5a, 0x0f, 0xcd, 0x2e, 0xc1, 0xaf, 0xc3, + 0x5c, 0x3b, 0x9c, 0x5f, 0x30, 0x64, 0x39, 0xc3, 0xec, 0x88, 0xcc, 0x19, 0x97, 0xa0, 0x20, 0xf0, + 0xd5, 0x72, 0x0d, 0xb4, 0xa2, 0x19, 0xb2, 0x85, 0xaf, 0x00, 0xd0, 0x8e, 0xe9, 0x5b, 0xb4, 0xe9, + 0xf6, 0xbb, 0xb5, 0x7c, 0x03, 0xad, 0xe4, 0x8d, 0x92, 0xa0, 0x3c, 0xec, 0x77, 0xf5, 0x9f, 0x21, + 0x58, 0xdc, 0xf4, 0xbd, 0xde, 0xa9, 0xd8, 0x84, 0xfe, 0x53, 0x04, 0x0b, 0xf7, 0x4d, 0x7a, 0x3a, + 0xc0, 0x7c, 0x00, 0xda, 0x86, 0xe7, 0x39, 0x06, 0xa1, 0x3d, 0xcf, 0xa5, 0x04, 0xaf, 0x43, 0x81, + 0x06, 0x66, 0xd0, 0xa7, 0x12, 0xc5, 0x25, 0x25, 0x8a, 0x5d, 0xce, 0x62, 0x48, 0x56, 0xbc, 0x00, + 0xf9, 0x7d, 0xd3, 0xe9, 0x0b, 0x10, 0x45, 0x43, 0x34, 0xf4, 0x0f, 0x61, 0x76, 0x37, 0xf0, 0x6d, + 0x77, 0xef, 0x33, 0x9c, 0xbc, 0x34, 0x9c, 0xfc, 0x2f, 0x08, 0x2e, 0x6e, 0x12, 0xda, 0xf6, 0xed, + 0xd6, 0x29, 0xd1, 0x4d, 0x1d, 0xb4, 0x11, 0x65, 0x7b, 0x93, 0x6b, 0x68, 0xd6, 0x88, 0xd1, 0xf4, + 0xdf, 0x67, 0xa0, 0xae, 0x42, 0x3d, 0x8d, 0x7c, 0xbe, 0x11, 0xda, 0x44, 0x86, 0x0f, 0xba, 0x16, + 0x1f, 0x24, 0xed, 0x79, 0xb4, 0xda, 0x2e, 0x27, 0x84, 0xa6, 0x93, 0x84, 0x9d, 0x3d, 0x0c, 0x1b, + 0xaf, 0xc1, 0xe2, 0xbe, 0xed, 0x07, 0x7d, 0xd3, 0x69, 0xb6, 0x3b, 0xa6, 0xeb, 0x12, 0x87, 0x0b, + 0x82, 0xd6, 0x72, 0x8d, 0xec, 0x4a, 0xc9, 0x98, 0x97, 0x9d, 0x77, 0x45, 0x1f, 0x93, 0x06, 0xc5, + 0xb7, 0x61, 0xa9, 0xd7, 0x19, 0x50, 0xbb, 0x7d, 0x68, 0x50, 0x9e, 0x0f, 0x5a, 0x18, 0xf6, 0x46, + 0x47, 0x71, 0x4b, 0x7d, 0xc7, 0x33, 0xad, 0xd3, 0x61, 0x1c, 0x2f, 0x10, 0xd4, 0x0c, 0xe2, 0x10, + 0x93, 0x9e, 0x0e, 0x1d, 0xd3, 0x7f, 0x8d, 0xe0, 0xb5, 0x2d, 0x12, 0x44, 0x0e, 0x33, 0x30, 0x03, + 0x9b, 0x06, 0x76, 0x9b, 0x9e, 0x24, 0xac, 0x8f, 0x11, 0x5c, 0x4d, 0x85, 0x35, 0x8d, 0x6e, 0xbf, + 0x0d, 0x79, 0xf6, 0x45, 0x6b, 0x99, 0x46, 0x76, 0xa5, 0xbc, 0xb6, 0xac, 0x1c, 0xf3, 0x80, 0x0c, + 0xde, 0x67, 0x3e, 0x61, 0xc7, 0xb4, 0x7d, 0x43, 0xf0, 0xeb, 0x6d, 0x58, 0xda, 0xed, 0x78, 0x07, + 0x23, 0x44, 0xaf, 0x40, 0x3e, 0xfa, 0x00, 0x2e, 0x1c, 0x5a, 0x64, 0x9a, 0xdd, 0x5e, 0x87, 0x6a, + 0x42, 0xde, 0x62, 0xe3, 0x25, 0x63, 0x2e, 0x2e, 0x70, 0xca, 0xdc, 0xdf, 0x92, 0xb8, 0x98, 0x77, + 0x4c, 0x3f, 0xb0, 0x4f, 0xda, 0xf7, 0x5d, 0x83, 0xd9, 0xde, 0x10, 0x87, 0xe0, 0xcb, 0x71, 0xbe, + 0x4a, 0x48, 0xe5, 0x02, 0xfb, 0x33, 0x82, 0x05, 0x76, 0x0f, 0x9f, 0x25, 0xcc, 0x7f, 0x42, 0x30, + 0x7f, 0xdf, 0xa4, 0x67, 0x09, 0xf2, 0x5f, 0xa5, 0x13, 0x0d, 0x31, 0x9f, 0xa4, 0x73, 0x60, 0x8c, + 0x71, 0xd0, 0xc3, 0x6b, 0x63, 0x36, 0x86, 0x9a, 0xea, 0x7f, 0x1b, 0x79, 0xdb, 0x33, 0x86, 0xfc, + 0xef, 0x08, 0xae, 0x6c, 0x91, 0x20, 0x44, 0x7d, 0x2a, 0xbc, 0xf2, 0xa4, 0xda, 0xf2, 0x42, 0xdc, + 0x29, 0x4a, 0xf0, 0x27, 0xe2, 0xbb, 0xff, 0x88, 0x60, 0x91, 0xf9, 0xd5, 0xd3, 0xa1, 0x04, 0x93, + 0x84, 0x75, 0xbf, 0x43, 0xe2, 0xba, 0x89, 0x22, 0x9e, 0x46, 0x74, 0x0a, 0xc5, 0xcb, 0xa8, 0x14, + 0x8f, 0x81, 0x0b, 0x29, 0xdb, 0x9b, 0xb4, 0x96, 0x6d, 0x64, 0x19, 0xb8, 0x28, 0x4d, 0xff, 0x39, + 0x82, 0xa5, 0x61, 0xcc, 0xb9, 0x4b, 0xf6, 0xba, 0xc4, 0x0d, 0x5e, 0x5e, 0x9e, 0x49, 0x69, 0x64, + 0x14, 0xd1, 0xe2, 0x65, 0x28, 0x51, 0xb1, 0x4e, 0x18, 0x4e, 0x8e, 0x08, 0xfa, 0x27, 0x08, 0x2e, + 0x1c, 0x82, 0x33, 0x8d, 0xb0, 0x6a, 0x30, 0x63, 0xbb, 0x16, 0x79, 0x16, 0xa2, 0x19, 0x36, 0x59, + 0x4f, 0xab, 0x6f, 0x3b, 0x56, 0x08, 0x63, 0xd8, 0xc4, 0xcb, 0xa0, 0x11, 0xd7, 0x6c, 0x39, 0xa4, + 0xc9, 0x79, 0xf9, 0xa1, 0x16, 0x8d, 0xb2, 0xa0, 0x6d, 0x33, 0x92, 0xfe, 0x0b, 0x04, 0xf3, 0xec, + 0x4c, 0x25, 0x46, 0xfa, 0x6a, 0x65, 0xd6, 0x80, 0x72, 0xe4, 0xd0, 0x24, 0xdc, 0x28, 0x49, 0x7f, + 0x0a, 0x0b, 0x71, 0x38, 0xd3, 0xc8, 0xec, 0x35, 0x80, 0xf0, 0x44, 0x84, 0x6e, 0x65, 0x8d, 0x08, + 0x45, 0xff, 0x2f, 0x02, 0x2c, 0xc2, 0x0b, 0x2e, 0x8c, 0x93, 0xb4, 0xbf, 0x2b, 0x00, 0x4f, 0x6c, + 0xe2, 0x58, 0x51, 0x0f, 0x56, 0xe2, 0x14, 0xde, 0xbd, 0x09, 0x1a, 0x79, 0x16, 0xf8, 0x66, 0xb3, + 0x67, 0xfa, 0x66, 0x57, 0x3c, 0x2e, 0x26, 0x72, 0x36, 0x65, 0x3e, 0x6c, 0x87, 0x8f, 0xd2, 0xff, + 0xc1, 0x02, 0x13, 0xa9, 0x94, 0xa7, 0x7d, 0xc7, 0x57, 0x00, 0xb8, 0xd2, 0x8a, 0xee, 0xbc, 0xe8, + 0xe6, 0x14, 0xee, 0xce, 0x3f, 0x41, 0x50, 0xe5, 0x5b, 0x10, 0xfb, 0xe9, 0xb1, 0x69, 0x13, 0x63, + 0x50, 0x62, 0xcc, 0x18, 0x13, 0xfa, 0x1a, 0x14, 0xa4, 0x60, 0xb3, 0x93, 0x0a, 0x56, 0x0e, 0x38, + 0x62, 0x1b, 0xfa, 0x1f, 0x10, 0x2c, 0x26, 0x44, 0x3e, 0x8d, 0x46, 0x3f, 0x02, 0x2c, 0x76, 0x68, + 0x8d, 0xb6, 0x3d, 0xbc, 0x7a, 0x12, 0x2f, 0x62, 0xd9, 0x48, 0x0a, 0xc9, 0x38, 0x6f, 0x27, 0x28, + 0x54, 0xff, 0x17, 0x82, 0xcb, 0x5b, 0x24, 0xe0, 0xac, 0x1b, 0xcc, 0x77, 0xec, 0xf8, 0xde, 0x9e, + 0x4f, 0x28, 0x3d, 0xbb, 0xfa, 0xf1, 0x1b, 0x11, 0xab, 0xa8, 0xb6, 0x34, 0x8d, 0xfc, 0x97, 0x41, + 0xe3, 0x6b, 0x10, 0xab, 0xe9, 0x7b, 0x07, 0x54, 0xea, 0x51, 0x59, 0xd2, 0x0c, 0xef, 0x80, 0x2b, + 0x44, 0xe0, 0x05, 0xa6, 0x23, 0x18, 0xe4, 0xc5, 0xc0, 0x29, 0xac, 0x9b, 0xdb, 0xe0, 0x10, 0x18, + 0x9b, 0x9c, 0x9c, 0x5d, 0x19, 0x7f, 0x84, 0x60, 0x31, 0xb1, 0x95, 0x69, 0x64, 0x7b, 0x47, 0x44, + 0x52, 0x62, 0x33, 0xb3, 0x6b, 0x57, 0x95, 0x63, 0x22, 0x8b, 0x09, 0x6e, 0xfd, 0x53, 0x04, 0x55, + 0xf6, 0xda, 0x3a, 0xe3, 0x0e, 0xed, 0x7f, 0x08, 0x2a, 0xdb, 0x2e, 0x25, 0x7e, 0x70, 0xfa, 0x83, + 0x69, 0x7c, 0x1b, 0x8a, 0xbe, 0x77, 0xd0, 0xb4, 0xcc, 0xc0, 0x94, 0x57, 0xd1, 0x45, 0x25, 0xbc, + 0x0d, 0xc7, 0x6b, 0x19, 0x33, 0xbe, 0x77, 0xb0, 0x69, 0x06, 0x26, 0xbe, 0x04, 0xa5, 0x8e, 0x49, + 0x3b, 0xcd, 0xa7, 0x64, 0x40, 0x6b, 0x85, 0x46, 0x76, 0xa5, 0x62, 0x14, 0x19, 0xe1, 0x01, 0x19, + 0x50, 0xa6, 0x4c, 0xb3, 0xc3, 0xfd, 0x4f, 0xa3, 0x45, 0x57, 0xa1, 0xec, 0x7b, 0x07, 0xdb, 0x9b, + 0xcd, 0x16, 0xd9, 0xb3, 0x5d, 0x69, 0xa0, 0xc0, 0x49, 0x1b, 0x8c, 0xc2, 0x50, 0x08, 0x06, 0xe2, + 0x5a, 0xd2, 0x3c, 0x8b, 0x9c, 0xf0, 0x1d, 0xd7, 0xd2, 0xf7, 0xa1, 0xba, 0xe3, 0x98, 0x6d, 0xd2, + 0xf1, 0x1c, 0x8b, 0xf8, 0xdc, 0xdb, 0xe3, 0x2a, 0x64, 0x03, 0x73, 0x4f, 0x5e, 0x27, 0xec, 0x13, + 0x7f, 0x15, 0x72, 0xc1, 0xa0, 0x37, 0x54, 0xd4, 0x2f, 0x2a, 0xfd, 0x6e, 0x64, 0x9a, 0x47, 0x83, + 0x1e, 0x31, 0xf8, 0x08, 0xbc, 0x04, 0x05, 0x9e, 0xd8, 0x15, 0x17, 0x8d, 0x66, 0xc8, 0x96, 0xfe, + 0x38, 0xb6, 0xee, 0x96, 0xef, 0xf5, 0x7b, 0x78, 0x1b, 0xb4, 0xde, 0x88, 0xc6, 0x84, 0x90, 0xee, + 0xe5, 0x93, 0xa0, 0x8d, 0xd8, 0x50, 0xfd, 0x3f, 0x19, 0xa8, 0xec, 0x12, 0xd3, 0x6f, 0x77, 0xce, + 0xc2, 0x43, 0x93, 0x49, 0xdc, 0xa2, 0x8e, 0xb4, 0x11, 0xf6, 0x89, 0x6f, 0xc2, 0xf9, 0xc8, 0x86, + 0x9a, 0x7b, 0x4c, 0x40, 0xb5, 0x02, 0x2f, 0x8e, 0x54, 0x7b, 0x49, 0xc1, 0xbd, 0x0d, 0x45, 0x8b, + 0x3a, 0x4d, 0x7e, 0x44, 0x33, 0xfc, 0x88, 0xd4, 0xfb, 0xdb, 0xa4, 0x0e, 0x3f, 0x9a, 0x19, 0x4b, + 0x7c, 0xe0, 0x7b, 0x50, 0xa1, 0x5c, 0x4a, 0xc3, 0x30, 0xab, 0x38, 0x69, 0x34, 0xa0, 0x89, 0x71, + 0x32, 0xce, 0x7a, 0x00, 0xb9, 0xfb, 0x76, 0xc0, 0xf7, 0xc1, 0x02, 0x4f, 0xc4, 0x03, 0x4f, 0xf6, + 0x89, 0x2f, 0x46, 0x0c, 0x27, 0xc3, 0x35, 0x20, 0xb4, 0x0e, 0x5e, 0xf4, 0xf1, 0x7c, 0xa9, 0x1a, + 0x19, 0x43, 0xb6, 0xf4, 0xef, 0x8d, 0x8e, 0x8e, 0xf6, 0x9d, 0x80, 0xbe, 0x9c, 0x59, 0x60, 0xc8, + 0x75, 0x6c, 0xf9, 0x4a, 0xd5, 0x0c, 0xfe, 0xad, 0xff, 0x08, 0x81, 0x76, 0xcf, 0xe9, 0xd3, 0x57, + 0xa1, 0x14, 0xaa, 0x24, 0x5f, 0x56, 0x9d, 0xe4, 0xfb, 0x67, 0x06, 0x16, 0x77, 0x88, 0x4f, 0x6d, + 0x1a, 0x10, 0x37, 0x90, 0x91, 0xff, 0xb6, 0xfb, 0xc4, 0x8b, 0x3f, 0xb1, 0x50, 0xe2, 0x89, 0xf5, + 0xd9, 0x3c, 0x38, 0x98, 0x3b, 0xf0, 0x7a, 0xc4, 0x6d, 0x06, 0xb6, 0x74, 0x76, 0x39, 0xa3, 0xc8, + 0x08, 0x8f, 0xec, 0x2e, 0x61, 0xce, 0x84, 0x12, 0xd3, 0x21, 0x96, 0xe8, 0xce, 0xf3, 0x6e, 0x10, + 0x24, 0xce, 0xb0, 0x0c, 0xda, 0x13, 0x26, 0xc1, 0x21, 0x47, 0x81, 0x73, 0x94, 0x25, 0x8d, 0xb3, + 0x5c, 0x84, 0xa2, 0xdb, 0xef, 0x8a, 0x68, 0x60, 0x46, 0x84, 0x9d, 0x6e, 0xbf, 0xcb, 0x43, 0x85, + 0x8b, 0x50, 0xec, 0x92, 0x6e, 0x93, 0xda, 0xcf, 0x49, 0xad, 0x28, 0xba, 0xba, 0xa4, 0xbb, 0x6b, + 0x3f, 0x27, 0xc3, 0xb4, 0x02, 0xa9, 0x95, 0xb8, 0x02, 0xab, 0x55, 0x50, 0xca, 0x2a, 0x76, 0x1d, + 0xfe, 0x4a, 0x24, 0xa9, 0x95, 0x02, 0x7d, 0xf9, 0x73, 0x5e, 0x02, 0x79, 0xb0, 0x89, 0x63, 0xfe, + 0x12, 0x24, 0x8c, 0x3c, 0x25, 0x75, 0xfe, 0x5b, 0x04, 0x8d, 0x74, 0x54, 0xd3, 0xf8, 0xfb, 0x6f, + 0x41, 0xde, 0x76, 0x9f, 0x78, 0xc3, 0x20, 0xf8, 0x86, 0xda, 0x3d, 0x2a, 0xd7, 0x15, 0x03, 0xf5, + 0x7f, 0x23, 0xa8, 0xbe, 0xd7, 0x27, 0xfe, 0xe0, 0xf3, 0x56, 0xbd, 0xe8, 0xf1, 0xe7, 0xe2, 0xc7, + 0x1f, 0x55, 0x9a, 0x7c, 0x5c, 0x69, 0xe2, 0x71, 0x44, 0x61, 0xcc, 0x23, 0x67, 0x26, 0xf6, 0xc8, + 0xd1, 0x5f, 0x20, 0xa8, 0x6f, 0x91, 0x20, 0xb9, 0xd5, 0x93, 0x53, 0x8a, 0x8f, 0x11, 0x5c, 0x52, + 0x02, 0x9a, 0x46, 0x1f, 0xbe, 0x1e, 0xd7, 0x07, 0xf5, 0x75, 0x79, 0x68, 0x49, 0xa9, 0x0a, 0x8b, + 0x30, 0x6f, 0x90, 0x3d, 0xa6, 0x29, 0xfe, 0x3b, 0xb6, 0xfb, 0x54, 0x8a, 0x86, 0xc5, 0x26, 0x0b, + 0x71, 0xba, 0x44, 0xf8, 0x15, 0x98, 0x31, 0x2d, 0x8b, 0x3d, 0x2b, 0xc6, 0x8a, 0xed, 0xdb, 0x82, + 0xc7, 0x18, 0x32, 0x47, 0x76, 0x96, 0x99, 0x78, 0x67, 0x37, 0xbe, 0x09, 0x73, 0x89, 0xa0, 0x02, + 0x17, 0x21, 0xf7, 0xd0, 0x73, 0x49, 0xf5, 0x1c, 0xae, 0x82, 0xb6, 0x61, 0xbb, 0xa6, 0x3f, 0x78, + 0x9f, 0xb4, 0x03, 0xcf, 0xaf, 0x5a, 0x78, 0x0e, 0xca, 0xf7, 0x1c, 0xcf, 0x0c, 0x24, 0x81, 0xac, + 0xfd, 0x72, 0x11, 0x2a, 0xef, 0xf2, 0x65, 0x76, 0x89, 0xbf, 0x6f, 0xb7, 0x09, 0x6e, 0x42, 0x35, + 0xf9, 0xdb, 0x03, 0x7e, 0x43, 0x29, 0xb0, 0x94, 0xbf, 0x23, 0xea, 0xe3, 0x80, 0xeb, 0xe7, 0xf0, + 0x87, 0x30, 0x1b, 0xff, 0x21, 0x01, 0xab, 0xed, 0x53, 0xf9, 0xd7, 0xc2, 0x51, 0x93, 0x37, 0xa1, + 0x12, 0xfb, 0xbf, 0x00, 0x5f, 0x57, 0xce, 0xad, 0xfa, 0x07, 0xa1, 0xbe, 0xac, 0x64, 0x8d, 0xfe, + 0x22, 0x20, 0xd0, 0xc7, 0x8b, 0xb4, 0x29, 0xe8, 0x95, 0x95, 0xdc, 0xa3, 0xd0, 0x9b, 0x70, 0xfe, + 0x50, 0xcd, 0x15, 0xbf, 0xa9, 0x9c, 0x3f, 0xad, 0x36, 0x7b, 0xd4, 0x12, 0x07, 0x80, 0x0f, 0x57, + 0xe1, 0xf1, 0x2d, 0xf5, 0x09, 0xa4, 0xfd, 0x64, 0x50, 0x5f, 0x9d, 0x98, 0x3f, 0x14, 0xdc, 0x8f, + 0x11, 0x5c, 0x48, 0x29, 0x94, 0xe2, 0x75, 0xe5, 0x74, 0xe3, 0xab, 0xbd, 0xf5, 0xdb, 0xc7, 0x1b, + 0x14, 0x02, 0x71, 0x61, 0x2e, 0x51, 0xba, 0xc4, 0x37, 0x95, 0x53, 0xa9, 0xab, 0xa8, 0xf5, 0x37, + 0x26, 0x63, 0x0e, 0xd7, 0x7b, 0x0c, 0x73, 0x89, 0x72, 0x65, 0xca, 0x7a, 0xea, 0xa2, 0xe6, 0x51, + 0x07, 0xfa, 0x01, 0x54, 0x62, 0x75, 0xc5, 0x14, 0x8d, 0x57, 0xd5, 0x1e, 0x8f, 0x9a, 0xfa, 0x31, + 0x68, 0xd1, 0xf2, 0x1f, 0x5e, 0x49, 0xb3, 0xa5, 0x43, 0x13, 0x1f, 0xc7, 0x94, 0x46, 0x95, 0x83, + 0x31, 0xa6, 0x74, 0xa8, 0x20, 0x32, 0xb9, 0x29, 0x45, 0xe6, 0x1f, 0x6b, 0x4a, 0xc7, 0x5e, 0xe2, + 0x23, 0x04, 0x4b, 0xea, 0xea, 0x11, 0x5e, 0x4b, 0xd3, 0xcd, 0xf4, 0x3a, 0x59, 0x7d, 0xfd, 0x58, + 0x63, 0x42, 0x29, 0x3e, 0x85, 0xd9, 0x78, 0xfd, 0x25, 0x45, 0x8a, 0xca, 0xb2, 0x52, 0xfd, 0xe6, + 0x44, 0xbc, 0xe1, 0x62, 0xdf, 0x85, 0x72, 0x24, 0x37, 0x8e, 0x5f, 0x1f, 0xa3, 0xc7, 0xd1, 0xd4, + 0xcb, 0x51, 0x92, 0xec, 0x40, 0x25, 0x96, 0x0f, 0x4d, 0xd3, 0x61, 0x45, 0x9a, 0xba, 0x7e, 0x63, + 0x12, 0xd6, 0x70, 0x03, 0x1d, 0xa8, 0xc4, 0xb2, 0x53, 0x29, 0x2b, 0xa9, 0x92, 0x71, 0x29, 0x2b, + 0x29, 0x93, 0x5d, 0xfa, 0x39, 0xfc, 0xc3, 0x48, 0x22, 0x2c, 0x96, 0x6c, 0xc4, 0x5f, 0x1e, 0x3b, + 0x8f, 0x2a, 0xd7, 0x5a, 0x5f, 0x3b, 0xce, 0x90, 0x10, 0xc2, 0x7b, 0x50, 0x0a, 0x93, 0x60, 0xf8, + 0x5a, 0xaa, 0x5b, 0x38, 0xce, 0x49, 0xed, 0x42, 0x41, 0x24, 0x64, 0xb0, 0x9e, 0x92, 0x59, 0x8e, + 0x64, 0xab, 0xea, 0x5f, 0x18, 0xcb, 0x13, 0xe2, 0x34, 0xa0, 0x20, 0x5e, 0xb3, 0x29, 0x93, 0xc6, + 0xb2, 0x14, 0xf5, 0xf1, 0x3c, 0xfc, 0x39, 0xac, 0x9f, 0xc3, 0xdb, 0x90, 0xe7, 0xcf, 0x58, 0xac, + 0x76, 0x45, 0xd1, 0x27, 0xee, 0x51, 0x7b, 0xfe, 0x09, 0x82, 0x5a, 0xda, 0x3b, 0x05, 0xa7, 0xde, + 0x42, 0xe3, 0x1e, 0x5b, 0xf5, 0x3b, 0xc7, 0x1c, 0x15, 0x8a, 0xea, 0x39, 0xcc, 0x2b, 0xa2, 0x63, + 0xbc, 0x9a, 0x36, 0x5f, 0x4a, 0x60, 0x5f, 0x7f, 0x6b, 0xf2, 0x01, 0xe1, 0xda, 0x04, 0xb4, 0x68, + 0xc0, 0x9b, 0x72, 0x1d, 0x28, 0x62, 0xe5, 0xfa, 0xf5, 0x09, 0x38, 0x87, 0xcb, 0xac, 0xf5, 0x41, + 0xdb, 0xf1, 0xbd, 0x67, 0x83, 0x61, 0x40, 0xfa, 0xf9, 0x2c, 0xbb, 0x71, 0xe7, 0xfb, 0xeb, 0x7b, + 0x76, 0xd0, 0xe9, 0xb7, 0xd8, 0xf9, 0xaf, 0x0a, 0xde, 0x37, 0x6d, 0x4f, 0x7e, 0xad, 0xda, 0x6e, + 0x40, 0x7c, 0xd7, 0x74, 0x56, 0xf9, 0x5c, 0x92, 0xda, 0x6b, 0xb5, 0x0a, 0xbc, 0xbd, 0xfe, 0xff, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x83, 0x86, 0xb3, 0x8f, 0x6e, 0x2c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used.