Support specified shard number when create collection (#7482)

Add shards_num to CollectionInfo

Modify dmlChannelNum config

Compatible with old meta

Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
pull/7575/head
zhenshan.cao 2021-09-08 15:00:00 +08:00 committed by GitHub
parent e1081b6783
commit b0524adbd8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 1117 additions and 623 deletions

View File

@ -113,7 +113,6 @@ unittest: test-cpp test-go
test-go: build-cpp-with-unittest
@echo "Running go unittests..."
@echo "disable go unittest for now, enable it later"
@(env bash $(PWD)/scripts/run_go_codecov.sh)
# @(env bash $(PWD)/scripts/run_go_unittest.sh)

View File

@ -29,3 +29,4 @@ proxy:
maxNameLength: 255
maxFieldNum: 64
maxDimension: 32768
maxShardNum: 256

View File

@ -10,7 +10,7 @@
# or implied. See the License for the specific language governing permissions and limitations under the License.
rootcoord:
dmlChannelNum: 64
dmlChannelNum: 256
maxPartitionNum: 4096
minSegmentSizeToEnableIndex: 1024
timeout: 3600 # time out, 5 seconds

View File

@ -207,6 +207,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_etcd_5fmeta_2eproto::offsets[]
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, virtual_channel_names_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, physical_channel_names_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, partition_created_timestamps_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, shards_num_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::SegmentIndexInfo, _internal_metadata_),
~0u, // no _extensions_
@ -237,8 +238,8 @@ static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOB
{ 17, -1, sizeof(::milvus::proto::etcd::IndexInfo)},
{ 25, -1, sizeof(::milvus::proto::etcd::FieldIndexInfo)},
{ 32, -1, sizeof(::milvus::proto::etcd::CollectionInfo)},
{ 46, -1, sizeof(::milvus::proto::etcd::SegmentIndexInfo)},
{ 58, -1, sizeof(::milvus::proto::etcd::CollectionMeta)},
{ 47, -1, sizeof(::milvus::proto::etcd::SegmentIndexInfo)},
{ 59, -1, sizeof(::milvus::proto::etcd::CollectionMeta)},
};
static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
@ -262,7 +263,7 @@ const char descriptor_table_protodef_etcd_5fmeta_2eproto[] PROTOBUF_SECTION_VARI
"\022\n\nindex_name\030\001 \001(\t\022\017\n\007indexID\030\002 \001(\003\0227\n\014"
"index_params\030\003 \003(\0132!.milvus.proto.common"
".KeyValuePair\"2\n\016FieldIndexInfo\022\017\n\007filed"
"ID\030\001 \001(\003\022\017\n\007indexID\030\002 \001(\003\"\265\002\n\016Collection"
"ID\030\001 \001(\003\022\017\n\007indexID\030\002 \001(\003\"\311\002\n\016Collection"
"Info\022\n\n\002ID\030\001 \001(\003\0225\n\006schema\030\002 \001(\0132%.milvu"
"s.proto.schema.CollectionSchema\022\023\n\013creat"
"e_time\030\003 \001(\004\022\024\n\014partitionIDs\030\004 \003(\003\022\026\n\016pa"
@ -270,17 +271,17 @@ const char descriptor_table_protodef_etcd_5fmeta_2eproto[] PROTOBUF_SECTION_VARI
"\0132!.milvus.proto.etcd.FieldIndexInfo\022\035\n\025"
"virtual_channel_names\030\007 \003(\t\022\036\n\026physical_"
"channel_names\030\010 \003(\t\022$\n\034partition_created"
"_timestamps\030\t \003(\004\"\231\001\n\020SegmentIndexInfo\022\024"
"\n\014collectionID\030\001 \001(\003\022\023\n\013partitionID\030\002 \001("
"\003\022\021\n\tsegmentID\030\003 \001(\003\022\017\n\007fieldID\030\004 \001(\003\022\017\n"
"\007indexID\030\005 \001(\003\022\017\n\007buildID\030\006 \001(\003\022\024\n\014enabl"
"e_index\030\007 \001(\010\"\252\001\n\016CollectionMeta\022\n\n\002ID\030\001"
" \001(\003\0225\n\006schema\030\002 \001(\0132%.milvus.proto.sche"
"ma.CollectionSchema\022\023\n\013create_time\030\003 \001(\004"
"\022\022\n\nsegmentIDs\030\004 \003(\003\022\026\n\016partition_tags\030\005"
" \003(\t\022\024\n\014partitionIDs\030\006 \003(\003B3Z1github.com"
"/milvus-io/milvus/internal/proto/etcdpbb"
"\006proto3"
"_timestamps\030\t \003(\004\022\022\n\nshards_num\030\n \001(\005\"\231\001"
"\n\020SegmentIndexInfo\022\024\n\014collectionID\030\001 \001(\003"
"\022\023\n\013partitionID\030\002 \001(\003\022\021\n\tsegmentID\030\003 \001(\003"
"\022\017\n\007fieldID\030\004 \001(\003\022\017\n\007indexID\030\005 \001(\003\022\017\n\007bu"
"ildID\030\006 \001(\003\022\024\n\014enable_index\030\007 \001(\010\"\252\001\n\016Co"
"llectionMeta\022\n\n\002ID\030\001 \001(\003\0225\n\006schema\030\002 \001(\013"
"2%.milvus.proto.schema.CollectionSchema\022"
"\023\n\013create_time\030\003 \001(\004\022\022\n\nsegmentIDs\030\004 \003(\003"
"\022\026\n\016partition_tags\030\005 \003(\t\022\024\n\014partitionIDs"
"\030\006 \003(\003B3Z1github.com/milvus-io/milvus/in"
"ternal/proto/etcdpbb\006proto3"
;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_etcd_5fmeta_2eproto_deps[2] = {
&::descriptor_table_common_2eproto,
@ -298,7 +299,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", 1127,
&descriptor_table_etcd_5fmeta_2eproto_initialized, descriptor_table_protodef_etcd_5fmeta_2eproto, "etcd_meta.proto", 1147,
&descriptor_table_etcd_5fmeta_2eproto_once, descriptor_table_etcd_5fmeta_2eproto_sccs, descriptor_table_etcd_5fmeta_2eproto_deps, 7, 2,
schemas, file_default_instances, TableStruct_etcd_5fmeta_2eproto::offsets,
file_level_metadata_etcd_5fmeta_2eproto, 7, file_level_enum_descriptors_etcd_5fmeta_2eproto, file_level_service_descriptors_etcd_5fmeta_2eproto,
@ -1816,16 +1817,16 @@ CollectionInfo::CollectionInfo(const CollectionInfo& from)
schema_ = nullptr;
}
::memcpy(&id_, &from.id_,
static_cast<size_t>(reinterpret_cast<char*>(&create_time_) -
reinterpret_cast<char*>(&id_)) + sizeof(create_time_));
static_cast<size_t>(reinterpret_cast<char*>(&shards_num_) -
reinterpret_cast<char*>(&id_)) + sizeof(shards_num_));
// @@protoc_insertion_point(copy_constructor:milvus.proto.etcd.CollectionInfo)
}
void CollectionInfo::SharedCtor() {
::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CollectionInfo_etcd_5fmeta_2eproto.base);
::memset(&schema_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&create_time_) -
reinterpret_cast<char*>(&schema_)) + sizeof(create_time_));
reinterpret_cast<char*>(&shards_num_) -
reinterpret_cast<char*>(&schema_)) + sizeof(shards_num_));
}
CollectionInfo::~CollectionInfo() {
@ -1863,8 +1864,8 @@ void CollectionInfo::Clear() {
}
schema_ = nullptr;
::memset(&id_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&create_time_) -
reinterpret_cast<char*>(&id_)) + sizeof(create_time_));
reinterpret_cast<char*>(&shards_num_) -
reinterpret_cast<char*>(&id_)) + sizeof(shards_num_));
_internal_metadata_.Clear();
}
@ -1965,6 +1966,13 @@ const char* CollectionInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE
CHK_(ptr);
} else goto handle_unusual;
continue;
// int32 shards_num = 10;
case 10:
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
shards_num_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
CHK_(ptr);
} else goto handle_unusual;
continue;
default: {
handle_unusual:
if ((tag & 7) == 4 || tag == 0) {
@ -2123,6 +2131,19 @@ bool CollectionInfo::MergePartialFromCodedStream(
break;
}
// int32 shards_num = 10;
case 10: {
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (80 & 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) {
@ -2227,6 +2248,11 @@ void CollectionInfo::SerializeWithCachedSizes(
this->partition_created_timestamps(i), output);
}
// int32 shards_num = 10;
if (this->shards_num() != 0) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32(10, this->shards_num(), output);
}
if (_internal_metadata_.have_unknown_fields()) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
_internal_metadata_.unknown_fields(), output);
@ -2321,6 +2347,11 @@ void CollectionInfo::SerializeWithCachedSizes(
WriteUInt64NoTagToArray(this->partition_created_timestamps_, target);
}
// int32 shards_num = 10;
if (this->shards_num() != 0) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(10, this->shards_num(), target);
}
if (_internal_metadata_.have_unknown_fields()) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields(), target);
@ -2428,6 +2459,13 @@ size_t CollectionInfo::ByteSizeLong() const {
this->create_time());
}
// int32 shards_num = 10;
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;
@ -2470,6 +2508,9 @@ void CollectionInfo::MergeFrom(const CollectionInfo& from) {
if (from.create_time() != 0) {
set_create_time(from.create_time());
}
if (from.shards_num() != 0) {
set_shards_num(from.shards_num());
}
}
void CollectionInfo::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
@ -2502,6 +2543,7 @@ void CollectionInfo::InternalSwap(CollectionInfo* other) {
swap(schema_, other->schema_);
swap(id_, other->id_);
swap(create_time_, other->create_time_);
swap(shards_num_, other->shards_num_);
}
::PROTOBUF_NAMESPACE_ID::Metadata CollectionInfo::GetMetadata() const {

View File

@ -845,6 +845,7 @@ class CollectionInfo :
kSchemaFieldNumber = 2,
kIDFieldNumber = 1,
kCreateTimeFieldNumber = 3,
kShardsNumFieldNumber = 10,
};
// repeated int64 partitionIDs = 4;
int partitionids_size() const;
@ -948,6 +949,11 @@ class CollectionInfo :
::PROTOBUF_NAMESPACE_ID::uint64 create_time() const;
void set_create_time(::PROTOBUF_NAMESPACE_ID::uint64 value);
// int32 shards_num = 10;
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.etcd.CollectionInfo)
private:
class _Internal;
@ -964,6 +970,7 @@ class CollectionInfo :
::milvus::proto::schema::CollectionSchema* schema_;
::PROTOBUF_NAMESPACE_ID::int64 id_;
::PROTOBUF_NAMESPACE_ID::uint64 create_time_;
::PROTOBUF_NAMESPACE_ID::int32 shards_num_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
friend struct ::TableStruct_etcd_5fmeta_2eproto;
};
@ -2108,6 +2115,20 @@ CollectionInfo::mutable_partition_created_timestamps() {
return &partition_created_timestamps_;
}
// int32 shards_num = 10;
inline void CollectionInfo::clear_shards_num() {
shards_num_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 CollectionInfo::shards_num() const {
// @@protoc_insertion_point(field_get:milvus.proto.etcd.CollectionInfo.shards_num)
return shards_num_;
}
inline void CollectionInfo::set_shards_num(::PROTOBUF_NAMESPACE_ID::int32 value) {
shards_num_ = value;
// @@protoc_insertion_point(field_set:milvus.proto.etcd.CollectionInfo.shards_num)
}
// -------------------------------------------------------------------
// SegmentIndexInfo

View File

@ -1339,6 +1339,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_milvus_2eproto::offsets[] PROT
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionResponse, physical_channel_names_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionResponse, created_timestamp_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionResponse, created_utc_timestamp_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionResponse, shards_num_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::LoadCollectionRequest, _internal_metadata_),
~0u, // no _extensions_
@ -1849,63 +1850,63 @@ static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOB
{ 34, -1, sizeof(::milvus::proto::milvus::StringResponse)},
{ 41, -1, sizeof(::milvus::proto::milvus::DescribeCollectionRequest)},
{ 51, -1, sizeof(::milvus::proto::milvus::DescribeCollectionResponse)},
{ 63, -1, sizeof(::milvus::proto::milvus::LoadCollectionRequest)},
{ 71, -1, sizeof(::milvus::proto::milvus::ReleaseCollectionRequest)},
{ 79, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsRequest)},
{ 87, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsResponse)},
{ 94, -1, sizeof(::milvus::proto::milvus::ShowCollectionsRequest)},
{ 104, -1, sizeof(::milvus::proto::milvus::ShowCollectionsResponse)},
{ 115, -1, sizeof(::milvus::proto::milvus::CreatePartitionRequest)},
{ 124, -1, sizeof(::milvus::proto::milvus::DropPartitionRequest)},
{ 133, -1, sizeof(::milvus::proto::milvus::HasPartitionRequest)},
{ 142, -1, sizeof(::milvus::proto::milvus::LoadPartitionsRequest)},
{ 151, -1, sizeof(::milvus::proto::milvus::ReleasePartitionsRequest)},
{ 160, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsRequest)},
{ 169, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsResponse)},
{ 176, -1, sizeof(::milvus::proto::milvus::ShowPartitionsRequest)},
{ 187, -1, sizeof(::milvus::proto::milvus::ShowPartitionsResponse)},
{ 198, -1, sizeof(::milvus::proto::milvus::DescribeSegmentRequest)},
{ 206, -1, sizeof(::milvus::proto::milvus::DescribeSegmentResponse)},
{ 215, -1, sizeof(::milvus::proto::milvus::ShowSegmentsRequest)},
{ 223, -1, sizeof(::milvus::proto::milvus::ShowSegmentsResponse)},
{ 230, -1, sizeof(::milvus::proto::milvus::CreateIndexRequest)},
{ 240, -1, sizeof(::milvus::proto::milvus::DescribeIndexRequest)},
{ 250, -1, sizeof(::milvus::proto::milvus::IndexDescription)},
{ 259, -1, sizeof(::milvus::proto::milvus::DescribeIndexResponse)},
{ 266, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressRequest)},
{ 276, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressResponse)},
{ 284, -1, sizeof(::milvus::proto::milvus::GetIndexStateRequest)},
{ 294, -1, sizeof(::milvus::proto::milvus::GetIndexStateResponse)},
{ 302, -1, sizeof(::milvus::proto::milvus::DropIndexRequest)},
{ 312, -1, sizeof(::milvus::proto::milvus::InsertRequest)},
{ 324, -1, sizeof(::milvus::proto::milvus::MutationResult)},
{ 338, -1, sizeof(::milvus::proto::milvus::DeleteRequest)},
{ 348, -1, sizeof(::milvus::proto::milvus::PlaceholderValue)},
{ 356, -1, sizeof(::milvus::proto::milvus::PlaceholderGroup)},
{ 362, -1, sizeof(::milvus::proto::milvus::SearchRequest)},
{ 378, -1, sizeof(::milvus::proto::milvus::Hits)},
{ 386, -1, sizeof(::milvus::proto::milvus::SearchResults)},
{ 393, -1, sizeof(::milvus::proto::milvus::FlushRequest)},
{ 401, 408, sizeof(::milvus::proto::milvus::FlushResponse_CollSegIDsEntry_DoNotUse)},
{ 410, -1, sizeof(::milvus::proto::milvus::FlushResponse)},
{ 418, -1, sizeof(::milvus::proto::milvus::QueryRequest)},
{ 431, -1, sizeof(::milvus::proto::milvus::QueryResults)},
{ 438, -1, sizeof(::milvus::proto::milvus::VectorIDs)},
{ 447, -1, sizeof(::milvus::proto::milvus::VectorsArray)},
{ 455, -1, sizeof(::milvus::proto::milvus::CalcDistanceRequest)},
{ 464, -1, sizeof(::milvus::proto::milvus::CalcDistanceResults)},
{ 473, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)},
{ 483, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)},
{ 491, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)},
{ 498, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)},
{ 510, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)},
{ 518, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)},
{ 525, -1, sizeof(::milvus::proto::milvus::DummyRequest)},
{ 531, -1, sizeof(::milvus::proto::milvus::DummyResponse)},
{ 537, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)},
{ 542, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)},
{ 549, -1, sizeof(::milvus::proto::milvus::GetMetricsRequest)},
{ 556, -1, sizeof(::milvus::proto::milvus::GetMetricsResponse)},
{ 64, -1, sizeof(::milvus::proto::milvus::LoadCollectionRequest)},
{ 72, -1, sizeof(::milvus::proto::milvus::ReleaseCollectionRequest)},
{ 80, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsRequest)},
{ 88, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsResponse)},
{ 95, -1, sizeof(::milvus::proto::milvus::ShowCollectionsRequest)},
{ 105, -1, sizeof(::milvus::proto::milvus::ShowCollectionsResponse)},
{ 116, -1, sizeof(::milvus::proto::milvus::CreatePartitionRequest)},
{ 125, -1, sizeof(::milvus::proto::milvus::DropPartitionRequest)},
{ 134, -1, sizeof(::milvus::proto::milvus::HasPartitionRequest)},
{ 143, -1, sizeof(::milvus::proto::milvus::LoadPartitionsRequest)},
{ 152, -1, sizeof(::milvus::proto::milvus::ReleasePartitionsRequest)},
{ 161, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsRequest)},
{ 170, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsResponse)},
{ 177, -1, sizeof(::milvus::proto::milvus::ShowPartitionsRequest)},
{ 188, -1, sizeof(::milvus::proto::milvus::ShowPartitionsResponse)},
{ 199, -1, sizeof(::milvus::proto::milvus::DescribeSegmentRequest)},
{ 207, -1, sizeof(::milvus::proto::milvus::DescribeSegmentResponse)},
{ 216, -1, sizeof(::milvus::proto::milvus::ShowSegmentsRequest)},
{ 224, -1, sizeof(::milvus::proto::milvus::ShowSegmentsResponse)},
{ 231, -1, sizeof(::milvus::proto::milvus::CreateIndexRequest)},
{ 241, -1, sizeof(::milvus::proto::milvus::DescribeIndexRequest)},
{ 251, -1, sizeof(::milvus::proto::milvus::IndexDescription)},
{ 260, -1, sizeof(::milvus::proto::milvus::DescribeIndexResponse)},
{ 267, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressRequest)},
{ 277, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressResponse)},
{ 285, -1, sizeof(::milvus::proto::milvus::GetIndexStateRequest)},
{ 295, -1, sizeof(::milvus::proto::milvus::GetIndexStateResponse)},
{ 303, -1, sizeof(::milvus::proto::milvus::DropIndexRequest)},
{ 313, -1, sizeof(::milvus::proto::milvus::InsertRequest)},
{ 325, -1, sizeof(::milvus::proto::milvus::MutationResult)},
{ 339, -1, sizeof(::milvus::proto::milvus::DeleteRequest)},
{ 349, -1, sizeof(::milvus::proto::milvus::PlaceholderValue)},
{ 357, -1, sizeof(::milvus::proto::milvus::PlaceholderGroup)},
{ 363, -1, sizeof(::milvus::proto::milvus::SearchRequest)},
{ 379, -1, sizeof(::milvus::proto::milvus::Hits)},
{ 387, -1, sizeof(::milvus::proto::milvus::SearchResults)},
{ 394, -1, sizeof(::milvus::proto::milvus::FlushRequest)},
{ 402, 409, sizeof(::milvus::proto::milvus::FlushResponse_CollSegIDsEntry_DoNotUse)},
{ 411, -1, sizeof(::milvus::proto::milvus::FlushResponse)},
{ 419, -1, sizeof(::milvus::proto::milvus::QueryRequest)},
{ 432, -1, sizeof(::milvus::proto::milvus::QueryResults)},
{ 439, -1, sizeof(::milvus::proto::milvus::VectorIDs)},
{ 448, -1, sizeof(::milvus::proto::milvus::VectorsArray)},
{ 456, -1, sizeof(::milvus::proto::milvus::CalcDistanceRequest)},
{ 465, -1, sizeof(::milvus::proto::milvus::CalcDistanceResults)},
{ 474, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)},
{ 484, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)},
{ 492, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)},
{ 499, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)},
{ 511, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)},
{ 519, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)},
{ 526, -1, sizeof(::milvus::proto::milvus::DummyRequest)},
{ 532, -1, sizeof(::milvus::proto::milvus::DummyResponse)},
{ 538, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)},
{ 543, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)},
{ 550, -1, sizeof(::milvus::proto::milvus::GetMetricsRequest)},
{ 557, -1, sizeof(::milvus::proto::milvus::GetMetricsResponse)},
};
static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
@ -1995,296 +1996,297 @@ const char descriptor_table_protodef_milvus_2eproto[] PROTOBUF_SECTION_VARIABLE(
"*\n\004base\030\001 \001(\0132\034.milvus.proto.common.MsgB"
"ase\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\022\022\n\ntime_stam"
"p\030\005 \001(\004\"\217\002\n\032DescribeCollectionResponse\022+"
"p\030\005 \001(\004\"\243\002\n\032DescribeCollectionResponse\022+"
"\n\006status\030\001 \001(\0132\033.milvus.proto.common.Sta"
"tus\0225\n\006schema\030\002 \001(\0132%.milvus.proto.schem"
"a.CollectionSchema\022\024\n\014collectionID\030\003 \001(\003"
"\022\035\n\025virtual_channel_names\030\004 \003(\t\022\036\n\026physi"
"cal_channel_names\030\005 \003(\t\022\031\n\021created_times"
"tamp\030\006 \001(\004\022\035\n\025created_utc_timestamp\030\007 \001("
"\004\"m\n\025LoadCollectionRequest\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\"p\n\030Rele"
"aseCollectionRequest\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\"v\n\036GetCollect"
"ionStatisticsRequest\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\"\200\001\n\037GetCollec"
"tionStatisticsResponse\022+\n\006status\030\001 \001(\0132\033"
".milvus.proto.common.Status\0220\n\005stats\030\002 \003"
"(\0132!.milvus.proto.common.KeyValuePair\"\260\001"
"\n\026ShowCollectionsRequest\022*\n\004base\030\001 \001(\0132\034"
".milvus.proto.common.MsgBase\022\017\n\007db_name\030"
"\002 \001(\t\022\022\n\ntime_stamp\030\003 \001(\004\022+\n\004type\030\004 \001(\0162"
"\035.milvus.proto.milvus.ShowType\022\030\n\020collec"
"tion_names\030\005 \003(\t\"\322\001\n\027ShowCollectionsResp"
"onse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.comm"
"on.Status\022\030\n\020collection_names\030\002 \003(\t\022\026\n\016c"
"ollection_ids\030\003 \003(\003\022\032\n\022created_timestamp"
"s\030\004 \003(\004\022\036\n\026created_utc_timestamps\030\005 \003(\004\022"
"\034\n\024inMemory_percentages\030\006 \003(\003\"\206\001\n\026Create"
"PartitionRequest\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\016partition_name"
"\030\004 \001(\t\"\204\001\n\024DropPartitionRequest\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\026\n"
"\016partition_name\030\004 \001(\t\"\203\001\n\023HasPartitionRe"
"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\"\206\001\n\025"
"LoadPartitionsRequest\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\027\n\017partition"
"_names\030\004 \003(\t\"\211\001\n\030ReleasePartitionsReques"
"\004\022\022\n\nshards_num\030\010 \001(\005\"m\n\025LoadCollectionR"
"equest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.comm"
"on.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collectio"
"n_name\030\003 \001(\t\"p\n\030ReleaseCollectionRequest"
"\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Msg"
"Base\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.Msg"
"Base\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name"
"\030\003 \001(\t\"\200\001\n\037GetCollectionStatisticsRespon"
"se\022+\n\006status\030\001 \001(\0132\033.milvus.proto.common"
".Status\0220\n\005stats\030\002 \003(\0132!.milvus.proto.co"
"mmon.KeyValuePair\"\260\001\n\026ShowCollectionsReq"
"uest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common"
".MsgBase\022\017\n\007db_name\030\002 \001(\t\022\022\n\ntime_stamp\030"
"\003 \001(\004\022+\n\004type\030\004 \001(\0162\035.milvus.proto.milvu"
"s.ShowType\022\030\n\020collection_names\030\005 \003(\t\"\322\001\n"
"\027ShowCollectionsResponse\022+\n\006status\030\001 \001(\013"
"2\033.milvus.proto.common.Status\022\030\n\020collect"
"ion_names\030\002 \003(\t\022\026\n\016collection_ids\030\003 \003(\003\022"
"\032\n\022created_timestamps\030\004 \003(\004\022\036\n\026created_u"
"tc_timestamps\030\005 \003(\004\022\034\n\024inMemory_percenta"
"ges\030\006 \003(\003\"\206\001\n\026CreatePartitionRequest\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\"\204\001\n\024DropParti"
"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\026\n\016partition_name\030\004 \001("
"\t\"\203\001\n\023HasPartitionRequest\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\016parti"
"tion_name\030\004 \001(\t\"\206\001\n\025LoadPartitionsReques"
"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\027\n\017partition_names\030\004 \003(\t\"\215\001\n\035Get"
"PartitionStatisticsRequest\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\"\177\n\036GetPartitionStatisti"
"csResponse\022+\n\006status\030\001 \001(\0132\033.milvus.prot"
"o.common.Status\0220\n\005stats\030\002 \003(\0132!.milvus."
"proto.common.KeyValuePair\"\311\001\n\025ShowPartit"
"ionsRequest\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\024\n\014collectionID\030\004 \001(\003\022"
"\027\n\017partition_names\030\005 \003(\t\022+\n\004type\030\006 \001(\0162\035"
".milvus.proto.milvus.ShowType\"\316\001\n\026ShowPa"
"rtitionsResponse\022+\n\006status\030\001 \001(\0132\033.milvu"
"s.proto.common.Status\022\027\n\017partition_names"
"\030\002 \003(\t\022\024\n\014partitionIDs\030\003 \003(\003\022\032\n\022created_"
"timestamps\030\004 \003(\004\022\036\n\026created_utc_timestam"
"ps\030\005 \003(\004\022\034\n\024inMemory_percentages\030\006 \003(\003\"m"
"\n\026DescribeSegmentRequest\022*\n\004base\030\001 \001(\0132\034"
".milvus.proto.common.MsgBase\022\024\n\014collecti"
"onID\030\002 \001(\003\022\021\n\tsegmentID\030\003 \001(\003\"~\n\027Describ"
"eSegmentResponse\022+\n\006status\030\001 \001(\0132\033.milvu"
"s.proto.common.Status\022\017\n\007indexID\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.mil"
"vus.proto.common.MsgBase\022\024\n\014collectionID"
"\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003\"W\n\024ShowSegme"
"ntsResponse\022+\n\006status\030\001 \001(\0132\033.milvus.pro"
"to.common.Status\022\022\n\nsegmentIDs\030\002 \003(\003\"\267\001\n"
"\022CreateIndexRequest\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\022\n\nfield_name\030"
"\004 \001(\t\0227\n\014extra_params\030\005 \003(\0132!.milvus.pro"
"to.common.KeyValuePair\"\224\001\n\024DescribeIndex"
"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\022\022\n\nfield_name\030\004 \001(\t\022\022\n\nind"
"ex_name\030\005 \001(\t\"~\n\020IndexDescription\022\022\n\nind"
"ex_name\030\001 \001(\t\022\017\n\007indexID\030\002 \001(\003\0221\n\006params"
"\030\003 \003(\0132!.milvus.proto.common.KeyValuePai"
"r\022\022\n\nfield_name\030\004 \001(\t\"\207\001\n\025DescribeIndexR"
"esponse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.c"
"ommon.Status\022A\n\022index_descriptions\030\002 \003(\013"
"2%.milvus.proto.milvus.IndexDescription\""
"\234\001\n\034GetIndexBuildProgressRequest\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\"v"
"\n\035GetIndexBuildProgressResponse\022+\n\006statu"
"s\030\001 \001(\0132\033.milvus.proto.common.Status\022\024\n\014"
"indexed_rows\030\002 \001(\003\022\022\n\ntotal_rows\030\003 \001(\003\"\224"
"\001\n\024GetIndexStateRequest\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_n"
"ame\030\004 \001(\t\022\022\n\nindex_name\030\005 \001(\t\"\211\001\n\025GetInd"
"exStateResponse\022+\n\006status\030\001 \001(\0132\033.milvus"
".proto.common.Status\022.\n\005state\030\002 \001(\0162\037.mi"
"lvus.proto.common.IndexState\022\023\n\013fail_rea"
"son\030\003 \001(\t\"\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\n"
"field_name\030\004 \001(\t\022\022\n\nindex_name\030\005 \001(\t\"\327\001\n"
"\rInsertRequest\022*\n\004base\030\001 \001(\0132\034.milvus.pr"
"oto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017c"
"ollection_name\030\003 \001(\t\022\026\n\016partition_name\030\004"
" \001(\t\0223\n\013fields_data\030\005 \003(\0132\036.milvus.proto"
".schema.FieldData\022\021\n\thash_keys\030\006 \003(\r\022\020\n\010"
"num_rows\030\007 \001(\r\"\360\001\n\016MutationResult\022+\n\006sta"
"tus\030\001 \001(\0132\033.milvus.proto.common.Status\022%"
"\n\003IDs\030\002 \001(\0132\030.milvus.proto.schema.IDs\022\022\n"
"\nsucc_index\030\003 \003(\r\022\021\n\terr_index\030\004 \003(\r\022\024\n\014"
"acknowledged\030\005 \001(\010\022\022\n\ninsert_cnt\030\006 \001(\003\022\022"
"\n\ndelete_cnt\030\007 \001(\003\022\022\n\nupsert_cnt\030\010 \001(\003\022\021"
"\n\ttimestamp\030\t \001(\004\"\213\001\n\rDeleteRequest\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\026\n\016partition_name\030\004 \001(\t\022\014\n\004expr\030\005 \001(\t\""
"c\n\020PlaceholderValue\022\013\n\003tag\030\001 \001(\t\0222\n\004type"
"\030\002 \001(\0162$.milvus.proto.milvus.Placeholder"
"Type\022\016\n\006values\030\003 \003(\014\"O\n\020PlaceholderGroup"
"\022;\n\014placeholders\030\001 \003(\0132%.milvus.proto.mi"
"lvus.PlaceholderValue\"\336\002\n\rSearchRequest\022"
"e\030\003 \001(\t\022\027\n\017partition_names\030\004 \003(\t\"\211\001\n\030Rel"
"easePartitionsRequest\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\027\n\017partition"
"_names\030\004 \003(\t\"\215\001\n\035GetPartitionStatisticsR"
"equest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.comm"
"on.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collectio"
"n_name\030\003 \001(\t\022\026\n\016partition_name\030\004 \001(\t\"\177\n\036"
"GetPartitionStatisticsResponse\022+\n\006status"
"\030\001 \001(\0132\033.milvus.proto.common.Status\0220\n\005s"
"tats\030\002 \003(\0132!.milvus.proto.common.KeyValu"
"ePair\"\311\001\n\025ShowPartitionsRequest\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\024\n"
"\014collectionID\030\004 \001(\003\022\027\n\017partition_names\030\005"
" \003(\t\022+\n\004type\030\006 \001(\0162\035.milvus.proto.milvus"
".ShowType\"\316\001\n\026ShowPartitionsResponse\022+\n\006"
"status\030\001 \001(\0132\033.milvus.proto.common.Statu"
"s\022\027\n\017partition_names\030\002 \003(\t\022\024\n\014partitionI"
"Ds\030\003 \003(\003\022\032\n\022created_timestamps\030\004 \003(\004\022\036\n\026"
"created_utc_timestamps\030\005 \003(\004\022\034\n\024inMemory"
"_percentages\030\006 \003(\003\"m\n\026DescribeSegmentReq"
"uest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common"
".MsgBase\022\024\n\014collectionID\030\002 \001(\003\022\021\n\tsegmen"
"tID\030\003 \001(\003\"~\n\027DescribeSegmentResponse\022+\n\006"
"status\030\001 \001(\0132\033.milvus.proto.common.Statu"
"s\022\017\n\007indexID\030\002 \001(\003\022\017\n\007buildID\030\003 \001(\003\022\024\n\014e"
"nable_index\030\004 \001(\010\"l\n\023ShowSegmentsRequest"
"\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Msg"
"Base\022\024\n\014collectionID\030\002 \001(\003\022\023\n\013partitionI"
"D\030\003 \001(\003\"W\n\024ShowSegmentsResponse\022+\n\006statu"
"s\030\001 \001(\0132\033.milvus.proto.common.Status\022\022\n\n"
"segmentIDs\030\002 \003(\003\"\267\001\n\022CreateIndexRequest\022"
"*\n\004base\030\001 \001(\0132\034.milvus.proto.common.MsgB"
"ase\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_ty"
"pe\030\007 \001(\0162\034.milvus.proto.common.DslType\022\025"
"\n\routput_fields\030\010 \003(\t\0228\n\rsearch_params\030\t"
" \003(\0132!.milvus.proto.common.KeyValuePair\022"
"\030\n\020travel_timestamp\030\n \001(\004\022\033\n\023guarantee_t"
"imestamp\030\013 \001(\004\"5\n\004Hits\022\013\n\003IDs\030\001 \003(\003\022\020\n\010r"
"ow_data\030\002 \003(\014\022\016\n\006scores\030\003 \003(\002\"t\n\rSearchR"
"esults\022+\n\006status\030\001 \001(\0132\033.milvus.proto.co"
"mmon.Status\0226\n\007results\030\002 \001(\0132%.milvus.pr"
"oto.schema.SearchResultData\"e\n\014FlushRequ"
"\003 \001(\t\022\022\n\nfield_name\030\004 \001(\t\0227\n\014extra_param"
"s\030\005 \003(\0132!.milvus.proto.common.KeyValuePa"
"ir\"\224\001\n\024DescribeIndexRequest\022*\n\004base\030\001 \001("
"\0132\034.milvus.proto.common.MsgBase\022\017\n\007db_na"
"me\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\022\n\nfie"
"ld_name\030\004 \001(\t\022\022\n\nindex_name\030\005 \001(\t\"~\n\020Ind"
"exDescription\022\022\n\nindex_name\030\001 \001(\t\022\017\n\007ind"
"exID\030\002 \001(\003\0221\n\006params\030\003 \003(\0132!.milvus.prot"
"o.common.KeyValuePair\022\022\n\nfield_name\030\004 \001("
"\t\"\207\001\n\025DescribeIndexResponse\022+\n\006status\030\001 "
"\001(\0132\033.milvus.proto.common.Status\022A\n\022inde"
"x_descriptions\030\002 \003(\0132%.milvus.proto.milv"
"us.IndexDescription\"\234\001\n\034GetIndexBuildPro"
"gressRequest\022*\n\004base\030\001 \001(\0132\034.milvus.prot"
"o.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017col"
"lection_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\035GetIndexBuildProgr"
"essResponse\022+\n\006status\030\001 \001(\0132\033.milvus.pro"
"to.common.Status\022\024\n\014indexed_rows\030\002 \001(\003\022\022"
"\n\ntotal_rows\030\003 \001(\003\"\224\001\n\024GetIndexStateRequ"
"est\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common."
"MsgBase\022\017\n\007db_name\030\002 \001(\t\022\030\n\020collection_n"
"ames\030\003 \003(\t\"\351\001\n\rFlushResponse\022+\n\006status\030\001"
" \001(\0132\033.milvus.proto.common.Status\022\017\n\007db_"
"name\030\002 \001(\t\022G\n\013coll_segIDs\030\003 \003(\01322.milvus"
".proto.milvus.FlushResponse.CollSegIDsEn"
"try\032Q\n\017CollSegIDsEntry\022\013\n\003key\030\001 \001(\t\022-\n\005v"
"alue\030\002 \001(\0132\036.milvus.proto.schema.LongArr"
"ay:\0028\001\"\331\001\n\014QueryRequest\022*\n\004base\030\001 \001(\0132\034."
"MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_n"
"ame\030\003 \001(\t\022\022\n\nfield_name\030\004 \001(\t\022\022\n\nindex_n"
"ame\030\005 \001(\t\"\211\001\n\025GetIndexStateResponse\022+\n\006s"
"tatus\030\001 \001(\0132\033.milvus.proto.common.Status"
"\022.\n\005state\030\002 \001(\0162\037.milvus.proto.common.In"
"dexState\022\023\n\013fail_reason\030\003 \001(\t\"\220\001\n\020DropIn"
"dexRequest\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\022\n\nfield_name\030\004 \001(\t\022\022\n\n"
"index_name\030\005 \001(\t\"\327\001\n\rInsertRequest\022*\n\004ba"
"se\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\0223\n\013fields_data\030"
"\005 \003(\0132\036.milvus.proto.schema.FieldData\022\021\n"
"\thash_keys\030\006 \003(\r\022\020\n\010num_rows\030\007 \001(\r\"\360\001\n\016M"
"utationResult\022+\n\006status\030\001 \001(\0132\033.milvus.p"
"roto.common.Status\022%\n\003IDs\030\002 \001(\0132\030.milvus"
".proto.schema.IDs\022\022\n\nsucc_index\030\003 \003(\r\022\021\n"
"\terr_index\030\004 \003(\r\022\024\n\014acknowledged\030\005 \001(\010\022\022"
"\n\ninsert_cnt\030\006 \001(\003\022\022\n\ndelete_cnt\030\007 \001(\003\022\022"
"\n\nupsert_cnt\030\010 \001(\003\022\021\n\ttimestamp\030\t \001(\004\"\213\001"
"\n\rDeleteRequest\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\022\014\n\004expr\030\005 \001(\t\"c\n\020PlaceholderValue\022"
"\013\n\003tag\030\001 \001(\t\0222\n\004type\030\002 \001(\0162$.milvus.prot"
"o.milvus.PlaceholderType\022\016\n\006values\030\003 \003(\014"
"\"O\n\020PlaceholderGroup\022;\n\014placeholders\030\001 \003"
"(\0132%.milvus.proto.milvus.PlaceholderValu"
"e\"\336\002\n\rSearchRequest\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\027\n\017partition_n"
"ames\030\004 \003(\t\022\013\n\003dsl\030\005 \001(\t\022\031\n\021placeholder_g"
"roup\030\006 \001(\014\022.\n\010dsl_type\030\007 \001(\0162\034.milvus.pr"
"oto.common.DslType\022\025\n\routput_fields\030\010 \003("
"\t\0228\n\rsearch_params\030\t \003(\0132!.milvus.proto."
"common.KeyValuePair\022\030\n\020travel_timestamp\030"
"\n \001(\004\022\033\n\023guarantee_timestamp\030\013 \001(\004\"5\n\004Hi"
"ts\022\013\n\003IDs\030\001 \003(\003\022\020\n\010row_data\030\002 \003(\014\022\016\n\006sco"
"res\030\003 \003(\002\"t\n\rSearchResults\022+\n\006status\030\001 \001"
"(\0132\033.milvus.proto.common.Status\0226\n\007resul"
"ts\030\002 \001(\0132%.milvus.proto.schema.SearchRes"
"ultData\"e\n\014FlushRequest\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\014\n\004expr\030\004 "
"\001(\t\022\025\n\routput_fields\030\005 \003(\t\022\027\n\017partition_"
"names\030\006 \003(\t\022\030\n\020travel_timestamp\030\007 \001(\004\022\033\n"
"\023guarantee_timestamp\030\010 \001(\004\"p\n\014QueryResul"
"ts\022+\n\006status\030\001 \001(\0132\033.milvus.proto.common"
".Status\0223\n\013fields_data\030\002 \003(\0132\036.milvus.pr"
"oto.schema.FieldData\"}\n\tVectorIDs\022\027\n\017col"
"lection_name\030\001 \001(\t\022\022\n\nfield_name\030\002 \001(\t\022*"
"\n\010id_array\030\003 \001(\0132\030.milvus.proto.schema.I"
"Ds\022\027\n\017partition_names\030\004 \003(\t\"\203\001\n\014VectorsA"
"rray\0222\n\010id_array\030\001 \001(\0132\036.milvus.proto.mi"
"lvus.VectorIDsH\000\0226\n\ndata_array\030\002 \001(\0132 .m"
"ilvus.proto.schema.VectorFieldH\000B\007\n\005arra"
"y\"\335\001\n\023CalcDistanceRequest\022*\n\004base\030\001 \001(\0132"
"\034.milvus.proto.common.MsgBase\0222\n\007op_left"
"\030\002 \001(\0132!.milvus.proto.milvus.VectorsArra"
"y\0223\n\010op_right\030\003 \001(\0132!.milvus.proto.milvu"
"s.VectorsArray\0221\n\006params\030\004 \003(\0132!.milvus."
"proto.common.KeyValuePair\"\265\001\n\023CalcDistan"
"ceResults\022+\n\006status\030\001 \001(\0132\033.milvus.proto"
".common.Status\0221\n\010int_dist\030\002 \001(\0132\035.milvu"
"s.proto.schema.IntArrayH\000\0225\n\nfloat_dist\030"
"\003 \001(\0132\037.milvus.proto.schema.FloatArrayH\000"
"B\007\n\005array\"\231\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\020\n\010num_rows\030\004 \001(\003\0220\n\005s"
"tate\030\005 \001(\0162!.milvus.proto.common.Segment"
"State\"u\n\037GetPersistentSegmentInfoRequest"
"\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\"$\n\014DummyReque"
"st\022\024\n\014request_type\030\001 \001(\t\"!\n\rDummyRespons"
"e\022\020\n\010response\030\001 \001(\t\"\025\n\023RegisterLinkReque"
"st\"r\n\024RegisterLinkResponse\022-\n\007address\030\001 "
"\001(\0132\034.milvus.proto.common.Address\022+\n\006sta"
"tus\030\002 \001(\0132\033.milvus.proto.common.Status\"P"
"\n\021GetMetricsRequest\022*\n\004base\030\001 \001(\0132\034.milv"
"us.proto.common.MsgBase\022\017\n\007request\030\002 \001(\t"
"\"k\n\022GetMetricsResponse\022+\n\006status\030\001 \001(\0132\033"
".milvus.proto.common.Status\022\020\n\010response\030"
"\002 \001(\t\022\026\n\016component_name\030\003 \001(\t*!\n\010ShowTyp"
"e\022\007\n\003All\020\000\022\014\n\010InMemory\020\001*>\n\017PlaceholderT"
"ype\022\010\n\004None\020\000\022\020\n\014BinaryVector\020d\022\017\n\013Float"
"Vector\020e2\326\030\n\rMilvusService\022_\n\020CreateColl"
"ection\022,.milvus.proto.milvus.CreateColle"
"ctionRequest\032\033.milvus.proto.common.Statu"
"s\"\000\022[\n\016DropCollection\022*.milvus.proto.mil"
"vus.DropCollectionRequest\032\033.milvus.proto"
".common.Status\"\000\022_\n\rHasCollection\022).milv"
"us.proto.milvus.HasCollectionRequest\032!.m"
"ilvus.proto.milvus.BoolResponse\"\000\022[\n\016Loa"
"dCollection\022*.milvus.proto.milvus.LoadCo"
"llectionRequest\032\033.milvus.proto.common.St"
"atus\"\000\022a\n\021ReleaseCollection\022-.milvus.pro"
"to.milvus.ReleaseCollectionRequest\032\033.mil"
"vus.proto.common.Status\"\000\022w\n\022DescribeCol"
"lection\022..milvus.proto.milvus.DescribeCo"
"llectionRequest\032/.milvus.proto.milvus.De"
"scribeCollectionResponse\"\000\022\206\001\n\027GetCollec"
"tionStatistics\0223.milvus.proto.milvus.Get"
"CollectionStatisticsRequest\0324.milvus.pro"
"to.milvus.GetCollectionStatisticsRespons"
"e\"\000\022n\n\017ShowCollections\022+.milvus.proto.mi"
"lvus.ShowCollectionsRequest\032,.milvus.pro"
"to.milvus.ShowCollectionsResponse\"\000\022]\n\017C"
"reatePartition\022+.milvus.proto.milvus.Cre"
"atePartitionRequest\032\033.milvus.proto.commo"
"n.Status\"\000\022Y\n\rDropPartition\022).milvus.pro"
"to.milvus.DropPartitionRequest\032\033.milvus."
"proto.common.Status\"\000\022]\n\014HasPartition\022(."
"milvus.proto.milvus.HasPartitionRequest\032"
"!.milvus.proto.milvus.BoolResponse\"\000\022[\n\016"
"LoadPartitions\022*.milvus.proto.milvus.Loa"
"dPartitionsRequest\032\033.milvus.proto.common"
".Status\"\000\022a\n\021ReleasePartitions\022-.milvus."
"proto.milvus.ReleasePartitionsRequest\032\033."
"milvus.proto.common.Status\"\000\022\203\001\n\026GetPart"
"itionStatistics\0222.milvus.proto.milvus.Ge"
"tPartitionStatisticsRequest\0323.milvus.pro"
"to.milvus.GetPartitionStatisticsResponse"
"\"\000\022k\n\016ShowPartitions\022*.milvus.proto.milv"
"us.ShowPartitionsRequest\032+.milvus.proto."
"milvus.ShowPartitionsResponse\"\000\022U\n\013Creat"
"eIndex\022\'.milvus.proto.milvus.CreateIndex"
"Request\032\033.milvus.proto.common.Status\"\000\022h"
"\n\rDescribeIndex\022).milvus.proto.milvus.De"
"scribeIndexRequest\032*.milvus.proto.milvus"
".DescribeIndexResponse\"\000\022h\n\rGetIndexStat"
"e\022).milvus.proto.milvus.GetIndexStateReq"
"uest\032*.milvus.proto.milvus.GetIndexState"
"Response\"\000\022\200\001\n\025GetIndexBuildProgress\0221.m"
"ilvus.proto.milvus.GetIndexBuildProgress"
"Request\0322.milvus.proto.milvus.GetIndexBu"
"ildProgressResponse\"\000\022Q\n\tDropIndex\022%.mil"
"vus.proto.milvus.DropIndexRequest\032\033.milv"
"us.proto.common.Status\"\000\022S\n\006Insert\022\".mil"
"vus.proto.milvus.InsertRequest\032#.milvus."
"proto.milvus.MutationResult\"\000\022S\n\006Delete\022"
"\".milvus.proto.milvus.DeleteRequest\032#.mi"
"lvus.proto.milvus.MutationResult\"\000\022R\n\006Se"
"arch\022\".milvus.proto.milvus.SearchRequest"
"\032\".milvus.proto.milvus.SearchResults\"\000\022P"
"\n\005Flush\022!.milvus.proto.milvus.FlushReque"
"st\032\".milvus.proto.milvus.FlushResponse\"\000"
"\022O\n\005Query\022!.milvus.proto.milvus.QueryReq"
"uest\032!.milvus.proto.milvus.QueryResults\""
"\000\022d\n\014CalcDistance\022(.milvus.proto.milvus."
"CalcDistanceRequest\032(.milvus.proto.milvu"
"s.CalcDistanceResults\"\000\022\211\001\n\030GetPersisten"
"tSegmentInfo\0224.milvus.proto.milvus.GetPe"
"rsistentSegmentInfoRequest\0325.milvus.prot"
"o.milvus.GetPersistentSegmentInfoRespons"
"e\"\000\022z\n\023GetQuerySegmentInfo\022/.milvus.prot"
"o.milvus.GetQuerySegmentInfoRequest\0320.mi"
"lvus.proto.milvus.GetQuerySegmentInfoRes"
"ponse\"\000\022P\n\005Dummy\022!.milvus.proto.milvus.D"
"ummyRequest\032\".milvus.proto.milvus.DummyR"
"esponse\"\000\022e\n\014RegisterLink\022(.milvus.proto"
".milvus.RegisterLinkRequest\032).milvus.pro"
"to.milvus.RegisterLinkResponse\"\000\022_\n\nGetM"
"etrics\022&.milvus.proto.milvus.GetMetricsR"
"equest\032\'.milvus.proto.milvus.GetMetricsR"
"esponse\"\0002u\n\014ProxyService\022e\n\014RegisterLin"
"k\022(.milvus.proto.milvus.RegisterLinkRequ"
"est\032).milvus.proto.milvus.RegisterLinkRe"
"sponse\"\000B5Z3github.com/milvus-io/milvus/"
"internal/proto/milvuspbb\006proto3"
" \001(\t\022\030\n\020collection_names\030\003 \003(\t\"\351\001\n\rFlush"
"Response\022+\n\006status\030\001 \001(\0132\033.milvus.proto."
"common.Status\022\017\n\007db_name\030\002 \001(\t\022G\n\013coll_s"
"egIDs\030\003 \003(\01322.milvus.proto.milvus.FlushR"
"esponse.CollSegIDsEntry\032Q\n\017CollSegIDsEnt"
"ry\022\013\n\003key\030\001 \001(\t\022-\n\005value\030\002 \001(\0132\036.milvus."
"proto.schema.LongArray:\0028\001\"\331\001\n\014QueryRequ"
"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\022\014\n\004expr\030\004 \001(\t\022\025\n\routput_fields"
"\030\005 \003(\t\022\027\n\017partition_names\030\006 \003(\t\022\030\n\020trave"
"l_timestamp\030\007 \001(\004\022\033\n\023guarantee_timestamp"
"\030\010 \001(\004\"p\n\014QueryResults\022+\n\006status\030\001 \001(\0132\033"
".milvus.proto.common.Status\0223\n\013fields_da"
"ta\030\002 \003(\0132\036.milvus.proto.schema.FieldData"
"\"}\n\tVectorIDs\022\027\n\017collection_name\030\001 \001(\t\022\022"
"\n\nfield_name\030\002 \001(\t\022*\n\010id_array\030\003 \001(\0132\030.m"
"ilvus.proto.schema.IDs\022\027\n\017partition_name"
"s\030\004 \003(\t\"\203\001\n\014VectorsArray\0222\n\010id_array\030\001 \001"
"(\0132\036.milvus.proto.milvus.VectorIDsH\000\0226\n\n"
"data_array\030\002 \001(\0132 .milvus.proto.schema.V"
"ectorFieldH\000B\007\n\005array\"\335\001\n\023CalcDistanceRe"
"quest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.commo"
"n.MsgBase\0222\n\007op_left\030\002 \001(\0132!.milvus.prot"
"o.milvus.VectorsArray\0223\n\010op_right\030\003 \001(\0132"
"!.milvus.proto.milvus.VectorsArray\0221\n\006pa"
"rams\030\004 \003(\0132!.milvus.proto.common.KeyValu"
"ePair\"\265\001\n\023CalcDistanceResults\022+\n\006status\030"
"\001 \001(\0132\033.milvus.proto.common.Status\0221\n\010in"
"t_dist\030\002 \001(\0132\035.milvus.proto.schema.IntAr"
"rayH\000\0225\n\nfloat_dist\030\003 \001(\0132\037.milvus.proto"
".schema.FloatArrayH\000B\007\n\005array\"\231\001\n\025Persis"
"tentSegmentInfo\022\021\n\tsegmentID\030\001 \001(\003\022\024\n\014co"
"llectionID\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003\022\020\n"
"\010num_rows\030\004 \001(\003\0220\n\005state\030\005 \001(\0162!.milvus."
"proto.common.SegmentState\"u\n\037GetPersiste"
"ntSegmentInfoRequest\022*\n\004base\030\001 \001(\0132\034.mil"
"vus.proto.common.MsgBase\022\016\n\006dbName\030\002 \001(\t"
"\022\026\n\016collectionName\030\003 \001(\t\"\212\001\n GetPersiste"
"ntSegmentInfoResponse\022+\n\006status\030\001 \001(\0132\033."
"milvus.proto.common.Status\0229\n\005infos\030\002 \003("
"\0132*.milvus.proto.milvus.PersistentSegmen"
"tInfo\"\231\001\n\020QuerySegmentInfo\022\021\n\tsegmentID\030"
"\001 \001(\003\022\024\n\014collectionID\030\002 \001(\003\022\023\n\013partition"
"ID\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\032GetQuerySegmentInfoRequest\022*\n\004base\030"
"\001 \001(\0132\034.milvus.proto.common.MsgBase\022\016\n\006d"
"bName\030\002 \001(\t\022\026\n\016collectionName\030\003 \001(\t\"\200\001\n\033"
"GetQuerySegmentInfoResponse\022+\n\006status\030\001 "
"\001(\0132\033.milvus.proto.common.Status\0224\n\005info"
"s\030\002 \003(\0132%.milvus.proto.milvus.QuerySegme"
"ntInfo\"$\n\014DummyRequest\022\024\n\014request_type\030\001"
" \001(\t\"!\n\rDummyResponse\022\020\n\010response\030\001 \001(\t\""
"\025\n\023RegisterLinkRequest\"r\n\024RegisterLinkRe"
"sponse\022-\n\007address\030\001 \001(\0132\034.milvus.proto.c"
"ommon.Address\022+\n\006status\030\002 \001(\0132\033.milvus.p"
"roto.common.Status\"P\n\021GetMetricsRequest\022"
"*\n\004base\030\001 \001(\0132\034.milvus.proto.common.MsgB"
"ase\022\017\n\007request\030\002 \001(\t\"k\n\022GetMetricsRespon"
"se\022+\n\006status\030\001 \001(\0132\033.milvus.proto.common"
".Status\022\020\n\010response\030\002 \001(\t\022\026\n\016component_n"
"ame\030\003 \001(\t*!\n\010ShowType\022\007\n\003All\020\000\022\014\n\010InMemo"
"ry\020\001*>\n\017PlaceholderType\022\010\n\004None\020\000\022\020\n\014Bin"
"aryVector\020d\022\017\n\013FloatVector\020e2\326\030\n\rMilvusS"
"ervice\022_\n\020CreateCollection\022,.milvus.prot"
"o.milvus.CreateCollectionRequest\032\033.milvu"
"s.proto.common.Status\"\000\022[\n\016DropCollectio"
"n\022*.milvus.proto.milvus.DropCollectionRe"
"quest\032\033.milvus.proto.common.Status\"\000\022_\n\r"
"HasCollection\022).milvus.proto.milvus.HasC"
"ollectionRequest\032!.milvus.proto.milvus.B"
"oolResponse\"\000\022[\n\016LoadCollection\022*.milvus"
".proto.milvus.LoadCollectionRequest\032\033.mi"
"lvus.proto.common.Status\"\000\022a\n\021ReleaseCol"
"lection\022-.milvus.proto.milvus.ReleaseCol"
"lectionRequest\032\033.milvus.proto.common.Sta"
"tus\"\000\022w\n\022DescribeCollection\022..milvus.pro"
"to.milvus.DescribeCollectionRequest\032/.mi"
"lvus.proto.milvus.DescribeCollectionResp"
"onse\"\000\022\206\001\n\027GetCollectionStatistics\0223.mil"
"vus.proto.milvus.GetCollectionStatistics"
"Request\0324.milvus.proto.milvus.GetCollect"
"ionStatisticsResponse\"\000\022n\n\017ShowCollectio"
"ns\022+.milvus.proto.milvus.ShowCollections"
"Request\032,.milvus.proto.milvus.ShowCollec"
"tionsResponse\"\000\022]\n\017CreatePartition\022+.mil"
"vus.proto.milvus.CreatePartitionRequest\032"
"\033.milvus.proto.common.Status\"\000\022Y\n\rDropPa"
"rtition\022).milvus.proto.milvus.DropPartit"
"ionRequest\032\033.milvus.proto.common.Status\""
"\000\022]\n\014HasPartition\022(.milvus.proto.milvus."
"HasPartitionRequest\032!.milvus.proto.milvu"
"s.BoolResponse\"\000\022[\n\016LoadPartitions\022*.mil"
"vus.proto.milvus.LoadPartitionsRequest\032\033"
".milvus.proto.common.Status\"\000\022a\n\021Release"
"Partitions\022-.milvus.proto.milvus.Release"
"PartitionsRequest\032\033.milvus.proto.common."
"Status\"\000\022\203\001\n\026GetPartitionStatistics\0222.mi"
"lvus.proto.milvus.GetPartitionStatistics"
"Request\0323.milvus.proto.milvus.GetPartiti"
"onStatisticsResponse\"\000\022k\n\016ShowPartitions"
"\022*.milvus.proto.milvus.ShowPartitionsReq"
"uest\032+.milvus.proto.milvus.ShowPartition"
"sResponse\"\000\022U\n\013CreateIndex\022\'.milvus.prot"
"o.milvus.CreateIndexRequest\032\033.milvus.pro"
"to.common.Status\"\000\022h\n\rDescribeIndex\022).mi"
"lvus.proto.milvus.DescribeIndexRequest\032*"
".milvus.proto.milvus.DescribeIndexRespon"
"se\"\000\022h\n\rGetIndexState\022).milvus.proto.mil"
"vus.GetIndexStateRequest\032*.milvus.proto."
"milvus.GetIndexStateResponse\"\000\022\200\001\n\025GetIn"
"dexBuildProgress\0221.milvus.proto.milvus.G"
"etIndexBuildProgressRequest\0322.milvus.pro"
"to.milvus.GetIndexBuildProgressResponse\""
"\000\022Q\n\tDropIndex\022%.milvus.proto.milvus.Dro"
"pIndexRequest\032\033.milvus.proto.common.Stat"
"us\"\000\022S\n\006Insert\022\".milvus.proto.milvus.Ins"
"ertRequest\032#.milvus.proto.milvus.Mutatio"
"nResult\"\000\022S\n\006Delete\022\".milvus.proto.milvu"
"s.DeleteRequest\032#.milvus.proto.milvus.Mu"
"tationResult\"\000\022R\n\006Search\022\".milvus.proto."
"milvus.SearchRequest\032\".milvus.proto.milv"
"us.SearchResults\"\000\022P\n\005Flush\022!.milvus.pro"
"to.milvus.FlushRequest\032\".milvus.proto.mi"
"lvus.FlushResponse\"\000\022O\n\005Query\022!.milvus.p"
"roto.milvus.QueryRequest\032!.milvus.proto."
"milvus.QueryResults\"\000\022d\n\014CalcDistance\022(."
"milvus.proto.milvus.CalcDistanceRequest\032"
"(.milvus.proto.milvus.CalcDistanceResult"
"s\"\000\022\211\001\n\030GetPersistentSegmentInfo\0224.milvu"
"s.proto.milvus.GetPersistentSegmentInfoR"
"equest\0325.milvus.proto.milvus.GetPersiste"
"ntSegmentInfoResponse\"\000\022z\n\023GetQuerySegme"
"ntInfo\022/.milvus.proto.milvus.GetQuerySeg"
"mentInfoRequest\0320.milvus.proto.milvus.Ge"
"tQuerySegmentInfoResponse\"\000\022P\n\005Dummy\022!.m"
"ilvus.proto.milvus.DummyRequest\032\".milvus"
".proto.milvus.DummyResponse\"\000\022e\n\014Registe"
"rLink\022(.milvus.proto.milvus.RegisterLink"
"Request\032).milvus.proto.milvus.RegisterLi"
"nkResponse\"\000\022_\n\nGetMetrics\022&.milvus.prot"
"o.milvus.GetMetricsRequest\032\'.milvus.prot"
"o.milvus.GetMetricsResponse\"\0002u\n\014ProxySe"
"rvice\022e\n\014RegisterLink\022(.milvus.proto.mil"
"vus.RegisterLinkRequest\032).milvus.proto.m"
"ilvus.RegisterLinkResponse\"\000B5Z3github.c"
"om/milvus-io/milvus/internal/proto/milvu"
"spbb\006proto3"
;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_milvus_2eproto_deps[2] = {
&::descriptor_table_common_2eproto,
@ -2359,7 +2361,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", 12351,
&descriptor_table_milvus_2eproto_initialized, descriptor_table_protodef_milvus_2eproto, "milvus.proto", 12371,
&descriptor_table_milvus_2eproto_once, descriptor_table_milvus_2eproto_sccs, descriptor_table_milvus_2eproto_deps, 64, 2,
schemas, file_default_instances, TableStruct_milvus_2eproto::offsets,
file_level_metadata_milvus_2eproto, 64, file_level_enum_descriptors_milvus_2eproto, file_level_service_descriptors_milvus_2eproto,
@ -4929,16 +4931,16 @@ DescribeCollectionResponse::DescribeCollectionResponse(const DescribeCollectionR
schema_ = nullptr;
}
::memcpy(&collectionid_, &from.collectionid_,
static_cast<size_t>(reinterpret_cast<char*>(&created_utc_timestamp_) -
reinterpret_cast<char*>(&collectionid_)) + sizeof(created_utc_timestamp_));
static_cast<size_t>(reinterpret_cast<char*>(&shards_num_) -
reinterpret_cast<char*>(&collectionid_)) + sizeof(shards_num_));
// @@protoc_insertion_point(copy_constructor:milvus.proto.milvus.DescribeCollectionResponse)
}
void DescribeCollectionResponse::SharedCtor() {
::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DescribeCollectionResponse_milvus_2eproto.base);
::memset(&status_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&created_utc_timestamp_) -
reinterpret_cast<char*>(&status_)) + sizeof(created_utc_timestamp_));
reinterpret_cast<char*>(&shards_num_) -
reinterpret_cast<char*>(&status_)) + sizeof(shards_num_));
}
DescribeCollectionResponse::~DescribeCollectionResponse() {
@ -4977,8 +4979,8 @@ void DescribeCollectionResponse::Clear() {
}
schema_ = nullptr;
::memset(&collectionid_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&created_utc_timestamp_) -
reinterpret_cast<char*>(&collectionid_)) + sizeof(created_utc_timestamp_));
reinterpret_cast<char*>(&shards_num_) -
reinterpret_cast<char*>(&collectionid_)) + sizeof(shards_num_));
_internal_metadata_.Clear();
}
@ -5049,6 +5051,13 @@ const char* DescribeCollectionResponse::_InternalParse(const char* ptr, ::PROTOB
CHK_(ptr);
} else goto handle_unusual;
continue;
// int32 shards_num = 8;
case 8:
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
shards_num_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
CHK_(ptr);
} else goto handle_unusual;
continue;
default: {
handle_unusual:
if ((tag & 7) == 4 || tag == 0) {
@ -5172,6 +5181,19 @@ bool DescribeCollectionResponse::MergePartialFromCodedStream(
break;
}
// int32 shards_num = 8;
case 8: {
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (64 & 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) {
@ -5246,6 +5268,11 @@ void DescribeCollectionResponse::SerializeWithCachedSizes(
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64(7, this->created_utc_timestamp(), output);
}
// int32 shards_num = 8;
if (this->shards_num() != 0) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32(8, this->shards_num(), output);
}
if (_internal_metadata_.have_unknown_fields()) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
_internal_metadata_.unknown_fields(), output);
@ -5308,6 +5335,11 @@ void DescribeCollectionResponse::SerializeWithCachedSizes(
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(7, this->created_utc_timestamp(), target);
}
// int32 shards_num = 8;
if (this->shards_num() != 0) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->shards_num(), target);
}
if (_internal_metadata_.have_unknown_fields()) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields(), target);
@ -5380,6 +5412,13 @@ size_t DescribeCollectionResponse::ByteSizeLong() const {
this->created_utc_timestamp());
}
// int32 shards_num = 8;
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;
@ -5424,6 +5463,9 @@ void DescribeCollectionResponse::MergeFrom(const DescribeCollectionResponse& fro
if (from.created_utc_timestamp() != 0) {
set_created_utc_timestamp(from.created_utc_timestamp());
}
if (from.shards_num() != 0) {
set_shards_num(from.shards_num());
}
}
void DescribeCollectionResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
@ -5454,6 +5496,7 @@ void DescribeCollectionResponse::InternalSwap(DescribeCollectionResponse* other)
swap(collectionid_, other->collectionid_);
swap(created_timestamp_, other->created_timestamp_);
swap(created_utc_timestamp_, other->created_utc_timestamp_);
swap(shards_num_, other->shards_num_);
}
::PROTOBUF_NAMESPACE_ID::Metadata DescribeCollectionResponse::GetMetadata() const {

View File

@ -1470,6 +1470,7 @@ class DescribeCollectionResponse :
kCollectionIDFieldNumber = 3,
kCreatedTimestampFieldNumber = 6,
kCreatedUtcTimestampFieldNumber = 7,
kShardsNumFieldNumber = 8,
};
// repeated string virtual_channel_names = 4;
int virtual_channel_names_size() const;
@ -1536,6 +1537,11 @@ class DescribeCollectionResponse :
::PROTOBUF_NAMESPACE_ID::uint64 created_utc_timestamp() const;
void set_created_utc_timestamp(::PROTOBUF_NAMESPACE_ID::uint64 value);
// int32 shards_num = 8;
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.DescribeCollectionResponse)
private:
class _Internal;
@ -1548,6 +1554,7 @@ class DescribeCollectionResponse :
::PROTOBUF_NAMESPACE_ID::int64 collectionid_;
::PROTOBUF_NAMESPACE_ID::uint64 created_timestamp_;
::PROTOBUF_NAMESPACE_ID::uint64 created_utc_timestamp_;
::PROTOBUF_NAMESPACE_ID::int32 shards_num_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
friend struct ::TableStruct_milvus_2eproto;
};
@ -12146,6 +12153,20 @@ inline void DescribeCollectionResponse::set_created_utc_timestamp(::PROTOBUF_NAM
// @@protoc_insertion_point(field_set:milvus.proto.milvus.DescribeCollectionResponse.created_utc_timestamp)
}
// int32 shards_num = 8;
inline void DescribeCollectionResponse::clear_shards_num() {
shards_num_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 DescribeCollectionResponse::shards_num() const {
// @@protoc_insertion_point(field_get:milvus.proto.milvus.DescribeCollectionResponse.shards_num)
return shards_num_;
}
inline void DescribeCollectionResponse::set_shards_num(::PROTOBUF_NAMESPACE_ID::int32 value) {
shards_num_ = value;
// @@protoc_insertion_point(field_set:milvus.proto.milvus.DescribeCollectionResponse.shards_num)
}
// -------------------------------------------------------------------
// LoadCollectionRequest

View File

@ -39,6 +39,7 @@ message CollectionInfo {
repeated string virtual_channel_names = 7;
repeated string physical_channel_names = 8;
repeated uint64 partition_created_timestamps = 9;
int32 shards_num = 10;
}
message SegmentIndexInfo {

View File

@ -252,6 +252,7 @@ type CollectionInfo struct {
VirtualChannelNames []string `protobuf:"bytes,7,rep,name=virtual_channel_names,json=virtualChannelNames,proto3" json:"virtual_channel_names,omitempty"`
PhysicalChannelNames []string `protobuf:"bytes,8,rep,name=physical_channel_names,json=physicalChannelNames,proto3" json:"physical_channel_names,omitempty"`
PartitionCreatedTimestamps []uint64 `protobuf:"varint,9,rep,packed,name=partition_created_timestamps,json=partitionCreatedTimestamps,proto3" json:"partition_created_timestamps,omitempty"`
ShardsNum int32 `protobuf:"varint,10,opt,name=shards_num,json=shardsNum,proto3" json:"shards_num,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -345,6 +346,13 @@ func (m *CollectionInfo) GetPartitionCreatedTimestamps() []uint64 {
return nil
}
func (m *CollectionInfo) GetShardsNum() int32 {
if m != nil {
return m.ShardsNum
}
return 0
}
type SegmentIndexInfo struct {
CollectionID int64 `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
PartitionID int64 `protobuf:"varint,2,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
@ -524,49 +532,50 @@ func init() {
func init() { proto.RegisterFile("etcd_meta.proto", fileDescriptor_975d306d62b73e88) }
var fileDescriptor_975d306d62b73e88 = []byte{
// 693 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xcf, 0x6e, 0xd3, 0x4e,
0x10, 0x96, 0xeb, 0x34, 0xa9, 0x27, 0x69, 0xda, 0xee, 0xef, 0x8f, 0xac, 0xaa, 0x80, 0x6b, 0xa9,
0x25, 0x12, 0x22, 0x11, 0x2d, 0xe2, 0x86, 0x04, 0xd4, 0xaa, 0x14, 0x21, 0xaa, 0xe2, 0x46, 0x1c,
0xb8, 0x58, 0x1b, 0x7b, 0x92, 0xac, 0x64, 0xaf, 0x83, 0x77, 0x5d, 0x35, 0x37, 0xce, 0x3c, 0x02,
0x4f, 0xc3, 0xdb, 0x70, 0xe0, 0x25, 0x90, 0x77, 0x6d, 0x27, 0x69, 0xc3, 0x91, 0x9b, 0xe7, 0x9b,
0x99, 0xdd, 0x6f, 0xbe, 0xf9, 0xbc, 0xb0, 0x87, 0x32, 0x8c, 0x82, 0x04, 0x25, 0xed, 0xcf, 0xb3,
0x54, 0xa6, 0xe4, 0x20, 0x61, 0xf1, 0x6d, 0x2e, 0x74, 0xd4, 0x2f, 0xb2, 0x87, 0x9d, 0x30, 0x4d,
0x92, 0x94, 0x6b, 0xe8, 0xb0, 0x23, 0xc2, 0x19, 0x26, 0x65, 0xb9, 0xfb, 0xdd, 0x00, 0x18, 0x21,
0xa7, 0x5c, 0x7e, 0x40, 0x49, 0x49, 0x17, 0xb6, 0x86, 0x9e, 0x6d, 0x38, 0x46, 0xcf, 0xf4, 0xb7,
0x86, 0x1e, 0x39, 0x85, 0x3d, 0x9e, 0x27, 0xc1, 0x97, 0x1c, 0xb3, 0x45, 0xc0, 0xd3, 0x08, 0x85,
0xbd, 0xa5, 0x92, 0xbb, 0x3c, 0x4f, 0x3e, 0x16, 0xe8, 0x55, 0x01, 0x92, 0x67, 0x70, 0xc0, 0xb8,
0xc0, 0x4c, 0x06, 0xe1, 0x8c, 0x72, 0x8e, 0xf1, 0xd0, 0x13, 0xb6, 0xe9, 0x98, 0x3d, 0xcb, 0xdf,
0xd7, 0x89, 0x8b, 0x1a, 0x27, 0x4f, 0x61, 0x4f, 0x1f, 0x58, 0xd7, 0xda, 0x0d, 0xc7, 0xe8, 0x59,
0x7e, 0x57, 0xc1, 0x75, 0xa5, 0xfb, 0xd5, 0x00, 0xeb, 0x3a, 0x4b, 0xef, 0x16, 0x1b, 0xb9, 0xbd,
0x82, 0x16, 0x8d, 0xa2, 0x0c, 0x85, 0xe6, 0xd4, 0x3e, 0x3b, 0xea, 0xaf, 0xcd, 0x5e, 0x4e, 0xfd,
0x56, 0xd7, 0xf8, 0x55, 0x71, 0xc1, 0x35, 0x43, 0x91, 0xc7, 0x9b, 0xb8, 0xea, 0xc4, 0x92, 0xab,
0xfb, 0xcd, 0x00, 0x6b, 0xc8, 0x23, 0xbc, 0x1b, 0xf2, 0x49, 0x4a, 0x1e, 0x01, 0xb0, 0x22, 0x08,
0x38, 0x4d, 0x50, 0x51, 0xb1, 0x7c, 0x4b, 0x21, 0x57, 0x34, 0x41, 0x62, 0x43, 0x4b, 0x05, 0x43,
0xaf, 0x54, 0xa9, 0x0a, 0x89, 0x07, 0x1d, 0xdd, 0x38, 0xa7, 0x19, 0x4d, 0xf4, 0x75, 0xed, 0xb3,
0xe3, 0x8d, 0x84, 0xdf, 0xe3, 0xe2, 0x13, 0x8d, 0x73, 0xbc, 0xa6, 0x2c, 0xf3, 0xdb, 0xaa, 0xed,
0x5a, 0x75, 0xb9, 0x1e, 0x74, 0x2f, 0x19, 0xc6, 0xd1, 0x92, 0x90, 0x0d, 0xad, 0x09, 0x8b, 0x31,
0xaa, 0x85, 0xa9, 0xc2, 0x3f, 0x73, 0x71, 0x7f, 0x98, 0xd0, 0xbd, 0x48, 0xe3, 0x18, 0x43, 0xc9,
0x52, 0xae, 0x8e, 0xb9, 0x2f, 0xed, 0x6b, 0x68, 0x6a, 0x97, 0x94, 0xca, 0x9e, 0xac, 0x13, 0x2d,
0x1d, 0xb4, 0x3c, 0xe4, 0x46, 0x01, 0x7e, 0xd9, 0x44, 0x9e, 0x40, 0x3b, 0xcc, 0x90, 0x4a, 0x0c,
0x24, 0x4b, 0xd0, 0x36, 0x1d, 0xa3, 0xd7, 0xf0, 0x41, 0x43, 0x23, 0x96, 0x20, 0x71, 0xa1, 0x33,
0xa7, 0x99, 0x64, 0x8a, 0x80, 0x27, 0xec, 0x86, 0x63, 0xf6, 0x4c, 0x7f, 0x0d, 0x23, 0xa7, 0xd0,
0xad, 0xe3, 0x42, 0x5d, 0x61, 0x6f, 0xab, 0x1d, 0xdd, 0x43, 0xc9, 0x25, 0xec, 0x4e, 0x0a, 0x51,
0x02, 0x35, 0x1f, 0x0a, 0xbb, 0xb9, 0x49, 0xdb, 0xe2, 0x47, 0xe8, 0xaf, 0x8b, 0xe7, 0x77, 0x26,
0x75, 0x8c, 0x82, 0x9c, 0xc1, 0x7f, 0xb7, 0x2c, 0x93, 0x39, 0x8d, 0x2b, 0x5f, 0xa8, 0x2d, 0x0b,
0xbb, 0xa5, 0xae, 0xfd, 0xa7, 0x4c, 0x96, 0xde, 0xd0, 0x77, 0xbf, 0x84, 0xff, 0xe7, 0xb3, 0x85,
0x60, 0xe1, 0x83, 0xa6, 0x1d, 0xd5, 0xf4, 0x6f, 0x95, 0x5d, 0xeb, 0x7a, 0x03, 0x47, 0xf5, 0x0c,
0x81, 0x56, 0x25, 0x52, 0x4a, 0x09, 0x49, 0x93, 0xb9, 0xb0, 0x2d, 0xc7, 0xec, 0x35, 0xfc, 0xc3,
0xba, 0xe6, 0x42, 0x97, 0x8c, 0xea, 0x0a, 0xf7, 0xa7, 0x01, 0xfb, 0x37, 0x38, 0x4d, 0x90, 0xcb,
0xa5, 0x17, 0x5c, 0xe8, 0x84, 0xcb, 0xb5, 0x56, 0xeb, 0x5c, 0xc3, 0x88, 0x03, 0xed, 0x15, 0x91,
0x4b, 0x67, 0xac, 0x42, 0xe4, 0x08, 0x2c, 0x51, 0x9e, 0xec, 0xa9, 0xcd, 0x99, 0xfe, 0x12, 0xd0,
0x7e, 0x2b, 0x44, 0xd3, 0xbf, 0xac, 0xf2, 0x9b, 0x0a, 0x57, 0xfd, 0xb6, 0xbd, 0xee, 0x7d, 0x1b,
0x5a, 0xe3, 0x9c, 0xa9, 0x9e, 0xa6, 0xce, 0x94, 0x21, 0x39, 0x86, 0x0e, 0x72, 0x3a, 0x8e, 0x51,
0xef, 0xce, 0x6e, 0x39, 0x46, 0x6f, 0xc7, 0x6f, 0x6b, 0x4c, 0x0d, 0xe6, 0xfe, 0x32, 0x56, 0xcd,
0xba, 0xf1, 0x1d, 0xf8, 0xdb, 0x66, 0x7d, 0x0c, 0x50, 0x0b, 0x50, 0x59, 0x75, 0x05, 0x21, 0x27,
0x2b, 0x46, 0x0d, 0x24, 0x9d, 0x56, 0x46, 0xdd, 0xad, 0xd1, 0x11, 0x9d, 0x8a, 0x07, 0x9e, 0x6f,
0x3e, 0xf4, 0xfc, 0xbb, 0xf3, 0xcf, 0x2f, 0xa6, 0x4c, 0xce, 0xf2, 0x71, 0xf1, 0x16, 0x0c, 0xf4,
0x18, 0xcf, 0x59, 0x5a, 0x7e, 0x0d, 0x18, 0x97, 0x98, 0x71, 0x1a, 0x0f, 0xd4, 0x64, 0x83, 0xc2,
0xd3, 0xf3, 0xf1, 0xb8, 0xa9, 0xa2, 0xf3, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbd, 0xeb, 0x22,
0x81, 0x0b, 0x06, 0x00, 0x00,
// 715 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0x4d, 0x6f, 0xdb, 0x38,
0x10, 0x85, 0x22, 0xc7, 0x8e, 0xc6, 0x8e, 0x93, 0x70, 0x3f, 0x40, 0x04, 0xd9, 0x5d, 0x45, 0x40,
0xb2, 0x02, 0x16, 0x6b, 0x63, 0x93, 0x45, 0x6f, 0x05, 0xda, 0x46, 0x08, 0x60, 0x14, 0x0d, 0x52,
0xc5, 0xe8, 0xa1, 0x17, 0x81, 0x96, 0x68, 0x9b, 0x80, 0x48, 0xb9, 0x22, 0x15, 0xc4, 0xb7, 0x9e,
0xfb, 0x13, 0xfa, 0xe7, 0x7a, 0xec, 0xa1, 0x7f, 0xa2, 0x10, 0x29, 0xc9, 0x76, 0xe2, 0x1e, 0x7b,
0xd3, 0xbc, 0x99, 0x21, 0xdf, 0xbc, 0x79, 0x14, 0x1c, 0x50, 0x15, 0x27, 0x11, 0xa7, 0x8a, 0x0c,
0x16, 0x79, 0xa6, 0x32, 0x74, 0xc4, 0x59, 0x7a, 0x5f, 0x48, 0x13, 0x0d, 0xca, 0xec, 0x71, 0x2f,
0xce, 0x38, 0xcf, 0x84, 0x81, 0x8e, 0x7b, 0x32, 0x9e, 0x53, 0x5e, 0x95, 0x7b, 0x9f, 0x2d, 0x80,
0x31, 0x15, 0x44, 0xa8, 0x37, 0x54, 0x11, 0xd4, 0x87, 0x9d, 0x51, 0x80, 0x2d, 0xd7, 0xf2, 0xed,
0x70, 0x67, 0x14, 0xa0, 0x73, 0x38, 0x10, 0x05, 0x8f, 0x3e, 0x14, 0x34, 0x5f, 0x46, 0x22, 0x4b,
0xa8, 0xc4, 0x3b, 0x3a, 0xb9, 0x2f, 0x0a, 0xfe, 0xb6, 0x44, 0x6f, 0x4a, 0x10, 0xfd, 0x03, 0x47,
0x4c, 0x48, 0x9a, 0xab, 0x28, 0x9e, 0x13, 0x21, 0x68, 0x3a, 0x0a, 0x24, 0xb6, 0x5d, 0xdb, 0x77,
0xc2, 0x43, 0x93, 0xb8, 0x6a, 0x70, 0xf4, 0x37, 0x1c, 0x98, 0x03, 0x9b, 0x5a, 0xdc, 0x72, 0x2d,
0xdf, 0x09, 0xfb, 0x1a, 0x6e, 0x2a, 0xbd, 0x8f, 0x16, 0x38, 0xb7, 0x79, 0xf6, 0xb0, 0xdc, 0xca,
0xed, 0x19, 0x74, 0x48, 0x92, 0xe4, 0x54, 0x1a, 0x4e, 0xdd, 0x8b, 0x93, 0xc1, 0xc6, 0xec, 0xd5,
0xd4, 0x2f, 0x4d, 0x4d, 0x58, 0x17, 0x97, 0x5c, 0x73, 0x2a, 0x8b, 0x74, 0x1b, 0x57, 0x93, 0x58,
0x71, 0xf5, 0x3e, 0x59, 0xe0, 0x8c, 0x44, 0x42, 0x1f, 0x46, 0x62, 0x9a, 0xa1, 0x3f, 0x00, 0x58,
0x19, 0x44, 0x82, 0x70, 0xaa, 0xa9, 0x38, 0xa1, 0xa3, 0x91, 0x1b, 0xc2, 0x29, 0xc2, 0xd0, 0xd1,
0xc1, 0x28, 0xa8, 0x54, 0xaa, 0x43, 0x14, 0x40, 0xcf, 0x34, 0x2e, 0x48, 0x4e, 0xb8, 0xb9, 0xae,
0x7b, 0x71, 0xba, 0x95, 0xf0, 0x6b, 0xba, 0x7c, 0x47, 0xd2, 0x82, 0xde, 0x12, 0x96, 0x87, 0x5d,
0xdd, 0x76, 0xab, 0xbb, 0xbc, 0x00, 0xfa, 0xd7, 0x8c, 0xa6, 0xc9, 0x8a, 0x10, 0x86, 0xce, 0x94,
0xa5, 0x34, 0x69, 0x84, 0xa9, 0xc3, 0x1f, 0x73, 0xf1, 0xbe, 0xd8, 0xd0, 0xbf, 0xca, 0xd2, 0x94,
0xc6, 0x8a, 0x65, 0x42, 0x1f, 0xf3, 0x58, 0xda, 0xe7, 0xd0, 0x36, 0x2e, 0xa9, 0x94, 0x3d, 0xdb,
0x24, 0x5a, 0x39, 0x68, 0x75, 0xc8, 0x9d, 0x06, 0xc2, 0xaa, 0x09, 0xfd, 0x05, 0xdd, 0x38, 0xa7,
0x44, 0xd1, 0x48, 0x31, 0x4e, 0xb1, 0xed, 0x5a, 0x7e, 0x2b, 0x04, 0x03, 0x8d, 0x19, 0xa7, 0xc8,
0x83, 0xde, 0x82, 0xe4, 0x8a, 0x69, 0x02, 0x81, 0xc4, 0x2d, 0xd7, 0xf6, 0xed, 0x70, 0x03, 0x43,
0xe7, 0xd0, 0x6f, 0xe2, 0x52, 0x5d, 0x89, 0x77, 0xf5, 0x8e, 0x1e, 0xa1, 0xe8, 0x1a, 0xf6, 0xa7,
0xa5, 0x28, 0x91, 0x9e, 0x8f, 0x4a, 0xdc, 0xde, 0xa6, 0x6d, 0xf9, 0x10, 0x06, 0x9b, 0xe2, 0x85,
0xbd, 0x69, 0x13, 0x53, 0x89, 0x2e, 0xe0, 0xb7, 0x7b, 0x96, 0xab, 0x82, 0xa4, 0xb5, 0x2f, 0xf4,
0x96, 0x25, 0xee, 0xe8, 0x6b, 0x7f, 0xa9, 0x92, 0x95, 0x37, 0xcc, 0xdd, 0xff, 0xc3, 0xef, 0x8b,
0xf9, 0x52, 0xb2, 0xf8, 0x49, 0xd3, 0x9e, 0x6e, 0xfa, 0xb5, 0xce, 0x6e, 0x74, 0xbd, 0x80, 0x93,
0x66, 0x86, 0xc8, 0xa8, 0x92, 0x68, 0xa5, 0xa4, 0x22, 0x7c, 0x21, 0xb1, 0xe3, 0xda, 0x7e, 0x2b,
0x3c, 0x6e, 0x6a, 0xae, 0x4c, 0xc9, 0xb8, 0xa9, 0x28, 0x7d, 0x28, 0xe7, 0x24, 0x4f, 0x64, 0x24,
0x0a, 0x8e, 0xc1, 0xb5, 0xfc, 0xdd, 0xd0, 0x31, 0xc8, 0x4d, 0xc1, 0xbd, 0xaf, 0x16, 0x1c, 0xde,
0xd1, 0x19, 0xa7, 0x42, 0xad, 0xac, 0xe2, 0x41, 0x2f, 0x5e, 0x6d, 0xbd, 0xde, 0xf6, 0x06, 0x86,
0x5c, 0xe8, 0xae, 0xed, 0xa0, 0x32, 0xce, 0x3a, 0x84, 0x4e, 0xc0, 0x91, 0xd5, 0xc9, 0x81, 0x5e,
0xac, 0x1d, 0xae, 0x00, 0x63, 0xc7, 0x52, 0x53, 0xf3, 0xa2, 0xb5, 0x1d, 0x75, 0xb8, 0x6e, 0xc7,
0xdd, 0xcd, 0xa7, 0x81, 0xa1, 0x33, 0x29, 0x98, 0xee, 0x69, 0x9b, 0x4c, 0x15, 0xa2, 0x53, 0xe8,
0x51, 0x41, 0x26, 0x29, 0x35, 0xab, 0xc5, 0x1d, 0xd7, 0xf2, 0xf7, 0xc2, 0xae, 0xc1, 0xf4, 0x60,
0xde, 0x37, 0x6b, 0xdd, 0xcb, 0x5b, 0x7f, 0x13, 0x3f, 0xdb, 0xcb, 0x7f, 0x02, 0x34, 0x02, 0xd4,
0x4e, 0x5e, 0x43, 0xd0, 0xd9, 0x9a, 0x8f, 0x23, 0x45, 0x66, 0xb5, 0x8f, 0xf7, 0x1b, 0x74, 0x4c,
0x66, 0xf2, 0xc9, 0x93, 0x68, 0x3f, 0x7d, 0x12, 0xaf, 0x2e, 0xdf, 0xff, 0x37, 0x63, 0x6a, 0x5e,
0x4c, 0xca, 0x5f, 0xc5, 0xd0, 0x8c, 0xf1, 0x2f, 0xcb, 0xaa, 0xaf, 0x21, 0x13, 0x8a, 0xe6, 0x82,
0xa4, 0x43, 0x3d, 0xd9, 0xb0, 0xb4, 0xfc, 0x62, 0x32, 0x69, 0xeb, 0xe8, 0xf2, 0x7b, 0x00, 0x00,
0x00, 0xff, 0xff, 0x4a, 0x04, 0x49, 0x0f, 0x2a, 0x06, 0x00, 0x00,
}

View File

@ -97,6 +97,7 @@ message DescribeCollectionResponse {
repeated string physical_channel_names = 5;
uint64 created_timestamp = 6; // hybrid timestamp
uint64 created_utc_timestamp = 7; // physical timestamp
int32 shards_num = 8; // shards number
}
message LoadCollectionRequest {

View File

@ -442,6 +442,7 @@ type DescribeCollectionResponse struct {
PhysicalChannelNames []string `protobuf:"bytes,5,rep,name=physical_channel_names,json=physicalChannelNames,proto3" json:"physical_channel_names,omitempty"`
CreatedTimestamp uint64 `protobuf:"varint,6,opt,name=created_timestamp,json=createdTimestamp,proto3" json:"created_timestamp,omitempty"`
CreatedUtcTimestamp uint64 `protobuf:"varint,7,opt,name=created_utc_timestamp,json=createdUtcTimestamp,proto3" json:"created_utc_timestamp,omitempty"`
ShardsNum int32 `protobuf:"varint,8,opt,name=shards_num,json=shardsNum,proto3" json:"shards_num,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -521,6 +522,13 @@ func (m *DescribeCollectionResponse) GetCreatedUtcTimestamp() uint64 {
return 0
}
func (m *DescribeCollectionResponse) GetShardsNum() int32 {
if m != nil {
return m.ShardsNum
}
return 0
}
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"`
@ -4079,196 +4087,197 @@ func init() {
func init() { proto.RegisterFile("milvus.proto", fileDescriptor_02345ba45cc0e303) }
var fileDescriptor_02345ba45cc0e303 = []byte{
// 3022 bytes of a gzipped FileDescriptorProto
// 3026 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x3a, 0x4b, 0x6f, 0x1c, 0xc7,
0xd1, 0x9c, 0x5d, 0xee, 0xab, 0x76, 0x96, 0x5c, 0x35, 0x1f, 0x5a, 0xaf, 0x25, 0x8b, 0x1c, 0x7f,
0xb2, 0x29, 0xc9, 0x96, 0x2c, 0xca, 0xfe, 0xec, 0xcf, 0xfe, 0x12, 0x5b, 0x12, 0x63, 0x89, 0xb0,
0xe4, 0xd0, 0x43, 0xdb, 0x80, 0x63, 0x18, 0x83, 0xe1, 0x4e, 0x73, 0x39, 0xe0, 0xec, 0xcc, 0x66,
0xba, 0x57, 0xd4, 0xfa, 0x14, 0xc0, 0x49, 0x80, 0xc0, 0x8e, 0x8d, 0x20, 0x41, 0x82, 0x5c, 0x93,
0xf8, 0x90, 0x5b, 0x9c, 0x04, 0x48, 0x90, 0x43, 0x90, 0x83, 0x0f, 0x39, 0x04, 0xc8, 0xe3, 0x90,
0x73, 0x2e, 0x39, 0xfa, 0x1f, 0x04, 0x48, 0xd0, 0x8f, 0x99, 0x9d, 0x59, 0xf6, 0x2c, 0x97, 0x5a,
0x3b, 0x24, 0x6f, 0x33, 0xd5, 0x55, 0xdd, 0x55, 0xd5, 0xd5, 0xd5, 0x55, 0x5d, 0x05, 0x7a, 0xc7,
0xf5, 0xee, 0xf5, 0xc8, 0xe5, 0x6e, 0x18, 0xd0, 0x00, 0xcd, 0x25, 0xff, 0x2e, 0x8b, 0x9f, 0xa6,
0xde, 0x0a, 0x3a, 0x9d, 0xc0, 0x17, 0xc0, 0xa6, 0x4e, 0x5a, 0x3b, 0xb8, 0x63, 0x8b, 0x3f, 0xe3,
0x53, 0x0d, 0x4e, 0xdf, 0x0c, 0xb1, 0x4d, 0xf1, 0xcd, 0xc0, 0xf3, 0x70, 0x8b, 0xba, 0x81, 0x6f,
0xe2, 0xaf, 0xf7, 0x30, 0xa1, 0xe8, 0x29, 0x98, 0xde, 0xb2, 0x09, 0x6e, 0x68, 0x4b, 0xda, 0x4a,
0x75, 0xf5, 0xcc, 0xe5, 0xd4, 0xdc, 0x72, 0xce, 0xbb, 0xa4, 0x7d, 0xc3, 0x26, 0xd8, 0xe4, 0x98,
0xe8, 0x34, 0x94, 0x9c, 0x2d, 0xcb, 0xb7, 0x3b, 0xb8, 0x91, 0x5b, 0xd2, 0x56, 0x2a, 0x66, 0xd1,
0xd9, 0x7a, 0xd5, 0xee, 0x60, 0xf4, 0x38, 0xcc, 0xb6, 0xe2, 0xf9, 0x05, 0x42, 0x9e, 0x23, 0xcc,
0x0c, 0xc0, 0x1c, 0x71, 0x11, 0x8a, 0x82, 0xbf, 0xc6, 0xf4, 0x92, 0xb6, 0xa2, 0x9b, 0xf2, 0x0f,
0x9d, 0x05, 0x20, 0x3b, 0x76, 0xe8, 0x10, 0xcb, 0xef, 0x75, 0x1a, 0x85, 0x25, 0x6d, 0xa5, 0x60,
0x56, 0x04, 0xe4, 0xd5, 0x5e, 0xc7, 0x78, 0x5f, 0x83, 0x85, 0xb5, 0x30, 0xe8, 0x1e, 0x0b, 0x21,
0x8c, 0x9f, 0x6b, 0x30, 0x7f, 0xdb, 0x26, 0xc7, 0x43, 0xa3, 0x67, 0x01, 0xa8, 0xdb, 0xc1, 0x16,
0xa1, 0x76, 0xa7, 0xcb, 0xb5, 0x3a, 0x6d, 0x56, 0x18, 0x64, 0x93, 0x01, 0x8c, 0xb7, 0x40, 0xbf,
0x11, 0x04, 0x9e, 0x89, 0x49, 0x37, 0xf0, 0x09, 0x46, 0xd7, 0xa0, 0x48, 0xa8, 0x4d, 0x7b, 0x44,
0x32, 0xf9, 0xb0, 0x92, 0xc9, 0x4d, 0x8e, 0x62, 0x4a, 0x54, 0x34, 0x0f, 0x85, 0x7b, 0xb6, 0xd7,
0x13, 0x3c, 0x96, 0x4d, 0xf1, 0x63, 0xbc, 0x0d, 0x33, 0x9b, 0x34, 0x74, 0xfd, 0xf6, 0xe7, 0x38,
0x79, 0x25, 0x9a, 0xfc, 0x6f, 0x1a, 0x3c, 0xb4, 0x86, 0x49, 0x2b, 0x74, 0xb7, 0x8e, 0x89, 0xe9,
0x1a, 0xa0, 0x0f, 0x20, 0xeb, 0x6b, 0x5c, 0xd5, 0x79, 0x33, 0x05, 0x1b, 0xda, 0x8c, 0xc2, 0xf0,
0x66, 0xfc, 0x3b, 0x07, 0x4d, 0x95, 0x50, 0x93, 0xa8, 0xef, 0x4b, 0xf1, 0x89, 0xca, 0x71, 0xa2,
0xf3, 0x69, 0x22, 0xe9, 0x0d, 0x06, 0xab, 0x6d, 0x72, 0x40, 0x7c, 0xf0, 0x86, 0xa5, 0xca, 0x2b,
0xa4, 0x5a, 0x85, 0x85, 0x7b, 0x6e, 0x48, 0x7b, 0xb6, 0x67, 0xb5, 0x76, 0x6c, 0xdf, 0xc7, 0x1e,
0xd7, 0x13, 0x69, 0x4c, 0x2f, 0xe5, 0x57, 0x2a, 0xe6, 0x9c, 0x1c, 0xbc, 0x29, 0xc6, 0x98, 0xb2,
0x08, 0x7a, 0x1a, 0x16, 0xbb, 0x3b, 0x7d, 0xe2, 0xb6, 0xf6, 0x11, 0x15, 0x38, 0xd1, 0x7c, 0x34,
0x9a, 0xa2, 0xba, 0x04, 0xa7, 0x5a, 0xdc, 0x5b, 0x39, 0x16, 0xd3, 0x9a, 0x50, 0x63, 0x91, 0xab,
0xb1, 0x2e, 0x07, 0x5e, 0x8f, 0xe0, 0x8c, 0xad, 0x08, 0xb9, 0x47, 0x5b, 0x09, 0x82, 0x12, 0x27,
0x98, 0x93, 0x83, 0x6f, 0xd0, 0x56, 0x4c, 0xc3, 0x1d, 0xc9, 0x9d, 0xc0, 0x76, 0x8e, 0x87, 0x23,
0xf9, 0x50, 0x83, 0x86, 0x89, 0x3d, 0x6c, 0x93, 0xe3, 0x61, 0xe3, 0xc6, 0x0f, 0x34, 0x78, 0xe4,
0x16, 0xa6, 0x09, 0x6b, 0xa1, 0x36, 0x75, 0x09, 0x75, 0x5b, 0xe4, 0x28, 0xd9, 0xfa, 0x48, 0x83,
0x73, 0x99, 0x6c, 0x4d, 0x72, 0x78, 0x9e, 0x85, 0x02, 0xfb, 0x22, 0x8d, 0xdc, 0x52, 0x7e, 0xa5,
0xba, 0xba, 0xac, 0xa4, 0x79, 0x05, 0xf7, 0xdf, 0x64, 0x3e, 0x69, 0xc3, 0x76, 0x43, 0x53, 0xe0,
0x1b, 0xff, 0xd0, 0x60, 0x71, 0x73, 0x27, 0xd8, 0x1b, 0xb0, 0xf4, 0x45, 0x28, 0x28, 0xed, 0x4e,
0xf2, 0x43, 0xee, 0x04, 0x5d, 0x85, 0x69, 0xda, 0xef, 0x62, 0xee, 0x89, 0x66, 0x56, 0xcf, 0x5e,
0x56, 0x04, 0x07, 0x97, 0x19, 0x93, 0xaf, 0xf7, 0xbb, 0xd8, 0xe4, 0xa8, 0xe8, 0x02, 0xd4, 0x87,
0x54, 0x1e, 0x1d, 0xc8, 0xd9, 0xb4, 0xce, 0x89, 0xf1, 0xdb, 0x1c, 0x9c, 0xde, 0x27, 0xe2, 0x24,
0xca, 0x56, 0xad, 0x9d, 0x53, 0xae, 0x8d, 0xce, 0x43, 0xc2, 0x04, 0x2c, 0xd7, 0x21, 0x8d, 0xfc,
0x52, 0x7e, 0x25, 0x6f, 0xd6, 0x12, 0x7e, 0xc9, 0x21, 0xe8, 0x49, 0x40, 0xfb, 0xdc, 0x85, 0xf0,
0x4a, 0xd3, 0xe6, 0xa9, 0x61, 0x7f, 0xc1, 0x7d, 0x92, 0xd2, 0x61, 0x08, 0x15, 0x4c, 0x9b, 0xf3,
0x0a, 0x8f, 0x41, 0xd0, 0x55, 0x98, 0x77, 0xfd, 0xbb, 0xb8, 0x13, 0x84, 0x7d, 0xab, 0x8b, 0xc3,
0x16, 0xf6, 0xa9, 0xdd, 0xc6, 0xa4, 0x51, 0xe4, 0x1c, 0xcd, 0x45, 0x63, 0x1b, 0x83, 0x21, 0xe3,
0x57, 0x1a, 0x2c, 0x8a, 0xa8, 0x6b, 0xc3, 0x0e, 0xa9, 0x7b, 0xd4, 0x37, 0xd7, 0x79, 0x98, 0xe9,
0x46, 0x7c, 0x08, 0xbc, 0x69, 0x8e, 0x57, 0x8b, 0xa1, 0xfc, 0x94, 0x7d, 0xa2, 0xc1, 0x3c, 0x0b,
0xb2, 0x4e, 0x12, 0xcf, 0xbf, 0xd0, 0x60, 0xee, 0xb6, 0x4d, 0x4e, 0x12, 0xcb, 0xbf, 0x96, 0x57,
0x50, 0xcc, 0xf3, 0x51, 0xba, 0x56, 0x86, 0x98, 0x66, 0x3a, 0xba, 0xd5, 0x67, 0x52, 0x5c, 0x13,
0xe3, 0x37, 0x83, 0xbb, 0xea, 0x84, 0x71, 0xfe, 0x3b, 0x0d, 0xce, 0xde, 0xc2, 0x34, 0xe6, 0xfa,
0x58, 0xdc, 0x69, 0xe3, 0x5a, 0xcb, 0x87, 0xe2, 0x46, 0x56, 0x32, 0x7f, 0x24, 0x37, 0xdf, 0xfb,
0x39, 0x58, 0x60, 0xd7, 0xc2, 0xf1, 0x30, 0x82, 0x71, 0x82, 0x72, 0x85, 0xa1, 0x14, 0x54, 0x86,
0x12, 0xdf, 0xa7, 0xc5, 0xb1, 0xef, 0x53, 0xe3, 0x97, 0x39, 0x11, 0x07, 0x24, 0xb5, 0x31, 0xc9,
0xb6, 0x28, 0x78, 0xcd, 0x29, 0x79, 0x35, 0x40, 0x8f, 0x21, 0xeb, 0x6b, 0xd1, 0xfd, 0x98, 0x82,
0x1d, 0xdb, 0xeb, 0xf1, 0x03, 0x0d, 0x16, 0xa3, 0x34, 0x68, 0x13, 0xb7, 0x3b, 0xd8, 0xa7, 0x0f,
0x6e, 0x43, 0xc3, 0x16, 0x90, 0x53, 0x58, 0xc0, 0x19, 0xa8, 0x10, 0xb1, 0x4e, 0x9c, 0xe1, 0x0c,
0x00, 0xc6, 0xc7, 0x1a, 0x9c, 0xde, 0xc7, 0xce, 0x24, 0x9b, 0xd8, 0x80, 0x92, 0xeb, 0x3b, 0xf8,
0x7e, 0xcc, 0x4d, 0xf4, 0xcb, 0x46, 0xb6, 0x7a, 0xae, 0xe7, 0xc4, 0x6c, 0x44, 0xbf, 0x68, 0x19,
0x74, 0xec, 0xdb, 0x5b, 0x1e, 0xb6, 0x38, 0x2e, 0x37, 0xe4, 0xb2, 0x59, 0x15, 0xb0, 0x75, 0x06,
0x32, 0xbe, 0xab, 0xc1, 0x1c, 0xb3, 0x35, 0xc9, 0x23, 0xf9, 0x62, 0x75, 0xb6, 0x04, 0xd5, 0x84,
0x31, 0x49, 0x76, 0x93, 0x20, 0x63, 0x17, 0xe6, 0xd3, 0xec, 0x4c, 0xa2, 0xb3, 0x47, 0x00, 0xe2,
0x1d, 0x11, 0x36, 0x9f, 0x37, 0x13, 0x10, 0xe3, 0x33, 0x0d, 0x90, 0x08, 0xa9, 0xb8, 0x32, 0x8e,
0xf8, 0xc5, 0x65, 0xdb, 0xc5, 0x9e, 0x93, 0xf4, 0xda, 0x15, 0x0e, 0xe1, 0xc3, 0x6b, 0xa0, 0xe3,
0xfb, 0x34, 0xb4, 0xad, 0xae, 0x1d, 0xda, 0x1d, 0x71, 0x78, 0xc6, 0x72, 0xb0, 0x55, 0x4e, 0xb6,
0xc1, 0xa9, 0x8c, 0x3f, 0xb2, 0x60, 0x4c, 0x1a, 0xe5, 0x71, 0x97, 0xf8, 0x2c, 0x00, 0x37, 0x5a,
0x31, 0x5c, 0x10, 0xc3, 0x1c, 0xc2, 0xaf, 0xb0, 0x8f, 0x35, 0xa8, 0x73, 0x11, 0x84, 0x3c, 0x5d,
0x36, 0xed, 0x10, 0x8d, 0x36, 0x44, 0x33, 0xe2, 0x08, 0xfd, 0x1f, 0x14, 0xa5, 0x62, 0xf3, 0xe3,
0x2a, 0x56, 0x12, 0x1c, 0x20, 0x86, 0xf1, 0x13, 0x0d, 0x16, 0x86, 0x54, 0x3e, 0x89, 0x45, 0xbf,
0x0e, 0x48, 0x48, 0xe8, 0x0c, 0xc4, 0x8e, 0xae, 0xdb, 0xf3, 0xca, 0xbb, 0x65, 0x58, 0x49, 0xe6,
0x29, 0x77, 0x08, 0x42, 0x8c, 0xbf, 0x68, 0x70, 0xe6, 0x16, 0xa6, 0x1c, 0xf5, 0x06, 0xf3, 0x1d,
0x1b, 0x61, 0xd0, 0x0e, 0x31, 0x21, 0x27, 0xd7, 0x3e, 0x7e, 0x28, 0xe2, 0x33, 0x95, 0x48, 0x93,
0xe8, 0x7f, 0x19, 0x74, 0xbe, 0x06, 0x76, 0xac, 0x30, 0xd8, 0x23, 0xd2, 0x8e, 0xaa, 0x12, 0x66,
0x06, 0x7b, 0xdc, 0x20, 0x68, 0x40, 0x6d, 0x4f, 0x20, 0xc8, 0x8b, 0x81, 0x43, 0xd8, 0x30, 0x3f,
0x83, 0x11, 0x63, 0x6c, 0x72, 0x7c, 0x72, 0x75, 0xfc, 0x33, 0x0d, 0x16, 0x86, 0x44, 0x99, 0x44,
0xb7, 0xcf, 0x88, 0xe8, 0x51, 0x08, 0x33, 0xb3, 0x7a, 0x4e, 0x49, 0x93, 0x58, 0x4c, 0x60, 0xa3,
0x73, 0x50, 0xdd, 0xb6, 0x5d, 0xcf, 0x0a, 0xb1, 0x4d, 0x02, 0x5f, 0x0a, 0x0a, 0x0c, 0x64, 0x72,
0x88, 0xf1, 0xa9, 0x06, 0x75, 0x96, 0x82, 0x9e, 0x70, 0x8f, 0xf7, 0xd3, 0x1c, 0xd4, 0xd6, 0x7d,
0x82, 0x43, 0x7a, 0xfc, 0x33, 0x0c, 0xf4, 0x22, 0x54, 0xb9, 0x60, 0xc4, 0x72, 0x6c, 0x6a, 0xcb,
0xeb, 0xea, 0x11, 0xe5, 0x2b, 0xf2, 0xcb, 0x0c, 0x6f, 0xcd, 0xa6, 0xb6, 0x29, 0xb4, 0x43, 0xd8,
0x37, 0x7a, 0x18, 0x2a, 0x3b, 0x36, 0xd9, 0xb1, 0x76, 0x71, 0x5f, 0x84, 0x7d, 0x35, 0xb3, 0xcc,
0x00, 0xaf, 0xe0, 0x3e, 0x41, 0x0f, 0x41, 0xd9, 0xef, 0x75, 0xc4, 0x01, 0x2b, 0x2d, 0x69, 0x2b,
0x35, 0xb3, 0xe4, 0xf7, 0x3a, 0xfc, 0x78, 0xfd, 0x29, 0x07, 0x33, 0x77, 0x7b, 0x2c, 0x9f, 0xe1,
0x6f, 0xe0, 0x3d, 0x8f, 0x3e, 0x98, 0x31, 0x5e, 0x84, 0xbc, 0x88, 0x19, 0x18, 0x45, 0x43, 0xc9,
0xf8, 0xfa, 0x1a, 0x31, 0x19, 0x12, 0xaf, 0x33, 0xf5, 0x5a, 0x2d, 0x19, 0x64, 0xe5, 0x39, 0xb3,
0x15, 0x06, 0xe1, 0x16, 0xc7, 0x44, 0xc1, 0x61, 0x18, 0x87, 0x60, 0x5c, 0x14, 0x1c, 0x86, 0x62,
0xd0, 0x00, 0xdd, 0x6e, 0xed, 0xfa, 0xc1, 0x9e, 0x87, 0x9d, 0x36, 0x76, 0xf8, 0xb6, 0x97, 0xcd,
0x14, 0x4c, 0x18, 0x06, 0xdb, 0x78, 0xab, 0xe5, 0x53, 0x9e, 0x48, 0xe4, 0x99, 0x61, 0x30, 0xc8,
0x4d, 0x9f, 0xb2, 0x61, 0x07, 0x7b, 0x98, 0x62, 0x3e, 0x5c, 0x12, 0xc3, 0x02, 0x22, 0x87, 0x7b,
0xdd, 0x98, 0xba, 0x2c, 0x86, 0x05, 0x84, 0x0d, 0x9f, 0x81, 0xca, 0xe0, 0x91, 0xbb, 0x32, 0x78,
0x0d, 0x14, 0x4f, 0xdb, 0xbf, 0xd7, 0xa0, 0xb6, 0xc6, 0xa7, 0x3a, 0x01, 0x46, 0x87, 0x60, 0x1a,
0xdf, 0xef, 0x86, 0xf2, 0xe8, 0xf0, 0x6f, 0xe3, 0x1e, 0xd4, 0x37, 0x3c, 0xbb, 0x85, 0x77, 0x02,
0xcf, 0xc1, 0x21, 0xbf, 0xbe, 0x51, 0x1d, 0xf2, 0xd4, 0x6e, 0xcb, 0xf8, 0x80, 0x7d, 0xa2, 0xe7,
0x64, 0x92, 0x26, 0x3c, 0xcf, 0xff, 0x28, 0x2f, 0xd2, 0xc4, 0x34, 0x89, 0xb7, 0xcf, 0x45, 0x28,
0xf2, 0xda, 0x92, 0x88, 0x1c, 0x74, 0x53, 0xfe, 0x19, 0xef, 0xa4, 0xd6, 0xbd, 0x15, 0x06, 0xbd,
0x2e, 0x5a, 0x07, 0xbd, 0x3b, 0x80, 0x31, 0x73, 0xcc, 0xbe, 0xb6, 0x87, 0x99, 0x36, 0x53, 0xa4,
0xc6, 0x67, 0x79, 0xa8, 0x6d, 0x62, 0x3b, 0x6c, 0xed, 0x9c, 0x84, 0xd7, 0x12, 0xa6, 0x71, 0x87,
0x78, 0x72, 0x63, 0xd8, 0x27, 0xba, 0x04, 0xa7, 0x12, 0x02, 0x59, 0x6d, 0xa6, 0x20, 0x6e, 0xda,
0xba, 0x59, 0xef, 0x0e, 0x2b, 0xee, 0x59, 0x28, 0x3b, 0xc4, 0xb3, 0xf8, 0x16, 0x95, 0xf8, 0x16,
0xa9, 0xe5, 0x5b, 0x23, 0x1e, 0xdf, 0x9a, 0x92, 0x23, 0x3e, 0xd0, 0xa3, 0x50, 0x0b, 0x7a, 0xb4,
0xdb, 0xa3, 0x96, 0x70, 0x2d, 0x8d, 0x32, 0x67, 0x4f, 0x17, 0x40, 0xee, 0x79, 0x08, 0x7a, 0x19,
0x6a, 0x84, 0xab, 0x32, 0x0a, 0xae, 0x2b, 0xe3, 0xc6, 0x80, 0xba, 0xa0, 0x13, 0xd1, 0x35, 0xba,
0x00, 0x75, 0x1a, 0xda, 0xf7, 0xb0, 0x97, 0xa8, 0x1a, 0x01, 0x3f, 0x50, 0xb3, 0x02, 0x3e, 0xa8,
0x32, 0x5d, 0x81, 0xb9, 0x76, 0xcf, 0x0e, 0x6d, 0x9f, 0x62, 0x9c, 0xc0, 0xae, 0x72, 0x6c, 0x14,
0x0f, 0x0d, 0x4a, 0x4c, 0xaf, 0xc0, 0xf4, 0x6d, 0x97, 0x72, 0x45, 0x32, 0xb7, 0xa4, 0xf1, 0x54,
0x86, 0x3b, 0x9f, 0x87, 0xa0, 0x1c, 0x06, 0x7b, 0xc2, 0xcd, 0xe6, 0xb8, 0x09, 0x96, 0xc2, 0x60,
0x8f, 0xfb, 0x50, 0x5e, 0x17, 0x0f, 0x42, 0x69, 0x9b, 0x39, 0x53, 0xfe, 0x19, 0xdf, 0xd2, 0x06,
0xc6, 0xc3, 0x3c, 0x24, 0x79, 0x30, 0x17, 0xf9, 0x22, 0x94, 0x42, 0x41, 0x3f, 0xb2, 0x4a, 0x98,
0x5c, 0x89, 0xbb, 0xf9, 0x88, 0xca, 0xf8, 0xa6, 0x06, 0xfa, 0xcb, 0x5e, 0x8f, 0x7c, 0x11, 0x36,
0xac, 0xaa, 0x0b, 0xe4, 0xd5, 0x35, 0x89, 0xef, 0xe5, 0xa0, 0x26, 0xd9, 0x98, 0x24, 0x7c, 0xc9,
0x64, 0x65, 0x13, 0xaa, 0x6c, 0x49, 0x8b, 0xe0, 0x76, 0xf4, 0xa8, 0x52, 0x5d, 0x5d, 0x55, 0x9e,
0xfa, 0x14, 0x1b, 0xbc, 0xbe, 0xba, 0xc9, 0x89, 0xbe, 0xe2, 0xd3, 0xb0, 0x6f, 0x42, 0x2b, 0x06,
0x34, 0xdf, 0x81, 0xd9, 0xa1, 0x61, 0x66, 0x1b, 0xbb, 0xb8, 0x1f, 0xb9, 0xb5, 0x5d, 0xdc, 0x47,
0x4f, 0x27, 0xab, 0xe0, 0x59, 0xf7, 0xef, 0x9d, 0xc0, 0x6f, 0x5f, 0x0f, 0x43, 0xbb, 0x2f, 0xab,
0xe4, 0xcf, 0xe7, 0x9e, 0xd3, 0x8c, 0x3f, 0xe4, 0x40, 0x7f, 0xad, 0x87, 0xc3, 0xfe, 0x51, 0xba,
0x97, 0xc8, 0x9f, 0x4f, 0x0f, 0xfc, 0xf9, 0xfe, 0x13, 0x5d, 0x50, 0x9c, 0x68, 0x85, 0x5f, 0x2a,
0x2a, 0xfd, 0x92, 0xea, 0xc8, 0x96, 0x0e, 0x75, 0x64, 0xcb, 0x99, 0x47, 0x96, 0x59, 0xb7, 0x54,
0xe1, 0x44, 0x87, 0x2c, 0x15, 0x48, 0xe5, 0x0e, 0x1b, 0x48, 0x19, 0x9f, 0x68, 0x50, 0x79, 0x13,
0xb7, 0x68, 0x10, 0x32, 0x6f, 0xa1, 0xd0, 0xbd, 0x36, 0x46, 0xac, 0x9a, 0x1b, 0x8e, 0x55, 0xaf,
0x41, 0xd9, 0x75, 0x2c, 0x9b, 0x99, 0x0d, 0xdf, 0xbc, 0x51, 0x31, 0x52, 0xc9, 0x75, 0xb8, 0x7d,
0x8d, 0xff, 0xb8, 0xfe, 0x23, 0x0d, 0x74, 0xc1, 0x33, 0x11, 0x94, 0x2f, 0x24, 0x96, 0xd3, 0x54,
0xb6, 0x2c, 0x7f, 0x62, 0x41, 0x6f, 0x4f, 0x0d, 0x96, 0xbd, 0x0e, 0xc0, 0x74, 0x27, 0xc9, 0xc5,
0x51, 0x58, 0x52, 0x72, 0x2b, 0xc8, 0xb9, 0x1e, 0x6f, 0x4f, 0x99, 0x15, 0x46, 0xc5, 0xa7, 0xb8,
0x51, 0x82, 0x02, 0xa7, 0x36, 0xfe, 0xa5, 0xc1, 0xdc, 0x4d, 0xdb, 0x6b, 0xad, 0xb9, 0x84, 0xda,
0x7e, 0x6b, 0x82, 0xa8, 0xe8, 0x79, 0x28, 0x05, 0x5d, 0xcb, 0xc3, 0xdb, 0x54, 0xb2, 0xb4, 0x3c,
0x42, 0x22, 0xa1, 0x06, 0xb3, 0x18, 0x74, 0xef, 0xe0, 0x6d, 0x8a, 0xfe, 0x1f, 0xca, 0x41, 0xd7,
0x0a, 0xdd, 0xf6, 0x0e, 0x95, 0xda, 0x1f, 0x83, 0xb8, 0x14, 0x74, 0x4d, 0x46, 0x91, 0x78, 0xec,
0x98, 0x3e, 0xe4, 0x63, 0x87, 0xf1, 0xd7, 0x7d, 0xe2, 0x4f, 0x60, 0xda, 0xcf, 0x43, 0xd9, 0xf5,
0xa9, 0xe5, 0xb8, 0x24, 0x52, 0xc1, 0x59, 0xb5, 0x0d, 0xf9, 0x94, 0x4b, 0xc0, 0xf7, 0xd4, 0xa7,
0x6c, 0x6d, 0xf4, 0x12, 0xc0, 0xb6, 0x17, 0xd8, 0x92, 0x5a, 0xe8, 0xe0, 0x9c, 0xfa, 0x54, 0x30,
0xb4, 0x88, 0xbe, 0xc2, 0x89, 0xd8, 0x0c, 0x83, 0x2d, 0xfd, 0xb3, 0x06, 0x0b, 0x1b, 0x38, 0x24,
0x2e, 0xa1, 0xd8, 0xa7, 0xf2, 0xe1, 0x71, 0xdd, 0xdf, 0x0e, 0xd2, 0x2f, 0xbc, 0xda, 0xd0, 0x0b,
0xef, 0xe7, 0xf3, 0xde, 0x99, 0x4a, 0x65, 0x44, 0x9d, 0x21, 0x4a, 0x65, 0xa2, 0x6a, 0x8a, 0x48,
0x05, 0x67, 0x32, 0xb6, 0x49, 0xf2, 0x9b, 0xcc, 0x88, 0x8d, 0xef, 0x8b, 0xce, 0x06, 0xa5, 0x50,
0x0f, 0x6e, 0xb0, 0x8b, 0x20, 0x1d, 0xf8, 0x90, 0x3b, 0x7f, 0x0c, 0x86, 0x7c, 0x47, 0x46, 0xbf,
0xc5, 0x8f, 0x35, 0x58, 0xca, 0xe6, 0x6a, 0x92, 0x9b, 0xf7, 0x25, 0x28, 0xb8, 0xfe, 0x76, 0x10,
0xbd, 0x83, 0x5d, 0x54, 0x07, 0xd4, 0xca, 0x75, 0x05, 0xa1, 0xf1, 0x4f, 0x0d, 0xea, 0xdc, 0x57,
0x1f, 0xc1, 0xf6, 0x77, 0x70, 0xc7, 0x22, 0xee, 0xbb, 0x38, 0xda, 0xfe, 0x0e, 0xee, 0x6c, 0xba,
0xef, 0xe2, 0x94, 0x65, 0x14, 0xd2, 0x96, 0x91, 0x7e, 0x29, 0x28, 0x8e, 0x78, 0xe7, 0x2c, 0xa5,
0xde, 0x39, 0x8d, 0x0f, 0x35, 0x68, 0xde, 0xc2, 0x74, 0x58, 0xd4, 0xa3, 0x33, 0x8a, 0x8f, 0x34,
0x78, 0x58, 0xc9, 0xd0, 0x24, 0xf6, 0xf0, 0x42, 0xda, 0x1e, 0xd4, 0x09, 0xd6, 0xbe, 0x25, 0xa5,
0x29, 0x5c, 0x05, 0x7d, 0xad, 0xd7, 0xe9, 0xc4, 0x81, 0xcf, 0x32, 0xe8, 0xa1, 0xf8, 0x14, 0xf9,
0x87, 0xb8, 0x2e, 0xab, 0x12, 0xc6, 0xb2, 0x0c, 0xe3, 0x12, 0xd4, 0x24, 0x89, 0xe4, 0xba, 0x09,
0xe5, 0x50, 0x7e, 0x4b, 0xfc, 0xf8, 0xdf, 0x58, 0x80, 0x39, 0x13, 0xb7, 0x99, 0x25, 0x86, 0x77,
0x5c, 0x7f, 0x57, 0x2e, 0x63, 0xbc, 0xa7, 0xc1, 0x7c, 0x1a, 0x2e, 0xe7, 0xfa, 0x5f, 0x28, 0xd9,
0x8e, 0x13, 0x62, 0x42, 0x46, 0x6e, 0xcb, 0x75, 0x81, 0x63, 0x46, 0xc8, 0x09, 0xcd, 0xe5, 0xc6,
0xd6, 0x9c, 0x61, 0xc1, 0xa9, 0x5b, 0x98, 0xde, 0xc5, 0x34, 0x9c, 0xa8, 0x90, 0xdd, 0x60, 0x99,
0x01, 0x27, 0x96, 0x66, 0x11, 0xfd, 0x1a, 0x1f, 0x68, 0x80, 0x92, 0x2b, 0x4c, 0xb2, 0xcd, 0x49,
0x2d, 0xe7, 0xd2, 0x5a, 0x16, 0xbd, 0x3e, 0x9d, 0x6e, 0xe0, 0x63, 0x9f, 0x26, 0x43, 0xcc, 0x5a,
0x0c, 0x65, 0xe6, 0x77, 0x71, 0x19, 0xca, 0x51, 0xed, 0x15, 0x95, 0x20, 0x7f, 0xdd, 0xf3, 0xea,
0x53, 0x48, 0x87, 0xf2, 0xba, 0x2c, 0x30, 0xd6, 0xb5, 0x8b, 0x5f, 0x86, 0xd9, 0xa1, 0xcc, 0x1f,
0x95, 0x61, 0xfa, 0xd5, 0xc0, 0xc7, 0xf5, 0x29, 0x54, 0x07, 0xfd, 0x86, 0xeb, 0xdb, 0x61, 0x5f,
0xdc, 0xb4, 0x75, 0x07, 0xcd, 0x42, 0x95, 0xdf, 0x38, 0x12, 0x80, 0x57, 0xff, 0xde, 0x80, 0xda,
0x5d, 0x2e, 0xcc, 0x26, 0x0e, 0xef, 0xb9, 0x2d, 0x8c, 0x2c, 0xa8, 0x0f, 0x77, 0x4f, 0xa3, 0x27,
0x94, 0x36, 0x9a, 0xd1, 0x64, 0xdd, 0x1c, 0xa5, 0x1e, 0x63, 0x0a, 0xbd, 0x0d, 0x33, 0xe9, 0xbe,
0x66, 0xa4, 0x76, 0x89, 0xca, 0xe6, 0xe7, 0x83, 0x26, 0xb7, 0xa0, 0x96, 0x6a, 0x53, 0x46, 0x17,
0x94, 0x73, 0xab, 0x5a, 0x99, 0x9b, 0xea, 0x28, 0x25, 0xd9, 0x4a, 0x2c, 0xb8, 0x4f, 0x37, 0x53,
0x66, 0x70, 0xaf, 0xec, 0xb8, 0x3c, 0x88, 0x7b, 0x1b, 0x4e, 0xed, 0xeb, 0x8d, 0x44, 0x4f, 0x2a,
0xe7, 0xcf, 0xea, 0xa1, 0x3c, 0x68, 0x89, 0x3d, 0x40, 0xfb, 0xdb, 0x71, 0xd1, 0x65, 0xf5, 0x0e,
0x64, 0x35, 0x23, 0x37, 0xaf, 0x8c, 0x8d, 0x1f, 0x2b, 0xee, 0xdb, 0x1a, 0x9c, 0xce, 0x68, 0x68,
0x44, 0xd7, 0x94, 0xd3, 0x8d, 0xee, 0xca, 0x6c, 0x3e, 0x7d, 0x38, 0xa2, 0x98, 0x11, 0x1f, 0x66,
0x87, 0x7a, 0xfc, 0xd0, 0xa5, 0xcc, 0xbe, 0x87, 0xfd, 0xcd, 0x8e, 0xcd, 0x27, 0xc6, 0x43, 0x8e,
0xd7, 0x63, 0xb9, 0x70, 0xba, 0x31, 0x2e, 0x63, 0x3d, 0x75, 0xfb, 0xdc, 0x41, 0x1b, 0xfa, 0x16,
0xd4, 0x52, 0x1d, 0x6c, 0x19, 0x16, 0xaf, 0xea, 0x72, 0x3b, 0x68, 0xea, 0x77, 0x40, 0x4f, 0x36,
0x9a, 0xa1, 0x95, 0xac, 0xb3, 0xb4, 0x6f, 0xe2, 0xc3, 0x1c, 0xa5, 0x41, 0x1f, 0xc9, 0x88, 0xa3,
0xb4, 0xaf, 0xf5, 0x66, 0xfc, 0xa3, 0x94, 0x98, 0x7f, 0xe4, 0x51, 0x3a, 0xf4, 0x12, 0xef, 0x69,
0xb0, 0xa8, 0xee, 0x53, 0x42, 0xab, 0x59, 0xb6, 0x99, 0xdd, 0x91, 0xd5, 0xbc, 0x76, 0x28, 0x9a,
0x58, 0x8b, 0xbb, 0x30, 0x93, 0xee, 0xc6, 0xc9, 0xd0, 0xa2, 0xb2, 0x81, 0xa9, 0x79, 0x69, 0x2c,
0xdc, 0x78, 0xb1, 0x37, 0xa0, 0x9a, 0xe8, 0x48, 0x40, 0x8f, 0x8f, 0xb0, 0xe3, 0x64, 0x3d, 0xeb,
0x20, 0x4d, 0xee, 0x40, 0x2d, 0x55, 0x85, 0xce, 0xb2, 0x61, 0x45, 0x73, 0x40, 0xf3, 0xe2, 0x38,
0xa8, 0xb1, 0x00, 0x3b, 0x50, 0x4b, 0xd5, 0x04, 0x33, 0x56, 0x52, 0x95, 0x40, 0x33, 0x56, 0x52,
0x96, 0x18, 0x8d, 0x29, 0xf4, 0x8d, 0x44, 0xf9, 0x31, 0x55, 0xe2, 0x45, 0x57, 0x47, 0xce, 0xa3,
0xaa, 0x70, 0x37, 0x57, 0x0f, 0x43, 0x12, 0xb3, 0xf0, 0x1a, 0x54, 0xe2, 0xca, 0x22, 0x3a, 0x9f,
0xe9, 0x16, 0x0e, 0xb3, 0x53, 0x9b, 0x50, 0x14, 0x55, 0x3e, 0x64, 0x64, 0xd4, 0xf3, 0x13, 0x25,
0xc0, 0xe6, 0xa3, 0x4a, 0x9c, 0x74, 0x01, 0x4c, 0x4c, 0x2a, 0xaa, 0x38, 0x19, 0x93, 0xa6, 0x4a,
0x3c, 0xe3, 0x4e, 0x6a, 0x42, 0x51, 0xbc, 0xed, 0x66, 0x4c, 0x9a, 0xaa, 0x4f, 0x34, 0x47, 0xe3,
0x88, 0x07, 0xe1, 0x29, 0xb4, 0x01, 0x05, 0xfe, 0x06, 0x8a, 0x96, 0x47, 0xbd, 0x8f, 0x8e, 0x9a,
0x31, 0xf5, 0x84, 0x6a, 0x4c, 0xa1, 0xaf, 0x42, 0x81, 0x87, 0xfa, 0x19, 0x33, 0x26, 0x1f, 0x39,
0x9b, 0x23, 0x51, 0x22, 0x16, 0x1d, 0xd0, 0x93, 0x4f, 0x20, 0x19, 0x3e, 0x5b, 0xf1, 0x48, 0xd4,
0x1c, 0x07, 0x33, 0x5a, 0xe5, 0x3b, 0x1a, 0x34, 0xb2, 0xb2, 0x65, 0x94, 0x79, 0x31, 0x8f, 0x4a,
0xf9, 0x9b, 0xcf, 0x1c, 0x92, 0x2a, 0x56, 0xe1, 0xbb, 0x30, 0xa7, 0xc8, 0xd1, 0xd0, 0x95, 0xac,
0xf9, 0x32, 0xd2, 0xcb, 0xe6, 0x53, 0xe3, 0x13, 0xc4, 0x6b, 0x6f, 0x40, 0x81, 0xe7, 0x56, 0x19,
0xdb, 0x97, 0x4c, 0xd5, 0x32, 0x0c, 0x22, 0x95, 0x9a, 0x19, 0x53, 0x08, 0x83, 0x9e, 0x4c, 0xb4,
0x32, 0xf6, 0x4f, 0x91, 0xa3, 0x35, 0x2f, 0x8c, 0x81, 0x19, 0x2f, 0x63, 0x01, 0x0c, 0x12, 0x1d,
0xf4, 0x58, 0x96, 0xe8, 0xe9, 0x5c, 0xab, 0xf9, 0xf8, 0x81, 0x78, 0xd1, 0x02, 0xab, 0x3d, 0xd0,
0x37, 0xc2, 0xe0, 0x7e, 0x3f, 0x4a, 0x2b, 0xfe, 0x3b, 0x72, 0xdd, 0x78, 0xe6, 0x6b, 0xd7, 0xda,
0x2e, 0xdd, 0xe9, 0x6d, 0x31, 0xcf, 0x75, 0x45, 0xe0, 0x3e, 0xe9, 0x06, 0xf2, 0xeb, 0x8a, 0xeb,
0x53, 0x1c, 0xfa, 0xb6, 0x77, 0x85, 0xcf, 0x25, 0xa1, 0xdd, 0xad, 0xad, 0x22, 0xff, 0xbf, 0xf6,
0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x88, 0x7a, 0xa8, 0xfc, 0x7b, 0x3a, 0x00, 0x00,
0xba, 0x57, 0xd4, 0xfa, 0x14, 0xc0, 0x49, 0x80, 0xc0, 0x8e, 0x8d, 0x20, 0x41, 0x82, 0x5c, 0x72,
0x48, 0xe2, 0x43, 0x6e, 0x71, 0x12, 0x20, 0x41, 0x0e, 0x41, 0x0e, 0x3e, 0xe4, 0x10, 0x20, 0x8f,
0x43, 0xce, 0xb9, 0xe4, 0xe8, 0x7f, 0x90, 0x43, 0xd0, 0x8f, 0x99, 0x9d, 0x59, 0xf6, 0x2c, 0x97,
0x5a, 0x3b, 0x24, 0x6f, 0x33, 0xd5, 0x55, 0xdd, 0x55, 0xd5, 0xd5, 0xd5, 0x55, 0x5d, 0x05, 0x7a,
0xc7, 0xf5, 0xee, 0xf5, 0xc8, 0xe5, 0x6e, 0x18, 0xd0, 0x00, 0xcd, 0x25, 0xff, 0x2e, 0x8b, 0x9f,
0xa6, 0xde, 0x0a, 0x3a, 0x9d, 0xc0, 0x17, 0xc0, 0xa6, 0x4e, 0x5a, 0x3b, 0xb8, 0x63, 0x8b, 0x3f,
0xe3, 0x53, 0x0d, 0x4e, 0xdf, 0x0c, 0xb1, 0x4d, 0xf1, 0xcd, 0xc0, 0xf3, 0x70, 0x8b, 0xba, 0x81,
0x6f, 0xe2, 0xaf, 0xf7, 0x30, 0xa1, 0xe8, 0x29, 0x98, 0xde, 0xb2, 0x09, 0x6e, 0x68, 0x4b, 0xda,
0x4a, 0x75, 0xf5, 0xcc, 0xe5, 0xd4, 0xdc, 0x72, 0xce, 0xbb, 0xa4, 0x7d, 0xc3, 0x26, 0xd8, 0xe4,
0x98, 0xe8, 0x34, 0x94, 0x9c, 0x2d, 0xcb, 0xb7, 0x3b, 0xb8, 0x91, 0x5b, 0xd2, 0x56, 0x2a, 0x66,
0xd1, 0xd9, 0x7a, 0xd5, 0xee, 0x60, 0xf4, 0x38, 0xcc, 0xb6, 0xe2, 0xf9, 0x05, 0x42, 0x9e, 0x23,
0xcc, 0x0c, 0xc0, 0x1c, 0x71, 0x11, 0x8a, 0x82, 0xbf, 0xc6, 0xf4, 0x92, 0xb6, 0xa2, 0x9b, 0xf2,
0x0f, 0x9d, 0x05, 0x20, 0x3b, 0x76, 0xe8, 0x10, 0xcb, 0xef, 0x75, 0x1a, 0x85, 0x25, 0x6d, 0xa5,
0x60, 0x56, 0x04, 0xe4, 0xd5, 0x5e, 0xc7, 0x78, 0x5f, 0x83, 0x85, 0xb5, 0x30, 0xe8, 0x1e, 0x0b,
0x21, 0x8c, 0x5f, 0x68, 0x30, 0x7f, 0xdb, 0x26, 0xc7, 0x43, 0xa3, 0x67, 0x01, 0xa8, 0xdb, 0xc1,
0x16, 0xa1, 0x76, 0xa7, 0xcb, 0xb5, 0x3a, 0x6d, 0x56, 0x18, 0x64, 0x93, 0x01, 0x8c, 0xb7, 0x40,
0xbf, 0x11, 0x04, 0x9e, 0x89, 0x49, 0x37, 0xf0, 0x09, 0x46, 0xd7, 0xa0, 0x48, 0xa8, 0x4d, 0x7b,
0x44, 0x32, 0xf9, 0xb0, 0x92, 0xc9, 0x4d, 0x8e, 0x62, 0x4a, 0x54, 0x34, 0x0f, 0x85, 0x7b, 0xb6,
0xd7, 0x13, 0x3c, 0x96, 0x4d, 0xf1, 0x63, 0xbc, 0x0d, 0x33, 0x9b, 0x34, 0x74, 0xfd, 0xf6, 0xe7,
0x38, 0x79, 0x25, 0x9a, 0xfc, 0xef, 0x1a, 0x3c, 0xb4, 0x86, 0x49, 0x2b, 0x74, 0xb7, 0x8e, 0x89,
0xe9, 0x1a, 0xa0, 0x0f, 0x20, 0xeb, 0x6b, 0x5c, 0xd5, 0x79, 0x33, 0x05, 0x1b, 0xda, 0x8c, 0xc2,
0xf0, 0x66, 0xfc, 0x24, 0x0f, 0x4d, 0x95, 0x50, 0x93, 0xa8, 0xef, 0x4b, 0xf1, 0x89, 0xca, 0x71,
0xa2, 0xf3, 0x69, 0x22, 0xe9, 0x0d, 0x06, 0xab, 0x6d, 0x72, 0x40, 0x7c, 0xf0, 0x86, 0xa5, 0xca,
0x2b, 0xa4, 0x5a, 0x85, 0x85, 0x7b, 0x6e, 0x48, 0x7b, 0xb6, 0x67, 0xb5, 0x76, 0x6c, 0xdf, 0xc7,
0x1e, 0xd7, 0x13, 0x69, 0x4c, 0x2f, 0xe5, 0x57, 0x2a, 0xe6, 0x9c, 0x1c, 0xbc, 0x29, 0xc6, 0x98,
0xb2, 0x08, 0x7a, 0x1a, 0x16, 0xbb, 0x3b, 0x7d, 0xe2, 0xb6, 0xf6, 0x11, 0x15, 0x38, 0xd1, 0x7c,
0x34, 0x9a, 0xa2, 0xba, 0x04, 0xa7, 0x5a, 0xdc, 0x5b, 0x39, 0x16, 0xd3, 0x9a, 0x50, 0x63, 0x91,
0xab, 0xb1, 0x2e, 0x07, 0x5e, 0x8f, 0xe0, 0x8c, 0xad, 0x08, 0xb9, 0x47, 0x5b, 0x09, 0x82, 0x12,
0x27, 0x98, 0x93, 0x83, 0x6f, 0xd0, 0xd6, 0x80, 0x26, 0xed, 0x67, 0xca, 0x2a, 0x3f, 0x73, 0x27,
0xb0, 0x9d, 0xe3, 0xe1, 0x67, 0x3e, 0xd4, 0xa0, 0x61, 0x62, 0x0f, 0xdb, 0xe4, 0x78, 0x1c, 0x01,
0xe3, 0x07, 0x1a, 0x3c, 0x72, 0x0b, 0xd3, 0x84, 0x31, 0x51, 0x9b, 0xba, 0x84, 0xba, 0x2d, 0x72,
0x94, 0x6c, 0x7d, 0xa4, 0xc1, 0xb9, 0x4c, 0xb6, 0x26, 0x39, 0x5b, 0xcf, 0x42, 0x81, 0x7d, 0x91,
0x46, 0x6e, 0x29, 0xbf, 0x52, 0x5d, 0x5d, 0x56, 0xd2, 0xbc, 0x82, 0xfb, 0x6f, 0x32, 0x97, 0xb5,
0x61, 0xbb, 0xa1, 0x29, 0xf0, 0x8d, 0x7f, 0x6a, 0xb0, 0xb8, 0xb9, 0x13, 0xec, 0x0d, 0x58, 0xfa,
0x22, 0x14, 0x94, 0xf6, 0x36, 0xf9, 0x21, 0x6f, 0x83, 0xae, 0xc2, 0x34, 0xed, 0x77, 0x31, 0x77,
0x54, 0x33, 0xab, 0x67, 0x2f, 0x2b, 0x62, 0x87, 0xcb, 0x8c, 0xc9, 0xd7, 0xfb, 0x5d, 0x6c, 0x72,
0x54, 0x74, 0x01, 0xea, 0x43, 0x2a, 0x8f, 0xce, 0xeb, 0x6c, 0x5a, 0xe7, 0xc4, 0xf8, 0x5d, 0x0e,
0x4e, 0xef, 0x13, 0x71, 0x12, 0x65, 0xab, 0xd6, 0xce, 0x29, 0xd7, 0x46, 0xe7, 0x21, 0x61, 0x02,
0x96, 0xeb, 0x90, 0x46, 0x7e, 0x29, 0xbf, 0x92, 0x37, 0x6b, 0x09, 0xb7, 0xe5, 0x10, 0xf4, 0x24,
0xa0, 0x7d, 0xde, 0x44, 0x38, 0xad, 0x69, 0xf3, 0xd4, 0xb0, 0x3b, 0xe1, 0x2e, 0x4b, 0xe9, 0x4f,
0x84, 0x0a, 0xa6, 0xcd, 0x79, 0x85, 0x43, 0x21, 0xe8, 0x2a, 0xcc, 0xbb, 0xfe, 0x5d, 0xdc, 0x09,
0xc2, 0xbe, 0xd5, 0xc5, 0x61, 0x0b, 0xfb, 0xd4, 0x6e, 0x63, 0xd2, 0x28, 0x72, 0x8e, 0xe6, 0xa2,
0xb1, 0x8d, 0xc1, 0x90, 0xf1, 0x6b, 0x0d, 0x16, 0x45, 0x50, 0xb6, 0x61, 0x87, 0xd4, 0x3d, 0xea,
0x8b, 0xed, 0x3c, 0xcc, 0x74, 0x23, 0x3e, 0x04, 0xde, 0x34, 0xc7, 0xab, 0xc5, 0x50, 0x7e, 0xca,
0x3e, 0xd1, 0x60, 0x9e, 0xc5, 0x60, 0x27, 0x89, 0xe7, 0x5f, 0x6a, 0x30, 0x77, 0xdb, 0x26, 0x27,
0x89, 0xe5, 0xdf, 0xc8, 0x2b, 0x28, 0xe6, 0xf9, 0x28, 0x5d, 0x2b, 0x43, 0x4c, 0x33, 0x1d, 0x5d,
0xfa, 0x33, 0x29, 0xae, 0x89, 0xf1, 0xdb, 0xc1, 0x5d, 0x75, 0xc2, 0x38, 0xff, 0xbd, 0x06, 0x67,
0x6f, 0x61, 0x1a, 0x73, 0x7d, 0x2c, 0xee, 0xb4, 0x71, 0xad, 0xe5, 0x43, 0x71, 0x23, 0x2b, 0x99,
0x3f, 0x92, 0x9b, 0xef, 0xfd, 0x1c, 0x2c, 0xb0, 0x6b, 0xe1, 0x78, 0x18, 0xc1, 0x38, 0x31, 0xbb,
0xc2, 0x50, 0x0a, 0x2a, 0x43, 0x89, 0xef, 0xd3, 0xe2, 0xd8, 0xf7, 0xa9, 0xf1, 0xab, 0x9c, 0x88,
0x03, 0x92, 0xda, 0x98, 0x64, 0x5b, 0x14, 0xbc, 0xe6, 0x94, 0xbc, 0x1a, 0xa0, 0xc7, 0x90, 0xf5,
0xb5, 0xe8, 0x7e, 0x4c, 0xc1, 0x8e, 0xed, 0xf5, 0xf8, 0x81, 0x06, 0x8b, 0x51, 0x96, 0xb4, 0x89,
0xdb, 0x1d, 0xec, 0xd3, 0x07, 0xb7, 0xa1, 0x61, 0x0b, 0xc8, 0x29, 0x2c, 0xe0, 0x0c, 0x54, 0x88,
0x58, 0x27, 0x4e, 0x80, 0x06, 0x00, 0xe3, 0x63, 0x0d, 0x4e, 0xef, 0x63, 0x67, 0x92, 0x4d, 0x6c,
0x40, 0xc9, 0xf5, 0x1d, 0x7c, 0x3f, 0xe6, 0x26, 0xfa, 0x65, 0x23, 0x5b, 0x3d, 0xd7, 0x73, 0x62,
0x36, 0xa2, 0x5f, 0xb4, 0x0c, 0x3a, 0xf6, 0xed, 0x2d, 0x0f, 0x5b, 0x1c, 0x97, 0x1b, 0x72, 0xd9,
0xac, 0x0a, 0xd8, 0x3a, 0x03, 0x19, 0xdf, 0xd5, 0x60, 0x8e, 0xd9, 0x9a, 0xe4, 0x91, 0x7c, 0xb1,
0x3a, 0x5b, 0x82, 0x6a, 0xc2, 0x98, 0x24, 0xbb, 0x49, 0x90, 0xb1, 0x0b, 0xf3, 0x69, 0x76, 0x26,
0xd1, 0xd9, 0x23, 0x00, 0xf1, 0x8e, 0x08, 0x9b, 0xcf, 0x9b, 0x09, 0x88, 0xf1, 0x99, 0x06, 0x48,
0x84, 0x54, 0x5c, 0x19, 0x47, 0xfc, 0x20, 0xb3, 0xed, 0x62, 0xcf, 0x49, 0x7a, 0xed, 0x0a, 0x87,
0xf0, 0xe1, 0x35, 0xd0, 0xf1, 0x7d, 0x1a, 0xda, 0x56, 0xd7, 0x0e, 0xed, 0x8e, 0x38, 0x3c, 0x63,
0x39, 0xd8, 0x2a, 0x27, 0xdb, 0xe0, 0x54, 0xc6, 0x9f, 0x58, 0x30, 0x26, 0x8d, 0xf2, 0xb8, 0x4b,
0x7c, 0x16, 0x80, 0x1b, 0xad, 0x18, 0x2e, 0x88, 0x61, 0x0e, 0xe1, 0x57, 0xd8, 0xc7, 0x1a, 0xd4,
0xb9, 0x08, 0x42, 0x9e, 0x2e, 0x9b, 0x76, 0x88, 0x46, 0x1b, 0xa2, 0x19, 0x71, 0x84, 0xfe, 0x0f,
0x8a, 0x52, 0xb1, 0xf9, 0x71, 0x15, 0x2b, 0x09, 0x0e, 0x10, 0xc3, 0xf8, 0xa9, 0x06, 0x0b, 0x43,
0x2a, 0x9f, 0xc4, 0xa2, 0x5f, 0x07, 0x24, 0x24, 0x74, 0x06, 0x62, 0x47, 0xd7, 0xed, 0x79, 0xe5,
0xdd, 0x32, 0xac, 0x24, 0xf3, 0x94, 0x3b, 0x04, 0x21, 0xc6, 0x5f, 0x35, 0x38, 0x73, 0x0b, 0x53,
0x8e, 0x7a, 0x83, 0xf9, 0x8e, 0x8d, 0x30, 0x68, 0x87, 0x98, 0x90, 0x93, 0x6b, 0x1f, 0x3f, 0x14,
0xf1, 0x99, 0x4a, 0xa4, 0x49, 0xf4, 0xbf, 0x0c, 0x3a, 0x5f, 0x03, 0x3b, 0x56, 0x18, 0xec, 0x11,
0x69, 0x47, 0x55, 0x09, 0x33, 0x83, 0x3d, 0x6e, 0x10, 0x34, 0xa0, 0xb6, 0x27, 0x10, 0xe4, 0xc5,
0xc0, 0x21, 0x6c, 0x98, 0x9f, 0xc1, 0x88, 0x31, 0x36, 0x39, 0x3e, 0xb9, 0x3a, 0xfe, 0xb9, 0x06,
0x0b, 0x43, 0xa2, 0x4c, 0xa2, 0xdb, 0x67, 0x44, 0xf4, 0x28, 0x84, 0x99, 0x59, 0x3d, 0xa7, 0xa4,
0x49, 0x2c, 0x26, 0xb0, 0xd1, 0x39, 0xa8, 0x6e, 0xdb, 0xae, 0x67, 0x85, 0xd8, 0x26, 0x81, 0x2f,
0x05, 0x05, 0x06, 0x32, 0x39, 0xc4, 0xf8, 0x54, 0x83, 0x3a, 0x4b, 0x41, 0x4f, 0xb8, 0xc7, 0xfb,
0x59, 0x0e, 0x6a, 0xeb, 0x3e, 0xc1, 0x21, 0x3d, 0xfe, 0x19, 0x06, 0x7a, 0x11, 0xaa, 0x5c, 0x30,
0x62, 0x39, 0x36, 0xb5, 0xe5, 0x75, 0xf5, 0x88, 0xf2, 0x91, 0xf9, 0x65, 0x86, 0xb7, 0x66, 0x53,
0xdb, 0x14, 0xda, 0x21, 0xec, 0x1b, 0x3d, 0x0c, 0x95, 0x1d, 0x9b, 0xec, 0x58, 0xbb, 0xb8, 0x2f,
0xc2, 0xbe, 0x9a, 0x59, 0x66, 0x80, 0x57, 0x70, 0x9f, 0xa0, 0x87, 0xa0, 0xec, 0xf7, 0x3a, 0xe2,
0x80, 0x95, 0x96, 0xb4, 0x95, 0x9a, 0x59, 0xf2, 0x7b, 0x1d, 0x7e, 0xbc, 0xfe, 0x9c, 0x83, 0x99,
0xbb, 0x3d, 0x96, 0xcf, 0xf0, 0x27, 0xf2, 0x9e, 0x47, 0x1f, 0xcc, 0x18, 0x2f, 0x42, 0x5e, 0xc4,
0x0c, 0x8c, 0xa2, 0xa1, 0x64, 0x7c, 0x7d, 0x8d, 0x98, 0x0c, 0x89, 0x3f, 0x0f, 0xf7, 0x5a, 0x2d,
0x19, 0x64, 0xe5, 0x39, 0xb3, 0x15, 0x06, 0xe1, 0x16, 0xc7, 0x44, 0xc1, 0x61, 0x18, 0x87, 0x60,
0x5c, 0x14, 0x1c, 0x86, 0x62, 0xd0, 0x00, 0xdd, 0x6e, 0xed, 0xfa, 0xc1, 0x9e, 0x87, 0x9d, 0x36,
0x76, 0xf8, 0xb6, 0x97, 0xcd, 0x14, 0x4c, 0x18, 0x06, 0xdb, 0x78, 0xab, 0xe5, 0x53, 0x9e, 0x48,
0xe4, 0x99, 0x61, 0x30, 0xc8, 0x4d, 0x9f, 0xb2, 0x61, 0x07, 0x7b, 0x98, 0x62, 0x3e, 0x5c, 0x12,
0xc3, 0x02, 0x22, 0x87, 0x7b, 0xdd, 0x98, 0xba, 0x2c, 0x86, 0x05, 0x84, 0x0d, 0x9f, 0x81, 0xca,
0xe0, 0x0d, 0xbc, 0x32, 0x78, 0x0d, 0xe4, 0x00, 0xe3, 0x0f, 0x1a, 0xd4, 0xd6, 0xf8, 0x54, 0x27,
0xc0, 0xe8, 0x10, 0x4c, 0xe3, 0xfb, 0xdd, 0x50, 0x1e, 0x1d, 0xfe, 0x6d, 0xdc, 0x83, 0xfa, 0x86,
0x67, 0xb7, 0xf0, 0x4e, 0xe0, 0x39, 0x38, 0xe4, 0xd7, 0x37, 0xaa, 0x43, 0x9e, 0xda, 0x6d, 0x19,
0x1f, 0xb0, 0x4f, 0xf4, 0x9c, 0x4c, 0xd2, 0x84, 0xe7, 0xf9, 0x1f, 0xe5, 0x45, 0x9a, 0x98, 0x26,
0xf1, 0xf6, 0xb9, 0x08, 0x45, 0x5e, 0x7a, 0x12, 0x91, 0x83, 0x6e, 0xca, 0x3f, 0xe3, 0x9d, 0xd4,
0xba, 0xb7, 0xc2, 0xa0, 0xd7, 0x45, 0xeb, 0xa0, 0x77, 0x07, 0x30, 0x66, 0x8e, 0xd9, 0xd7, 0xf6,
0x30, 0xd3, 0x66, 0x8a, 0xd4, 0xf8, 0x2c, 0x0f, 0xb5, 0x4d, 0x6c, 0x87, 0xad, 0x9d, 0x93, 0xf0,
0x5a, 0xc2, 0x34, 0xee, 0x10, 0x4f, 0x6e, 0x0c, 0xfb, 0x44, 0x97, 0xe0, 0x54, 0x42, 0x20, 0xab,
0xcd, 0x14, 0xc4, 0x4d, 0x5b, 0x37, 0xeb, 0xdd, 0x61, 0xc5, 0x3d, 0x0b, 0x65, 0x87, 0x78, 0x16,
0xdf, 0xa2, 0x12, 0xdf, 0x22, 0xb5, 0x7c, 0x6b, 0xc4, 0xe3, 0x5b, 0x53, 0x72, 0xc4, 0x07, 0x7a,
0x14, 0x6a, 0x41, 0x8f, 0x76, 0x7b, 0xd4, 0x12, 0xae, 0xa5, 0x51, 0xe6, 0xec, 0xe9, 0x02, 0xc8,
0x3d, 0x0f, 0x41, 0x2f, 0x43, 0x8d, 0x70, 0x55, 0x46, 0xc1, 0x75, 0x65, 0xdc, 0x18, 0x50, 0x17,
0x74, 0x22, 0xba, 0x46, 0x17, 0xa0, 0x4e, 0x43, 0xfb, 0x1e, 0xf6, 0x12, 0x45, 0x25, 0xe0, 0x07,
0x6a, 0x56, 0xc0, 0x07, 0x05, 0xa5, 0x2b, 0x30, 0xd7, 0xee, 0xd9, 0xa1, 0xed, 0x53, 0x8c, 0x13,
0xd8, 0x55, 0x8e, 0x8d, 0xe2, 0xa1, 0x98, 0xc0, 0x78, 0x05, 0xa6, 0x6f, 0xbb, 0x94, 0x2b, 0x92,
0xb9, 0x25, 0x8d, 0xa7, 0x32, 0xdc, 0xf9, 0x3c, 0x04, 0xe5, 0x30, 0xd8, 0x13, 0x6e, 0x36, 0xc7,
0x4d, 0xb0, 0x14, 0x06, 0x7b, 0xdc, 0x87, 0xf2, 0xb2, 0x79, 0x10, 0x4a, 0xdb, 0xcc, 0x99, 0xf2,
0xcf, 0xf8, 0x96, 0x36, 0x30, 0x1e, 0xe6, 0x21, 0xc9, 0x83, 0xb9, 0xc8, 0x17, 0xa1, 0x14, 0x0a,
0xfa, 0x91, 0x45, 0xc4, 0xe4, 0x4a, 0xdc, 0xcd, 0x47, 0x54, 0xc6, 0x37, 0x35, 0xd0, 0x5f, 0xf6,
0x7a, 0xe4, 0x8b, 0xb0, 0x61, 0x55, 0x5d, 0x20, 0xaf, 0xae, 0x49, 0x7c, 0x2f, 0x07, 0x35, 0xc9,
0xc6, 0x24, 0xe1, 0x4b, 0x26, 0x2b, 0x9b, 0x50, 0x65, 0x4b, 0x5a, 0x04, 0xb7, 0xa3, 0x47, 0x95,
0xea, 0xea, 0xaa, 0xf2, 0xd4, 0xa7, 0xd8, 0xe0, 0xe5, 0xd7, 0x4d, 0x4e, 0xf4, 0x15, 0x9f, 0x86,
0x7d, 0x13, 0x5a, 0x31, 0xa0, 0xf9, 0x0e, 0xcc, 0x0e, 0x0d, 0x33, 0xdb, 0xd8, 0xc5, 0xfd, 0xc8,
0xad, 0xed, 0xe2, 0x3e, 0x7a, 0x3a, 0x59, 0x24, 0xcf, 0xba, 0x7f, 0xef, 0x04, 0x7e, 0xfb, 0x7a,
0x18, 0xda, 0x7d, 0x59, 0x44, 0x7f, 0x3e, 0xf7, 0x9c, 0x66, 0xfc, 0x31, 0x07, 0xfa, 0x6b, 0x3d,
0x1c, 0xf6, 0x8f, 0xd2, 0xbd, 0x44, 0xfe, 0x7c, 0x7a, 0xe0, 0xcf, 0xf7, 0x9f, 0xe8, 0x82, 0xe2,
0x44, 0x2b, 0xfc, 0x52, 0x51, 0xe9, 0x97, 0x54, 0x47, 0xb6, 0x74, 0xa8, 0x23, 0x5b, 0xce, 0x3c,
0xb2, 0xcc, 0xba, 0xa5, 0x0a, 0x27, 0x3a, 0x64, 0xa9, 0x40, 0x2a, 0x77, 0xd8, 0x40, 0xca, 0xf8,
0x44, 0x83, 0xca, 0x9b, 0xb8, 0x45, 0x83, 0x90, 0x79, 0x0b, 0x85, 0xee, 0xb5, 0x31, 0x62, 0xd5,
0xdc, 0x70, 0xac, 0x7a, 0x0d, 0xca, 0xae, 0x63, 0xd9, 0xcc, 0x6c, 0xf8, 0xe6, 0x8d, 0x8a, 0x91,
0x4a, 0xae, 0xc3, 0xed, 0x6b, 0xfc, 0xc7, 0xf5, 0x1f, 0x69, 0xa0, 0x0b, 0x9e, 0x89, 0xa0, 0x7c,
0x21, 0xb1, 0x9c, 0xa6, 0xb2, 0x65, 0xf9, 0x13, 0x0b, 0x7a, 0x7b, 0x6a, 0xb0, 0xec, 0x75, 0x00,
0xa6, 0x3b, 0x49, 0x2e, 0x8e, 0xc2, 0x92, 0x92, 0x5b, 0x41, 0xce, 0xf5, 0x78, 0x7b, 0xca, 0xac,
0x30, 0x2a, 0x3e, 0xc5, 0x8d, 0x12, 0x14, 0x38, 0xb5, 0xf1, 0x6f, 0x0d, 0xe6, 0x6e, 0xda, 0x5e,
0x6b, 0xcd, 0x25, 0xd4, 0xf6, 0x5b, 0x13, 0x44, 0x45, 0xcf, 0x43, 0x29, 0xe8, 0x5a, 0x1e, 0xde,
0xa6, 0x92, 0xa5, 0xe5, 0x11, 0x12, 0x09, 0x35, 0x98, 0xc5, 0xa0, 0x7b, 0x07, 0x6f, 0x53, 0xf4,
0xff, 0x50, 0x0e, 0xba, 0x56, 0xe8, 0xb6, 0x77, 0xa8, 0xd4, 0xfe, 0x18, 0xc4, 0xa5, 0xa0, 0x6b,
0x32, 0x8a, 0xc4, 0x63, 0xc7, 0xf4, 0x21, 0x1f, 0x3b, 0x8c, 0xbf, 0xed, 0x13, 0x7f, 0x02, 0xd3,
0x7e, 0x1e, 0xca, 0xae, 0x4f, 0x2d, 0xc7, 0x25, 0x91, 0x0a, 0xce, 0xaa, 0x6d, 0xc8, 0xa7, 0x5c,
0x02, 0xbe, 0xa7, 0x3e, 0x65, 0x6b, 0xa3, 0x97, 0x00, 0xb6, 0xbd, 0xc0, 0x96, 0xd4, 0x42, 0x07,
0xe7, 0xd4, 0xa7, 0x82, 0xa1, 0x45, 0xf4, 0x15, 0x4e, 0xc4, 0x66, 0x18, 0x6c, 0xe9, 0x5f, 0x34,
0x58, 0xd8, 0xc0, 0x21, 0x71, 0x09, 0xc5, 0x3e, 0x95, 0x0f, 0x8f, 0xeb, 0xfe, 0x76, 0x90, 0x7e,
0xe1, 0xd5, 0x86, 0x5e, 0x78, 0x3f, 0x9f, 0xf7, 0xce, 0x54, 0x2a, 0x23, 0xea, 0x0c, 0x51, 0x2a,
0x13, 0x55, 0x53, 0x44, 0x2a, 0x38, 0x93, 0xb1, 0x4d, 0x92, 0xdf, 0x64, 0x46, 0x6c, 0x7c, 0x5f,
0x74, 0x36, 0x28, 0x85, 0x7a, 0x70, 0x83, 0x5d, 0x04, 0xe9, 0xc0, 0x87, 0xdc, 0xf9, 0x63, 0x30,
0xe4, 0x3b, 0x32, 0xfa, 0x2d, 0x7e, 0xac, 0xc1, 0x52, 0x36, 0x57, 0x93, 0xdc, 0xbc, 0x2f, 0x41,
0xc1, 0xf5, 0xb7, 0x83, 0xe8, 0x1d, 0xec, 0xa2, 0x3a, 0xa0, 0x56, 0xae, 0x2b, 0x08, 0x8d, 0x7f,
0x69, 0x50, 0xe7, 0xbe, 0xfa, 0x08, 0xb6, 0xbf, 0x83, 0x3b, 0x16, 0x71, 0xdf, 0xc5, 0xd1, 0xf6,
0x77, 0x70, 0x67, 0xd3, 0x7d, 0x17, 0xa7, 0x2c, 0xa3, 0x90, 0xb6, 0x8c, 0xf4, 0x4b, 0x41, 0x71,
0xc4, 0x3b, 0x67, 0x29, 0xf5, 0xce, 0x69, 0x7c, 0xa8, 0x41, 0xf3, 0x16, 0xa6, 0xc3, 0xa2, 0x1e,
0x9d, 0x51, 0x7c, 0xa4, 0xc1, 0xc3, 0x4a, 0x86, 0x26, 0xb1, 0x87, 0x17, 0xd2, 0xf6, 0xa0, 0x4e,
0xb0, 0xf6, 0x2d, 0x29, 0x4d, 0xe1, 0x2a, 0xe8, 0x6b, 0xbd, 0x4e, 0x27, 0x0e, 0x7c, 0x96, 0x41,
0x0f, 0xc5, 0xa7, 0xc8, 0x3f, 0xc4, 0x75, 0x59, 0x95, 0x30, 0x96, 0x65, 0x18, 0x97, 0xa0, 0x26,
0x49, 0x24, 0xd7, 0x4d, 0x28, 0x87, 0xf2, 0x5b, 0xe2, 0xc7, 0xff, 0xc6, 0x02, 0xcc, 0x99, 0xb8,
0xcd, 0x2c, 0x31, 0xbc, 0xe3, 0xfa, 0xbb, 0x72, 0x19, 0xe3, 0x3d, 0x0d, 0xe6, 0xd3, 0x70, 0x39,
0xd7, 0xff, 0x42, 0xc9, 0x76, 0x9c, 0x10, 0x13, 0x32, 0x72, 0x5b, 0xae, 0x0b, 0x1c, 0x33, 0x42,
0x4e, 0x68, 0x2e, 0x37, 0xb6, 0xe6, 0x0c, 0x0b, 0x4e, 0xdd, 0xc2, 0xf4, 0x2e, 0xa6, 0xe1, 0x44,
0x85, 0xec, 0x06, 0xcb, 0x0c, 0x38, 0xb1, 0x34, 0x8b, 0xe8, 0xd7, 0xf8, 0x40, 0x03, 0x94, 0x5c,
0x61, 0x92, 0x6d, 0x4e, 0x6a, 0x39, 0x97, 0xd6, 0xb2, 0xe8, 0xf5, 0xe9, 0x74, 0x03, 0x1f, 0xfb,
0x34, 0x19, 0x62, 0xd6, 0x62, 0x28, 0x33, 0xbf, 0x8b, 0xcb, 0x50, 0x8e, 0x6a, 0xaf, 0xa8, 0x04,
0xf9, 0xeb, 0x9e, 0x57, 0x9f, 0x42, 0x3a, 0x94, 0xd7, 0x65, 0x81, 0xb1, 0xae, 0x5d, 0xfc, 0x32,
0xcc, 0x0e, 0x65, 0xfe, 0xa8, 0x0c, 0xd3, 0xaf, 0x06, 0x3e, 0xae, 0x4f, 0xa1, 0x3a, 0xe8, 0x37,
0x5c, 0xdf, 0x0e, 0xfb, 0xe2, 0xa6, 0xad, 0x3b, 0x68, 0x16, 0xaa, 0xfc, 0xc6, 0x91, 0x00, 0xbc,
0xfa, 0x8f, 0x06, 0xd4, 0xee, 0x72, 0x61, 0x36, 0x71, 0x78, 0xcf, 0x6d, 0x61, 0x64, 0x41, 0x7d,
0xb8, 0xb9, 0x1a, 0x3d, 0xa1, 0xb4, 0xd1, 0x8c, 0x1e, 0xec, 0xe6, 0x28, 0xf5, 0x18, 0x53, 0xe8,
0x6d, 0x98, 0x49, 0xb7, 0x3d, 0x23, 0xb5, 0x4b, 0x54, 0xf6, 0x46, 0x1f, 0x34, 0xb9, 0x05, 0xb5,
0x54, 0x17, 0x33, 0xba, 0xa0, 0x9c, 0x5b, 0xd5, 0xe9, 0xdc, 0x54, 0x47, 0x29, 0xc9, 0x4e, 0x63,
0xc1, 0x7d, 0xba, 0x99, 0x32, 0x83, 0x7b, 0x65, 0xc7, 0xe5, 0x41, 0xdc, 0xdb, 0x70, 0x6a, 0x5f,
0x6f, 0x24, 0x7a, 0x52, 0x39, 0x7f, 0x56, 0x0f, 0xe5, 0x41, 0x4b, 0xec, 0x01, 0xda, 0xdf, 0xad,
0x8b, 0x2e, 0xab, 0x77, 0x20, 0xab, 0x57, 0xb9, 0x79, 0x65, 0x6c, 0xfc, 0x58, 0x71, 0xdf, 0xd6,
0xe0, 0x74, 0x46, 0x43, 0x23, 0xba, 0xa6, 0x9c, 0x6e, 0x74, 0x57, 0x66, 0xf3, 0xe9, 0xc3, 0x11,
0xc5, 0x8c, 0xf8, 0x30, 0x3b, 0xd4, 0xe3, 0x87, 0x2e, 0x65, 0xf6, 0x3d, 0xec, 0x6f, 0x76, 0x6c,
0x3e, 0x31, 0x1e, 0x72, 0xbc, 0x1e, 0xcb, 0x85, 0xd3, 0x8d, 0x71, 0x19, 0xeb, 0xa9, 0xdb, 0xe7,
0x0e, 0xda, 0xd0, 0xb7, 0xa0, 0x96, 0xea, 0x60, 0xcb, 0xb0, 0x78, 0x55, 0x97, 0xdb, 0x41, 0x53,
0xbf, 0x03, 0x7a, 0xb2, 0xd1, 0x0c, 0xad, 0x64, 0x9d, 0xa5, 0x7d, 0x13, 0x1f, 0xe6, 0x28, 0x0d,
0xfa, 0x48, 0x46, 0x1c, 0xa5, 0x7d, 0xad, 0x37, 0xe3, 0x1f, 0xa5, 0xc4, 0xfc, 0x23, 0x8f, 0xd2,
0xa1, 0x97, 0x78, 0x4f, 0x83, 0x45, 0x75, 0x9f, 0x12, 0x5a, 0xcd, 0xb2, 0xcd, 0xec, 0x8e, 0xac,
0xe6, 0xb5, 0x43, 0xd1, 0xc4, 0x5a, 0xdc, 0x85, 0x99, 0x74, 0x37, 0x4e, 0x86, 0x16, 0x95, 0x0d,
0x4c, 0xcd, 0x4b, 0x63, 0xe1, 0xc6, 0x8b, 0xbd, 0x01, 0xd5, 0x44, 0x47, 0x02, 0x7a, 0x7c, 0x84,
0x1d, 0x27, 0xeb, 0x59, 0x07, 0x69, 0x72, 0x07, 0x6a, 0xa9, 0x2a, 0x74, 0x96, 0x0d, 0x2b, 0x9a,
0x03, 0x9a, 0x17, 0xc7, 0x41, 0x8d, 0x05, 0xd8, 0x81, 0x5a, 0xaa, 0x26, 0x98, 0xb1, 0x92, 0xaa,
0x04, 0x9a, 0xb1, 0x92, 0xb2, 0xc4, 0x68, 0x4c, 0xa1, 0x6f, 0x24, 0xca, 0x8f, 0xa9, 0x12, 0x2f,
0xba, 0x3a, 0x72, 0x1e, 0x55, 0x85, 0xbb, 0xb9, 0x7a, 0x18, 0x92, 0x98, 0x85, 0xd7, 0xa0, 0x12,
0x57, 0x16, 0xd1, 0xf9, 0x4c, 0xb7, 0x70, 0x98, 0x9d, 0xda, 0x84, 0xa2, 0xa8, 0xf2, 0x21, 0x23,
0xa3, 0x9e, 0x9f, 0x28, 0x01, 0x36, 0x1f, 0x55, 0xe2, 0xa4, 0x0b, 0x60, 0x62, 0x52, 0x51, 0xc5,
0xc9, 0x98, 0x34, 0x55, 0xe2, 0x19, 0x77, 0x52, 0x13, 0x8a, 0xe2, 0x6d, 0x37, 0x63, 0xd2, 0x54,
0x7d, 0xa2, 0x39, 0x1a, 0x47, 0x3c, 0x08, 0x4f, 0xa1, 0x0d, 0x28, 0xf0, 0x37, 0x50, 0xb4, 0x3c,
0xea, 0x7d, 0x74, 0xd4, 0x8c, 0xa9, 0x27, 0x54, 0x63, 0x0a, 0x7d, 0x15, 0x0a, 0x3c, 0xd4, 0xcf,
0x98, 0x31, 0xf9, 0xc8, 0xd9, 0x1c, 0x89, 0x12, 0xb1, 0xe8, 0x80, 0x9e, 0x7c, 0x02, 0xc9, 0xf0,
0xd9, 0x8a, 0x47, 0xa2, 0xe6, 0x38, 0x98, 0xd1, 0x2a, 0xdf, 0xd1, 0xa0, 0x91, 0x95, 0x2d, 0xa3,
0xcc, 0x8b, 0x79, 0x54, 0xca, 0xdf, 0x7c, 0xe6, 0x90, 0x54, 0xb1, 0x0a, 0xdf, 0x85, 0x39, 0x45,
0x8e, 0x86, 0xae, 0x64, 0xcd, 0x97, 0x91, 0x5e, 0x36, 0x9f, 0x1a, 0x9f, 0x20, 0x5e, 0x7b, 0x03,
0x0a, 0x3c, 0xb7, 0xca, 0xd8, 0xbe, 0x64, 0xaa, 0x96, 0x61, 0x10, 0xa9, 0xd4, 0xcc, 0x98, 0x42,
0x18, 0xf4, 0x64, 0xa2, 0x95, 0xb1, 0x7f, 0x8a, 0x1c, 0xad, 0x79, 0x61, 0x0c, 0xcc, 0x78, 0x19,
0x0b, 0x60, 0x90, 0xe8, 0xa0, 0xc7, 0xb2, 0x44, 0x4f, 0xe7, 0x5a, 0xcd, 0xc7, 0x0f, 0xc4, 0x8b,
0x16, 0x58, 0xed, 0x81, 0xbe, 0x11, 0x06, 0xf7, 0xfb, 0x51, 0x5a, 0xf1, 0xdf, 0x91, 0xeb, 0xc6,
0x33, 0x5f, 0xbb, 0xd6, 0x76, 0xe9, 0x4e, 0x6f, 0x8b, 0x79, 0xae, 0x2b, 0x02, 0xf7, 0x49, 0x37,
0x90, 0x5f, 0x57, 0x5c, 0x9f, 0xe2, 0xd0, 0xb7, 0xbd, 0x2b, 0x7c, 0x2e, 0x09, 0xed, 0x6e, 0x6d,
0x15, 0xf9, 0xff, 0xb5, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x79, 0xfe, 0x2f, 0x81, 0x9a, 0x3a,
0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.

View File

@ -56,6 +56,7 @@ type ParamTable struct {
MsgStreamTimeTickBufSize int64
MaxNameLength int64
MaxFieldNum int64
MaxShardNum int32
MaxDimension int64
DefaultPartitionName string
DefaultIndexName string
@ -91,6 +92,7 @@ func (pt *ParamTable) initParams() {
pt.initMsgStreamTimeTickBufSize()
pt.initMaxNameLength()
pt.initMaxFieldNum()
pt.initMaxShardNum()
pt.initMaxDimension()
pt.initDefaultPartitionName()
pt.initDefaultIndexName()
@ -164,6 +166,18 @@ func (pt *ParamTable) initMaxNameLength() {
pt.MaxNameLength = maxNameLength
}
func (pt *ParamTable) initMaxShardNum() {
str, err := pt.Load("proxy.maxShardNum")
if err != nil {
panic(err)
}
maxShardNum, err := strconv.ParseInt(str, 10, 64)
if err != nil {
panic(err)
}
pt.MaxShardNum = int32(maxShardNum)
}
func (pt *ParamTable) initMaxFieldNum() {
str, err := pt.Load("proxy.maxFieldNum")
if err != nil {

View File

@ -11,9 +11,11 @@
package proxy
import "testing"
import (
"testing"
)
func TestParamTable(t *testing.T) {
func TestParamTable_Normal(t *testing.T) {
Params.Init()
t.Run("EtcdEndPoints", func(t *testing.T) {
@ -56,6 +58,10 @@ func TestParamTable(t *testing.T) {
t.Logf("MaxFieldNum: %d", Params.MaxFieldNum)
})
t.Run("MaxShardNum", func(t *testing.T) {
t.Logf("MaxShardNum: %d", Params.MaxShardNum)
})
t.Run("MaxDimension", func(t *testing.T) {
t.Logf("MaxDimension: %d", Params.MaxDimension)
})
@ -76,3 +82,71 @@ func TestParamTable(t *testing.T) {
t.Logf("RoleName: %s", Params.RoleName)
})
}
func shouldPanic(t *testing.T, name string, f func()) {
defer func() { recover() }()
f()
t.Errorf("%s should have panicked", name)
}
func TestParamTable_Panics(t *testing.T) {
shouldPanic(t, "proxy.timeTickInterval", func() {
Params.Remove("proxy.timeTickInterval")
Params.initTimeTickInterval()
})
shouldPanic(t, "proxy.timeTickInterval", func() {
Params.Save("proxy.timeTickInterval", "")
Params.initTimeTickInterval()
})
shouldPanic(t, "proxy.msgStream.timeTick.bufSize", func() {
Params.Remove("proxy.msgStream.timeTick.bufSize")
Params.initMsgStreamTimeTickBufSize()
})
shouldPanic(t, "proxy.msgStream.timeTick.bufSize", func() {
Params.Save("proxy.msgStream.timeTick.bufSize", "abc")
Params.initMsgStreamTimeTickBufSize()
})
shouldPanic(t, "proxy.maxNameLength", func() {
Params.Remove("proxy.maxNameLength")
Params.initMaxNameLength()
})
shouldPanic(t, "proxy.maxNameLength", func() {
Params.Save("proxy.maxNameLength", "abc")
Params.initMaxNameLength()
})
shouldPanic(t, "proxy.maxFieldNum", func() {
Params.Remove("proxy.maxFieldNum")
Params.initMaxFieldNum()
})
shouldPanic(t, "proxy.maxFieldNum", func() {
Params.Save("proxy.maxFieldNum", "abc")
Params.initMaxFieldNum()
})
shouldPanic(t, "proxy.maxShardNum", func() {
Params.Remove("proxy.maxShardNum")
Params.initMaxShardNum()
})
shouldPanic(t, "proxy.maxShardNum", func() {
Params.Save("proxy.maxShardNum", "abc")
Params.initMaxShardNum()
})
shouldPanic(t, "proxy.maxDimension", func() {
Params.Remove("proxy.maxDimension")
Params.initMaxDimension()
})
shouldPanic(t, "proxy.maxDimension", func() {
Params.Save("proxy.maxDimension", "-asdf")
Params.initMaxDimension()
})
}

View File

@ -1128,6 +1128,10 @@ func (cct *CreateCollectionTask) PreExecute(ctx context.Context) error {
return err
}
if cct.ShardsNum > Params.MaxShardNum {
return fmt.Errorf("maximum shards's number should be limited to %d", Params.MaxShardNum)
}
if int64(len(cct.schema.Fields)) > Params.MaxFieldNum {
return fmt.Errorf("maximum field's number should be limited to %d", Params.MaxFieldNum)
}

View File

@ -65,6 +65,8 @@ const (
// MetricRequestsSuccess used to count the num of successful requests
MetricRequestsSuccess = "success"
DefaultShardsNum = int32(2)
)
func metricProxy(v int64) string {

View File

@ -257,6 +257,139 @@ func getNotTtMsg(ctx context.Context, n int, ch <-chan *msgstream.MsgPack) []msg
}
}
func createCollectionInMeta(dbName, collName string, core *Core, shardsNum int32, modifyFunc func(*etcdpb.CollectionInfo)) error {
schema := schemapb.CollectionSchema{
Name: collName,
}
sbf, err := proto.Marshal(&schema)
t := &milvuspb.CreateCollectionRequest{
Base: &commonpb.MsgBase{
MsgType: commonpb.MsgType_CreateCollection,
Timestamp: 100,
},
DbName: dbName,
CollectionName: collName,
Schema: sbf,
ShardsNum: shardsNum,
}
err = proto.Unmarshal(t.Schema, &schema)
if err != nil {
return fmt.Errorf("unmarshal schema error= %w", err)
}
for idx, field := range schema.Fields {
field.FieldID = int64(idx + StartOfUserFieldID)
}
rowIDField := &schemapb.FieldSchema{
FieldID: int64(RowIDField),
Name: RowIDFieldName,
IsPrimaryKey: false,
Description: "row id",
DataType: schemapb.DataType_Int64,
}
timeStampField := &schemapb.FieldSchema{
FieldID: int64(TimeStampField),
Name: TimeStampFieldName,
IsPrimaryKey: false,
Description: "time stamp",
DataType: schemapb.DataType_Int64,
}
schema.Fields = append(schema.Fields, rowIDField, timeStampField)
collID, _, err := core.IDAllocator(1)
if err != nil {
return fmt.Errorf("alloc collection id error = %w", err)
}
partID, _, err := core.IDAllocator(1)
if err != nil {
return fmt.Errorf("alloc partition id error = %w", err)
}
vchanNames := make([]string, t.ShardsNum)
chanNames := make([]string, t.ShardsNum)
for i := int32(0); i < t.ShardsNum; i++ {
vchanNames[i] = fmt.Sprintf("%s_%dv%d", core.dmlChannels.GetDmlMsgStreamName(), collID, i)
chanNames[i] = ToPhysicalChannel(vchanNames[i])
}
collInfo := etcdpb.CollectionInfo{
ID: collID,
Schema: &schema,
PartitionIDs: []typeutil.UniqueID{partID},
PartitionNames: []string{Params.DefaultPartitionName},
FieldIndexes: make([]*etcdpb.FieldIndexInfo, 0, 16),
VirtualChannelNames: vchanNames,
PhysicalChannelNames: chanNames,
ShardsNum: 0, // intend to set zero
PartitionCreatedTimestamps: []uint64{0},
}
if modifyFunc != nil {
modifyFunc(&collInfo)
}
idxInfo := make([]*etcdpb.IndexInfo, 0, 16)
// schema is modified (add RowIDField and TimestampField),
// so need Marshal again
schemaBytes, err := proto.Marshal(&schema)
if err != nil {
return fmt.Errorf("marshal schema error = %w", err)
}
ddCollReq := internalpb.CreateCollectionRequest{
Base: t.Base,
DbName: t.DbName,
CollectionName: t.CollectionName,
PartitionName: Params.DefaultPartitionName,
DbID: 0, //TODO,not used
CollectionID: collID,
PartitionID: partID,
Schema: schemaBytes,
VirtualChannelNames: vchanNames,
PhysicalChannelNames: chanNames,
}
// build DdOperation and save it into etcd, when ddmsg send fail,
// system can restore ddmsg from etcd and re-send
ddOp := func(ts typeutil.Timestamp) (string, error) {
ddCollReq.Base.Timestamp = ts
return EncodeDdOperation(&ddCollReq, CreateCollectionDDType)
}
reason := fmt.Sprintf("create collection %d", collID)
ts, err := core.TSOAllocator(1)
if err != nil {
return fmt.Errorf("TSO alloc fail, error = %w", err)
}
// use lambda function here to guarantee all resources to be released
createCollectionFn := func() error {
// lock for ddl operation
core.ddlLock.Lock()
defer core.ddlLock.Unlock()
core.chanTimeTick.AddDdlTimeTick(ts, reason)
// clear ddl timetick in all conditions
defer core.chanTimeTick.RemoveDdlTimeTick(ts, reason)
err = core.MetaTable.AddCollection(&collInfo, ts, idxInfo, ddOp)
if err != nil {
return fmt.Errorf("meta table add collection failed,error = %w", err)
}
return nil
}
err = createCollectionFn()
if err != nil {
return err
}
return nil
}
func TestRootCoord(t *testing.T) {
const (
dbName = "testDb"
@ -279,7 +412,7 @@ func TestRootCoord(t *testing.T) {
Params.MetaRootPath = fmt.Sprintf("/%d/%s", randVal, Params.MetaRootPath)
Params.KvRootPath = fmt.Sprintf("/%d/%s", randVal, Params.KvRootPath)
Params.MsgChannelSubName = fmt.Sprintf("subname-%d", randVal)
Params.DmlChannelName = fmt.Sprintf("dml-%d", randVal)
Params.DmlChannelName = fmt.Sprintf("rootcoord-dml-test-%d", randVal)
err = core.Register()
assert.Nil(t, err)
@ -345,6 +478,7 @@ func TestRootCoord(t *testing.T) {
timeTickStream.Start()
dmlStream, _ := tmpFactory.NewMsgStream(ctx)
clearMsgChan(1500*time.Millisecond, dmlStream.Chan())
err = core.Init()
assert.Nil(t, err)
@ -362,6 +496,7 @@ func TestRootCoord(t *testing.T) {
assert.Nil(t, err)
time.Sleep(100 * time.Millisecond)
shardsNum := int32(8)
t.Run("time tick", func(t *testing.T) {
ttmsg, ok := <-timeTickStream.Chan()
@ -404,7 +539,6 @@ func TestRootCoord(t *testing.T) {
}
sbf, err := proto.Marshal(&schema)
assert.Nil(t, err)
req := &milvuspb.CreateCollectionRequest{
Base: &commonpb.MsgBase{
MsgType: commonpb.MsgType_CreateCollection,
@ -415,12 +549,13 @@ func TestRootCoord(t *testing.T) {
DbName: dbName,
CollectionName: collName,
Schema: sbf,
ShardsNum: shardsNum,
}
status, err := core.CreateCollection(ctx, req)
assert.Nil(t, err)
assert.Equal(t, commonpb.ErrorCode_Success, status.ErrorCode)
assert.Equal(t, 2, core.dmlChannels.GetNumChannels())
assert.Equal(t, shardsNum, int32(core.dmlChannels.GetNumChannels()))
pChan := core.MetaTable.ListCollectionPhysicalChannels()
dmlStream.AsConsumer([]string{pChan[0]}, Params.MsgChannelSubName)
@ -438,8 +573,9 @@ func TestRootCoord(t *testing.T) {
assert.Equal(t, createMeta.PartitionIDs[0], createMsg.PartitionID)
assert.Equal(t, 1, len(createMeta.PartitionNames))
assert.Equal(t, createMeta.PartitionNames[0], createMsg.PartitionName)
assert.Equal(t, 2, len(createMeta.VirtualChannelNames))
assert.Equal(t, 2, len(createMeta.PhysicalChannelNames))
assert.Equal(t, shardsNum, int32(len(createMeta.VirtualChannelNames)))
assert.Equal(t, shardsNum, int32(len(createMeta.PhysicalChannelNames)))
assert.Equal(t, shardsNum, createMeta.ShardsNum)
vChanName := createMeta.VirtualChannelNames[0]
assert.Equal(t, createMeta.PhysicalChannelNames[0], ToPhysicalChannel(vChanName))
@ -455,9 +591,9 @@ func TestRootCoord(t *testing.T) {
assert.Equal(t, len(core.chanTimeTick.proxyTimeTick), 2)
pt, ok := core.chanTimeTick.proxyTimeTick[core.session.ServerID]
assert.True(t, ok)
assert.Equal(t, 2, len(pt.in.ChannelNames))
assert.Equal(t, 2, len(pt.in.Timestamps))
assert.Equal(t, 2, len(pt.timeTick))
assert.Equal(t, shardsNum, int32(len(pt.in.ChannelNames)))
assert.Equal(t, shardsNum, int32(len(pt.in.Timestamps)))
assert.Equal(t, shardsNum, int32(len(pt.timeTick)))
assert.ElementsMatch(t, pt.in.ChannelNames, createMeta.PhysicalChannelNames)
assert.Equal(t, pt.in.Timestamps[0], pt.in.Timestamps[1])
assert.Equal(t, pt.in.Timestamps[0], pt.in.DefaultTimestamp)
@ -580,8 +716,9 @@ func TestRootCoord(t *testing.T) {
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))
assert.Equal(t, shardsNum, int32(len(rsp.VirtualChannelNames)))
assert.Equal(t, shardsNum, int32(len(rsp.PhysicalChannelNames)))
assert.Equal(t, shardsNum, rsp.ShardsNum)
})
t.Run("show collection", func(t *testing.T) {
@ -1881,6 +2018,29 @@ func TestRootCoord2(t *testing.T) {
assert.True(t, ok)
t.Log("time tick", m1.Base.Timestamp)
})
t.Run("describe collection", func(t *testing.T) {
collMeta, err := core.MetaTable.GetCollectionByName(collName, 0)
assert.Nil(t, err)
req := &milvuspb.DescribeCollectionRequest{
Base: &commonpb.MsgBase{
MsgType: commonpb.MsgType_DescribeCollection,
MsgID: 120,
Timestamp: 120,
SourceID: 120,
},
DbName: dbName,
CollectionName: collName,
}
rsp, err := core.DescribeCollection(ctx, req)
assert.Nil(t, err)
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, DefaultShardsNum, int32(len(rsp.VirtualChannelNames)))
assert.Equal(t, DefaultShardsNum, int32(len(rsp.PhysicalChannelNames)))
assert.Equal(t, DefaultShardsNum, rsp.ShardsNum)
})
}
func TestCheckInit(t *testing.T) {
@ -2155,3 +2315,102 @@ func TestCheckFlushedSegments(t *testing.T) {
})
}
func TestRootCoord_CheckZeroShardsNum(t *testing.T) {
const (
dbName = "testDb"
collName = "testColl"
)
shardsNum := int32(2)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
msFactory := msgstream.NewPmsFactory()
Params.Init()
core, err := NewCore(ctx, msFactory)
assert.Nil(t, err)
randVal := rand.Int()
Params.TimeTickChannel = fmt.Sprintf("rootcoord-time-tick-%d", randVal)
Params.StatisticsChannel = fmt.Sprintf("rootcoord-statistics-%d", randVal)
Params.MetaRootPath = fmt.Sprintf("/%d/%s", randVal, Params.MetaRootPath)
Params.KvRootPath = fmt.Sprintf("/%d/%s", randVal, Params.KvRootPath)
Params.MsgChannelSubName = fmt.Sprintf("subname-%d", randVal)
err = core.Register()
assert.Nil(t, err)
dm := &dataMock{randVal: randVal}
err = core.SetDataCoord(ctx, dm)
assert.Nil(t, err)
im := &indexMock{
fileArray: []string{},
idxBuildID: []int64{},
idxID: []int64{},
idxDropID: []int64{},
mutex: sync.Mutex{},
}
err = core.SetIndexCoord(im)
assert.Nil(t, err)
qm := &queryMock{
collID: nil,
mutex: sync.Mutex{},
}
err = core.SetQueryCoord(qm)
assert.Nil(t, err)
core.NewProxyClient = func(*sessionutil.Session) (types.Proxy, error) {
return nil, nil
}
err = core.Init()
assert.Nil(t, err)
err = core.Start()
assert.Nil(t, err)
m := map[string]interface{}{
"receiveBufSize": 1024,
"pulsarAddress": Params.PulsarAddress,
"pulsarBufSize": 1024}
err = msFactory.SetParams(m)
assert.Nil(t, err)
timeTickStream, _ := msFactory.NewMsgStream(ctx)
timeTickStream.AsConsumer([]string{Params.TimeTickChannel}, Params.MsgChannelSubName)
timeTickStream.Start()
time.Sleep(100 * time.Millisecond)
modifyFunc := func(collInfo *etcdpb.CollectionInfo) {
collInfo.ShardsNum = 0
}
createCollectionInMeta(dbName, collName, core, shardsNum, modifyFunc)
t.Run("describe collection", func(t *testing.T) {
collMeta, err := core.MetaTable.GetCollectionByName(collName, 0)
assert.Nil(t, err)
req := &milvuspb.DescribeCollectionRequest{
Base: &commonpb.MsgBase{
MsgType: commonpb.MsgType_DescribeCollection,
MsgID: 120,
Timestamp: 120,
SourceID: 120,
},
DbName: dbName,
CollectionName: collName,
}
rsp, err := core.DescribeCollection(ctx, req)
assert.Nil(t, err)
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, shardsNum, int32(len(rsp.VirtualChannelNames)))
assert.Equal(t, shardsNum, int32(len(rsp.PhysicalChannelNames)))
assert.Equal(t, shardsNum, rsp.ShardsNum)
})
}

View File

@ -79,8 +79,6 @@ func (t *CreateCollectionReqTask) Type() commonpb.MsgType {
}
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())])
}
@ -93,12 +91,11 @@ func (t *CreateCollectionReqTask) Execute(ctx context.Context) error {
if t.Req.CollectionName != schema.Name {
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
t.Req.ShardsNum = DefaultShardsNum
}
log.Debug("CreateCollectionReqTask Execute", zap.Any("CollectionName", t.Req.CollectionName),
zap.Any("ShardsNum", t.Req.ShardsNum))
for idx, field := range schema.Fields {
field.FieldID = int64(idx + StartOfUserFieldID)
@ -136,7 +133,7 @@ func (t *CreateCollectionReqTask) Execute(ctx context.Context) error {
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_%dv", t.core.dmlChannels.GetDmlMsgStreamName(), collID)
vchanNames[i] = fmt.Sprintf("%s_%dv%d", t.core.dmlChannels.GetDmlMsgStreamName(), collID, i)
chanNames[i] = ToPhysicalChannel(vchanNames[i])
}
@ -148,6 +145,7 @@ func (t *CreateCollectionReqTask) Execute(ctx context.Context) error {
FieldIndexes: make([]*etcdpb.FieldIndexInfo, 0, 16),
VirtualChannelNames: vchanNames,
PhysicalChannelNames: chanNames,
ShardsNum: t.Req.ShardsNum,
PartitionCreatedTimestamps: []uint64{0},
}
@ -376,16 +374,12 @@ func (t *DescribeCollectionReqTask) Execute(ctx context.Context) error {
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 {
// newField = append(newField, field)
// }
//}
//t.Rsp.Schema.Fields = newField
t.Rsp.VirtualChannelNames = collInfo.VirtualChannelNames
t.Rsp.PhysicalChannelNames = collInfo.PhysicalChannelNames
if collInfo.ShardsNum == 0 {
collInfo.ShardsNum = int32(len(collInfo.VirtualChannelNames))
}
t.Rsp.ShardsNum = collInfo.ShardsNum
t.Rsp.CreatedTimestamp = collInfo.CreateTime
createdPhysicalTime, _ := tsoutil.ParseHybridTs(collInfo.CreateTime)