mirror of https://github.com/milvus-io/milvus.git
Refactor master:index ids
Signed-off-by: neza2017 <yefu.chen@zilliz.com>pull/4973/head^2
parent
70fe5233cf
commit
85c1404393
|
@ -24,4 +24,4 @@ master:
|
|||
|
||||
maxPartitionNum: 4096
|
||||
nodeID: 100
|
||||
timeout: 5 # time out, 5 seconds
|
||||
timeout: 3600 # time out, 5 seconds
|
|
@ -18,8 +18,7 @@
|
|||
extern PROTOBUF_INTERNAL_EXPORT_common_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Address_common_2eproto;
|
||||
extern PROTOBUF_INTERNAL_EXPORT_common_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_KeyValuePair_common_2eproto;
|
||||
extern PROTOBUF_INTERNAL_EXPORT_etcd_5fmeta_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FieldBinlogFiles_etcd_5fmeta_2eproto;
|
||||
extern PROTOBUF_INTERNAL_EXPORT_etcd_5fmeta_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FieldIndexInfo_etcd_5fmeta_2eproto;
|
||||
extern PROTOBUF_INTERNAL_EXPORT_etcd_5fmeta_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_IndexInfo_etcd_5fmeta_2eproto;
|
||||
extern PROTOBUF_INTERNAL_EXPORT_etcd_5fmeta_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FieldIndexInfo_etcd_5fmeta_2eproto;
|
||||
extern PROTOBUF_INTERNAL_EXPORT_schema_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CollectionSchema_schema_2eproto;
|
||||
namespace milvus {
|
||||
namespace proto {
|
||||
|
@ -127,9 +126,8 @@ static void InitDefaultsscc_info_FieldIndexInfo_etcd_5fmeta_2eproto() {
|
|||
::milvus::proto::etcd::FieldIndexInfo::InitAsDefaultInstance();
|
||||
}
|
||||
|
||||
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FieldIndexInfo_etcd_5fmeta_2eproto =
|
||||
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_FieldIndexInfo_etcd_5fmeta_2eproto}, {
|
||||
&scc_info_IndexInfo_etcd_5fmeta_2eproto.base,}};
|
||||
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FieldIndexInfo_etcd_5fmeta_2eproto =
|
||||
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_FieldIndexInfo_etcd_5fmeta_2eproto}, {}};
|
||||
|
||||
static void InitDefaultsscc_info_FieldIndexMeta_etcd_5fmeta_2eproto() {
|
||||
GOOGLE_PROTOBUF_VERIFY_VERSION;
|
||||
|
@ -277,7 +275,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_etcd_5fmeta_2eproto::offsets[]
|
|||
~0u, // no _oneof_case_
|
||||
~0u, // no _weak_field_map_
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::FieldIndexInfo, filedid_),
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::FieldIndexInfo, index_info_),
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::FieldIndexInfo, indexid_),
|
||||
~0u, // no _has_bits_
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::etcd::CollectionInfo, _internal_metadata_),
|
||||
~0u, // no _extensions_
|
||||
|
@ -382,35 +380,34 @@ const char descriptor_table_protodef_etcd_5fmeta_2eproto[] PROTOBUF_SECTION_VARI
|
|||
"ID\030\002 \001(\003\022\022\n\nsegmentIDs\030\003 \003(\003\"i\n\tIndexInf"
|
||||
"o\022\022\n\nindex_name\030\001 \001(\t\022\017\n\007indexID\030\002 \001(\003\0227"
|
||||
"\n\014index_params\030\003 \003(\0132!.milvus.proto.comm"
|
||||
"on.KeyValuePair\"S\n\016FieldIndexInfo\022\017\n\007fil"
|
||||
"edID\030\001 \001(\003\0220\n\nindex_info\030\002 \001(\0132\034.milvus."
|
||||
"proto.etcd.IndexInfo\"\270\001\n\016CollectionInfo\022"
|
||||
"\n\n\002ID\030\001 \001(\003\0225\n\006schema\030\002 \001(\0132%.milvus.pro"
|
||||
"to.schema.CollectionSchema\022\023\n\013create_tim"
|
||||
"e\030\003 \001(\004\022\024\n\014partitionIDs\030\004 \003(\003\0228\n\rfield_i"
|
||||
"ndexes\030\005 \003(\0132!.milvus.proto.etcd.FieldIn"
|
||||
"dexInfo\"X\n\020SegmentIndexInfo\022\021\n\tsegmentID"
|
||||
"\030\001 \001(\003\022\017\n\007fieldID\030\002 \001(\003\022\017\n\007indexID\030\003 \001(\003"
|
||||
"\022\017\n\007buildID\030\004 \001(\003\"\252\001\n\016CollectionMeta\022\n\n\002"
|
||||
"ID\030\001 \001(\003\0225\n\006schema\030\002 \001(\0132%.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_ta"
|
||||
"gs\030\005 \003(\t\022\024\n\014partitionIDs\030\006 \003(\003\"9\n\020FieldB"
|
||||
"inlogFiles\022\017\n\007fieldID\030\001 \001(\003\022\024\n\014binlog_fi"
|
||||
"les\030\002 \003(\t\"\204\002\n\013SegmentMeta\022\021\n\tsegmentID\030\001"
|
||||
" \001(\003\022\024\n\014collectionID\030\002 \001(\003\022\025\n\rpartition_"
|
||||
"tag\030\003 \001(\t\022\025\n\rchannel_start\030\004 \001(\005\022\023\n\013chan"
|
||||
"nel_end\030\005 \001(\005\022\021\n\topen_time\030\006 \001(\004\022\022\n\nclos"
|
||||
"e_time\030\007 \001(\004\022\020\n\010num_rows\030\010 \001(\003\022\020\n\010mem_si"
|
||||
"ze\030\t \001(\003\022>\n\021binlog_file_paths\030\n \003(\0132#.mi"
|
||||
"lvus.proto.etcd.FieldBinlogFiles\"\310\001\n\016Fie"
|
||||
"ldIndexMeta\022\021\n\tsegmentID\030\001 \001(\003\022\017\n\007fieldI"
|
||||
"D\030\002 \001(\003\022\017\n\007indexID\030\003 \001(\003\0227\n\014index_params"
|
||||
"\030\004 \003(\0132!.milvus.proto.common.KeyValuePai"
|
||||
"r\022.\n\005state\030\005 \001(\0162\037.milvus.proto.common.I"
|
||||
"ndexState\022\030\n\020index_file_paths\030\006 \003(\tB@Z>g"
|
||||
"ithub.com/zilliztech/milvus-distributed/"
|
||||
"internal/proto/etcdpbb\006proto3"
|
||||
"on.KeyValuePair\"2\n\016FieldIndexInfo\022\017\n\007fil"
|
||||
"edID\030\001 \001(\003\022\017\n\007indexID\030\002 \001(\003\"\270\001\n\016Collecti"
|
||||
"onInfo\022\n\n\002ID\030\001 \001(\003\0225\n\006schema\030\002 \001(\0132%.mil"
|
||||
"vus.proto.schema.CollectionSchema\022\023\n\013cre"
|
||||
"ate_time\030\003 \001(\004\022\024\n\014partitionIDs\030\004 \003(\003\0228\n\r"
|
||||
"field_indexes\030\005 \003(\0132!.milvus.proto.etcd."
|
||||
"FieldIndexInfo\"X\n\020SegmentIndexInfo\022\021\n\tse"
|
||||
"gmentID\030\001 \001(\003\022\017\n\007fieldID\030\002 \001(\003\022\017\n\007indexI"
|
||||
"D\030\003 \001(\003\022\017\n\007buildID\030\004 \001(\003\"\252\001\n\016CollectionM"
|
||||
"eta\022\n\n\002ID\030\001 \001(\003\0225\n\006schema\030\002 \001(\0132%.milvus"
|
||||
".proto.schema.CollectionSchema\022\023\n\013create"
|
||||
"_time\030\003 \001(\004\022\022\n\nsegmentIDs\030\004 \003(\003\022\026\n\016parti"
|
||||
"tion_tags\030\005 \003(\t\022\024\n\014partitionIDs\030\006 \003(\003\"9\n"
|
||||
"\020FieldBinlogFiles\022\017\n\007fieldID\030\001 \001(\003\022\024\n\014bi"
|
||||
"nlog_files\030\002 \003(\t\"\204\002\n\013SegmentMeta\022\021\n\tsegm"
|
||||
"entID\030\001 \001(\003\022\024\n\014collectionID\030\002 \001(\003\022\025\n\rpar"
|
||||
"tition_tag\030\003 \001(\t\022\025\n\rchannel_start\030\004 \001(\005\022"
|
||||
"\023\n\013channel_end\030\005 \001(\005\022\021\n\topen_time\030\006 \001(\004\022"
|
||||
"\022\n\nclose_time\030\007 \001(\004\022\020\n\010num_rows\030\010 \001(\003\022\020\n"
|
||||
"\010mem_size\030\t \001(\003\022>\n\021binlog_file_paths\030\n \003"
|
||||
"(\0132#.milvus.proto.etcd.FieldBinlogFiles\""
|
||||
"\310\001\n\016FieldIndexMeta\022\021\n\tsegmentID\030\001 \001(\003\022\017\n"
|
||||
"\007fieldID\030\002 \001(\003\022\017\n\007indexID\030\003 \001(\003\0227\n\014index"
|
||||
"_params\030\004 \003(\0132!.milvus.proto.common.KeyV"
|
||||
"aluePair\022.\n\005state\030\005 \001(\0162\037.milvus.proto.c"
|
||||
"ommon.IndexState\022\030\n\020index_file_paths\030\006 \003"
|
||||
"(\tB@Z>github.com/zilliztech/milvus-distr"
|
||||
"ibuted/internal/proto/etcdpbb\006proto3"
|
||||
;
|
||||
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_etcd_5fmeta_2eproto_deps[2] = {
|
||||
&::descriptor_table_common_2eproto,
|
||||
|
@ -432,7 +429,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", 1589,
|
||||
&descriptor_table_etcd_5fmeta_2eproto_initialized, descriptor_table_protodef_etcd_5fmeta_2eproto, "etcd_meta.proto", 1556,
|
||||
&descriptor_table_etcd_5fmeta_2eproto_once, descriptor_table_etcd_5fmeta_2eproto_sccs, descriptor_table_etcd_5fmeta_2eproto_deps, 11, 2,
|
||||
schemas, file_default_instances, TableStruct_etcd_5fmeta_2eproto::offsets,
|
||||
file_level_metadata_etcd_5fmeta_2eproto, 11, file_level_enum_descriptors_etcd_5fmeta_2eproto, file_level_service_descriptors_etcd_5fmeta_2eproto,
|
||||
|
@ -1997,18 +1994,11 @@ void IndexInfo::InternalSwap(IndexInfo* other) {
|
|||
// ===================================================================
|
||||
|
||||
void FieldIndexInfo::InitAsDefaultInstance() {
|
||||
::milvus::proto::etcd::_FieldIndexInfo_default_instance_._instance.get_mutable()->index_info_ = const_cast< ::milvus::proto::etcd::IndexInfo*>(
|
||||
::milvus::proto::etcd::IndexInfo::internal_default_instance());
|
||||
}
|
||||
class FieldIndexInfo::_Internal {
|
||||
public:
|
||||
static const ::milvus::proto::etcd::IndexInfo& index_info(const FieldIndexInfo* msg);
|
||||
};
|
||||
|
||||
const ::milvus::proto::etcd::IndexInfo&
|
||||
FieldIndexInfo::_Internal::index_info(const FieldIndexInfo* msg) {
|
||||
return *msg->index_info_;
|
||||
}
|
||||
FieldIndexInfo::FieldIndexInfo()
|
||||
: ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
|
||||
SharedCtor();
|
||||
|
@ -2018,20 +2008,16 @@ FieldIndexInfo::FieldIndexInfo(const FieldIndexInfo& from)
|
|||
: ::PROTOBUF_NAMESPACE_ID::Message(),
|
||||
_internal_metadata_(nullptr) {
|
||||
_internal_metadata_.MergeFrom(from._internal_metadata_);
|
||||
if (from.has_index_info()) {
|
||||
index_info_ = new ::milvus::proto::etcd::IndexInfo(*from.index_info_);
|
||||
} else {
|
||||
index_info_ = nullptr;
|
||||
}
|
||||
filedid_ = from.filedid_;
|
||||
::memcpy(&filedid_, &from.filedid_,
|
||||
static_cast<size_t>(reinterpret_cast<char*>(&indexid_) -
|
||||
reinterpret_cast<char*>(&filedid_)) + sizeof(indexid_));
|
||||
// @@protoc_insertion_point(copy_constructor:milvus.proto.etcd.FieldIndexInfo)
|
||||
}
|
||||
|
||||
void FieldIndexInfo::SharedCtor() {
|
||||
::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FieldIndexInfo_etcd_5fmeta_2eproto.base);
|
||||
::memset(&index_info_, 0, static_cast<size_t>(
|
||||
reinterpret_cast<char*>(&filedid_) -
|
||||
reinterpret_cast<char*>(&index_info_)) + sizeof(filedid_));
|
||||
::memset(&filedid_, 0, static_cast<size_t>(
|
||||
reinterpret_cast<char*>(&indexid_) -
|
||||
reinterpret_cast<char*>(&filedid_)) + sizeof(indexid_));
|
||||
}
|
||||
|
||||
FieldIndexInfo::~FieldIndexInfo() {
|
||||
|
@ -2040,7 +2026,6 @@ FieldIndexInfo::~FieldIndexInfo() {
|
|||
}
|
||||
|
||||
void FieldIndexInfo::SharedDtor() {
|
||||
if (this != internal_default_instance()) delete index_info_;
|
||||
}
|
||||
|
||||
void FieldIndexInfo::SetCachedSize(int size) const {
|
||||
|
@ -2058,11 +2043,9 @@ void FieldIndexInfo::Clear() {
|
|||
// Prevent compiler warnings about cached_has_bits being unused
|
||||
(void) cached_has_bits;
|
||||
|
||||
if (GetArenaNoVirtual() == nullptr && index_info_ != nullptr) {
|
||||
delete index_info_;
|
||||
}
|
||||
index_info_ = nullptr;
|
||||
filedid_ = PROTOBUF_LONGLONG(0);
|
||||
::memset(&filedid_, 0, static_cast<size_t>(
|
||||
reinterpret_cast<char*>(&indexid_) -
|
||||
reinterpret_cast<char*>(&filedid_)) + sizeof(indexid_));
|
||||
_internal_metadata_.Clear();
|
||||
}
|
||||
|
||||
|
@ -2081,10 +2064,10 @@ const char* FieldIndexInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE
|
|||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .milvus.proto.etcd.IndexInfo index_info = 2;
|
||||
// int64 indexID = 2;
|
||||
case 2:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
|
||||
ptr = ctx->ParseMessage(mutable_index_info(), ptr);
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
|
||||
indexid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
|
@ -2131,11 +2114,13 @@ bool FieldIndexInfo::MergePartialFromCodedStream(
|
|||
break;
|
||||
}
|
||||
|
||||
// .milvus.proto.etcd.IndexInfo index_info = 2;
|
||||
// int64 indexID = 2;
|
||||
case 2: {
|
||||
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
|
||||
DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
|
||||
input, mutable_index_info()));
|
||||
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (16 & 0xFF)) {
|
||||
|
||||
DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
|
||||
::PROTOBUF_NAMESPACE_ID::int64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_INT64>(
|
||||
input, &indexid_)));
|
||||
} else {
|
||||
goto handle_unusual;
|
||||
}
|
||||
|
@ -2174,10 +2159,9 @@ void FieldIndexInfo::SerializeWithCachedSizes(
|
|||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64(1, this->filedid(), output);
|
||||
}
|
||||
|
||||
// .milvus.proto.etcd.IndexInfo index_info = 2;
|
||||
if (this->has_index_info()) {
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
|
||||
2, _Internal::index_info(this), output);
|
||||
// int64 indexID = 2;
|
||||
if (this->indexid() != 0) {
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64(2, this->indexid(), output);
|
||||
}
|
||||
|
||||
if (_internal_metadata_.have_unknown_fields()) {
|
||||
|
@ -2198,11 +2182,9 @@ void FieldIndexInfo::SerializeWithCachedSizes(
|
|||
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->filedid(), target);
|
||||
}
|
||||
|
||||
// .milvus.proto.etcd.IndexInfo index_info = 2;
|
||||
if (this->has_index_info()) {
|
||||
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
|
||||
InternalWriteMessageToArray(
|
||||
2, _Internal::index_info(this), target);
|
||||
// int64 indexID = 2;
|
||||
if (this->indexid() != 0) {
|
||||
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->indexid(), target);
|
||||
}
|
||||
|
||||
if (_internal_metadata_.have_unknown_fields()) {
|
||||
|
@ -2226,13 +2208,6 @@ size_t FieldIndexInfo::ByteSizeLong() const {
|
|||
// Prevent compiler warnings about cached_has_bits being unused
|
||||
(void) cached_has_bits;
|
||||
|
||||
// .milvus.proto.etcd.IndexInfo index_info = 2;
|
||||
if (this->has_index_info()) {
|
||||
total_size += 1 +
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
|
||||
*index_info_);
|
||||
}
|
||||
|
||||
// int64 filedID = 1;
|
||||
if (this->filedid() != 0) {
|
||||
total_size += 1 +
|
||||
|
@ -2240,6 +2215,13 @@ size_t FieldIndexInfo::ByteSizeLong() const {
|
|||
this->filedid());
|
||||
}
|
||||
|
||||
// int64 indexID = 2;
|
||||
if (this->indexid() != 0) {
|
||||
total_size += 1 +
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
|
||||
this->indexid());
|
||||
}
|
||||
|
||||
int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
|
||||
SetCachedSize(cached_size);
|
||||
return total_size;
|
||||
|
@ -2267,12 +2249,12 @@ void FieldIndexInfo::MergeFrom(const FieldIndexInfo& from) {
|
|||
::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
|
||||
(void) cached_has_bits;
|
||||
|
||||
if (from.has_index_info()) {
|
||||
mutable_index_info()->::milvus::proto::etcd::IndexInfo::MergeFrom(from.index_info());
|
||||
}
|
||||
if (from.filedid() != 0) {
|
||||
set_filedid(from.filedid());
|
||||
}
|
||||
if (from.indexid() != 0) {
|
||||
set_indexid(from.indexid());
|
||||
}
|
||||
}
|
||||
|
||||
void FieldIndexInfo::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
|
||||
|
@ -2296,8 +2278,8 @@ bool FieldIndexInfo::IsInitialized() const {
|
|||
void FieldIndexInfo::InternalSwap(FieldIndexInfo* other) {
|
||||
using std::swap;
|
||||
_internal_metadata_.Swap(&other->_internal_metadata_);
|
||||
swap(index_info_, other->index_info_);
|
||||
swap(filedid_, other->filedid_);
|
||||
swap(indexid_, other->indexid_);
|
||||
}
|
||||
|
||||
::PROTOBUF_NAMESPACE_ID::Metadata FieldIndexInfo::GetMetadata() const {
|
||||
|
|
|
@ -872,29 +872,26 @@ class FieldIndexInfo :
|
|||
// accessors -------------------------------------------------------
|
||||
|
||||
enum : int {
|
||||
kIndexInfoFieldNumber = 2,
|
||||
kFiledIDFieldNumber = 1,
|
||||
kIndexIDFieldNumber = 2,
|
||||
};
|
||||
// .milvus.proto.etcd.IndexInfo index_info = 2;
|
||||
bool has_index_info() const;
|
||||
void clear_index_info();
|
||||
const ::milvus::proto::etcd::IndexInfo& index_info() const;
|
||||
::milvus::proto::etcd::IndexInfo* release_index_info();
|
||||
::milvus::proto::etcd::IndexInfo* mutable_index_info();
|
||||
void set_allocated_index_info(::milvus::proto::etcd::IndexInfo* index_info);
|
||||
|
||||
// int64 filedID = 1;
|
||||
void clear_filedid();
|
||||
::PROTOBUF_NAMESPACE_ID::int64 filedid() const;
|
||||
void set_filedid(::PROTOBUF_NAMESPACE_ID::int64 value);
|
||||
|
||||
// int64 indexID = 2;
|
||||
void clear_indexid();
|
||||
::PROTOBUF_NAMESPACE_ID::int64 indexid() const;
|
||||
void set_indexid(::PROTOBUF_NAMESPACE_ID::int64 value);
|
||||
|
||||
// @@protoc_insertion_point(class_scope:milvus.proto.etcd.FieldIndexInfo)
|
||||
private:
|
||||
class _Internal;
|
||||
|
||||
::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
|
||||
::milvus::proto::etcd::IndexInfo* index_info_;
|
||||
::PROTOBUF_NAMESPACE_ID::int64 filedid_;
|
||||
::PROTOBUF_NAMESPACE_ID::int64 indexid_;
|
||||
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
|
||||
friend struct ::TableStruct_etcd_5fmeta_2eproto;
|
||||
};
|
||||
|
@ -2456,55 +2453,18 @@ inline void FieldIndexInfo::set_filedid(::PROTOBUF_NAMESPACE_ID::int64 value) {
|
|||
// @@protoc_insertion_point(field_set:milvus.proto.etcd.FieldIndexInfo.filedID)
|
||||
}
|
||||
|
||||
// .milvus.proto.etcd.IndexInfo index_info = 2;
|
||||
inline bool FieldIndexInfo::has_index_info() const {
|
||||
return this != internal_default_instance() && index_info_ != nullptr;
|
||||
// int64 indexID = 2;
|
||||
inline void FieldIndexInfo::clear_indexid() {
|
||||
indexid_ = PROTOBUF_LONGLONG(0);
|
||||
}
|
||||
inline void FieldIndexInfo::clear_index_info() {
|
||||
if (GetArenaNoVirtual() == nullptr && index_info_ != nullptr) {
|
||||
delete index_info_;
|
||||
}
|
||||
index_info_ = nullptr;
|
||||
inline ::PROTOBUF_NAMESPACE_ID::int64 FieldIndexInfo::indexid() const {
|
||||
// @@protoc_insertion_point(field_get:milvus.proto.etcd.FieldIndexInfo.indexID)
|
||||
return indexid_;
|
||||
}
|
||||
inline const ::milvus::proto::etcd::IndexInfo& FieldIndexInfo::index_info() const {
|
||||
const ::milvus::proto::etcd::IndexInfo* p = index_info_;
|
||||
// @@protoc_insertion_point(field_get:milvus.proto.etcd.FieldIndexInfo.index_info)
|
||||
return p != nullptr ? *p : *reinterpret_cast<const ::milvus::proto::etcd::IndexInfo*>(
|
||||
&::milvus::proto::etcd::_IndexInfo_default_instance_);
|
||||
}
|
||||
inline ::milvus::proto::etcd::IndexInfo* FieldIndexInfo::release_index_info() {
|
||||
// @@protoc_insertion_point(field_release:milvus.proto.etcd.FieldIndexInfo.index_info)
|
||||
inline void FieldIndexInfo::set_indexid(::PROTOBUF_NAMESPACE_ID::int64 value) {
|
||||
|
||||
::milvus::proto::etcd::IndexInfo* temp = index_info_;
|
||||
index_info_ = nullptr;
|
||||
return temp;
|
||||
}
|
||||
inline ::milvus::proto::etcd::IndexInfo* FieldIndexInfo::mutable_index_info() {
|
||||
|
||||
if (index_info_ == nullptr) {
|
||||
auto* p = CreateMaybeMessage<::milvus::proto::etcd::IndexInfo>(GetArenaNoVirtual());
|
||||
index_info_ = p;
|
||||
}
|
||||
// @@protoc_insertion_point(field_mutable:milvus.proto.etcd.FieldIndexInfo.index_info)
|
||||
return index_info_;
|
||||
}
|
||||
inline void FieldIndexInfo::set_allocated_index_info(::milvus::proto::etcd::IndexInfo* index_info) {
|
||||
::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
|
||||
if (message_arena == nullptr) {
|
||||
delete index_info_;
|
||||
}
|
||||
if (index_info) {
|
||||
::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
|
||||
if (message_arena != submessage_arena) {
|
||||
index_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
|
||||
message_arena, index_info, submessage_arena);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
}
|
||||
index_info_ = index_info;
|
||||
// @@protoc_insertion_point(field_set_allocated:milvus.proto.etcd.FieldIndexInfo.index_info)
|
||||
indexid_ = value;
|
||||
// @@protoc_insertion_point(field_set:milvus.proto.etcd.FieldIndexInfo.indexID)
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
|
|
@ -517,9 +517,8 @@ func TestGrpcService(t *testing.T) {
|
|||
rsp, err := cli.DescribeIndex(req)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_SUCCESS)
|
||||
assert.Equal(t, len(rsp.IndexDescriptions), 2)
|
||||
assert.Equal(t, len(rsp.IndexDescriptions), 1)
|
||||
assert.Equal(t, rsp.IndexDescriptions[0].IndexName, cms.Params.DefaultIndexName)
|
||||
assert.Equal(t, rsp.IndexDescriptions[1].IndexName, "testColl_index_100")
|
||||
|
||||
})
|
||||
|
||||
|
|
|
@ -376,13 +376,18 @@ func (c *Core) startSegmentFlushCompletedLoop() {
|
|||
log.Printf("GetCollectionBySegmentID, error = %s ", err.Error())
|
||||
}
|
||||
for _, f := range coll.FieldIndexes {
|
||||
idxInfo, err := c.MetaTable.GetIndexByID(f.IndexID)
|
||||
if err != nil {
|
||||
log.Printf("index id = %d not found", f.IndexID)
|
||||
}
|
||||
|
||||
fieldSch, err := GetFieldSchemaByID(coll, f.FiledID)
|
||||
if err == nil {
|
||||
t := &CreateIndexTask{
|
||||
core: c,
|
||||
segmentID: seg,
|
||||
indexName: f.IndexInfo.IndexName,
|
||||
indexID: f.IndexInfo.IndexID,
|
||||
indexName: idxInfo.IndexName,
|
||||
indexID: idxInfo.IndexID,
|
||||
fieldSchema: fieldSch,
|
||||
indexParams: nil,
|
||||
}
|
||||
|
|
|
@ -604,8 +604,9 @@ func TestMasterService(t *testing.T) {
|
|||
collMeta, err = core.MetaTable.GetCollectionByName("testColl")
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, len(collMeta.FieldIndexes), 2)
|
||||
assert.Equal(t, len(collMeta.FieldIndexes), 2)
|
||||
assert.Equal(t, collMeta.FieldIndexes[1].IndexInfo.IndexName, Params.DefaultIndexName)
|
||||
idxMeta, err := core.MetaTable.GetIndexByID(collMeta.FieldIndexes[1].IndexID)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, idxMeta.IndexName, Params.DefaultIndexName)
|
||||
|
||||
req.FieldName = "no field"
|
||||
rsp, err = core.CreateIndex(req)
|
||||
|
@ -727,7 +728,7 @@ func TestMasterService(t *testing.T) {
|
|||
assert.Nil(t, err)
|
||||
assert.Equal(t, rsp.Status.ErrorCode, commonpb.ErrorCode_SUCCESS)
|
||||
|
||||
assert.Equal(t, len(rsp.IndexDescriptions), 3)
|
||||
assert.Equal(t, len(rsp.IndexDescriptions), 2)
|
||||
indexNames := make([]string, 0)
|
||||
for _, d := range rsp.IndexDescriptions {
|
||||
indexNames = append(indexNames, d.IndexName)
|
||||
|
@ -736,7 +737,6 @@ func TestMasterService(t *testing.T) {
|
|||
assert.ElementsMatch(t, indexNames, []string{
|
||||
"testColl_index_100",
|
||||
Params.DefaultIndexName,
|
||||
Params.DefaultIndexName,
|
||||
})
|
||||
})
|
||||
|
||||
|
|
|
@ -172,7 +172,7 @@ func (mt *metaTable) reloadFromKV() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (mt *metaTable) AddCollection(coll *pb.CollectionInfo, part *pb.PartitionInfo) error {
|
||||
func (mt *metaTable) AddCollection(coll *pb.CollectionInfo, part *pb.PartitionInfo, idx []*pb.IndexInfo) error {
|
||||
mt.ddLock.Lock()
|
||||
defer mt.ddLock.Unlock()
|
||||
|
||||
|
@ -186,12 +186,18 @@ func (mt *metaTable) AddCollection(coll *pb.CollectionInfo, part *pb.PartitionIn
|
|||
if _, ok := mt.collName2ID[coll.Schema.Name]; ok {
|
||||
return errors.Errorf("collection %s exist", coll.Schema.Name)
|
||||
}
|
||||
if len(coll.FieldIndexes) != len(idx) {
|
||||
return errors.Errorf("incorrect index id when creating collection")
|
||||
}
|
||||
|
||||
coll.PartitionIDs = append(coll.PartitionIDs, part.PartitionID)
|
||||
mt.collID2Meta[coll.ID] = *coll
|
||||
mt.collName2ID[coll.Schema.Name] = coll.ID
|
||||
mt.partitionID2Meta[part.PartitionID] = *part
|
||||
mt.partitionID2CollID[part.PartitionID] = coll.ID
|
||||
for _, i := range idx {
|
||||
mt.indexID2Meta[i.IndexID] = *i
|
||||
}
|
||||
|
||||
k1 := path.Join(CollectionMetaPrefix, strconv.FormatInt(coll.ID, 10))
|
||||
v1 := proto.MarshalTextString(coll)
|
||||
|
@ -199,6 +205,12 @@ func (mt *metaTable) AddCollection(coll *pb.CollectionInfo, part *pb.PartitionIn
|
|||
v2 := proto.MarshalTextString(part)
|
||||
meta := map[string]string{k1: v1, k2: v2}
|
||||
|
||||
for _, i := range idx {
|
||||
k := path.Join(IndexMetaPrefix, strconv.FormatInt(i.IndexID, 10))
|
||||
v := proto.MarshalTextString(i)
|
||||
meta[k] = v
|
||||
}
|
||||
|
||||
err := mt.client.MultiSave(meta)
|
||||
if err != nil {
|
||||
_ = mt.reloadFromKV()
|
||||
|
@ -238,7 +250,7 @@ func (mt *metaTable) DeleteCollection(collID typeutil.UniqueID) error {
|
|||
metaKeys = append(metaKeys, path.Join(SegmentIndexMetaPrefix, strconv.FormatInt(segID, 10), strconv.FormatInt(indexID, 10)))
|
||||
indexMeta, ok := mt.indexID2Meta[segIdxMeta.IndexID]
|
||||
if !ok {
|
||||
log.Printf("index id = %d not exist", segIdxMeta.IndexID)
|
||||
//log.Printf("index id = %d not exist", segIdxMeta.IndexID) // segments may share index id
|
||||
continue
|
||||
}
|
||||
delete(mt.indexID2Meta, segIdxMeta.IndexID)
|
||||
|
@ -506,14 +518,10 @@ func (mt *metaTable) AddSegment(seg *datapb.SegmentInfo) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (mt *metaTable) AddIndex(seg *pb.SegmentIndexInfo, idx *pb.IndexInfo) error {
|
||||
func (mt *metaTable) AddIndex(seg *pb.SegmentIndexInfo) error {
|
||||
mt.ddLock.Lock()
|
||||
defer mt.ddLock.Unlock()
|
||||
|
||||
if seg.IndexID != idx.IndexID {
|
||||
return errors.Errorf("index id in segment is %d, in index info is %d, not equal", seg.IndexID, idx.IndexID)
|
||||
}
|
||||
|
||||
segIdxMap, ok := mt.segID2IndexMeta[seg.SegmentID]
|
||||
if !ok {
|
||||
idxMap := map[typeutil.UniqueID]pb.SegmentIndexInfo{seg.IndexID: *seg}
|
||||
|
@ -524,21 +532,30 @@ func (mt *metaTable) AddIndex(seg *pb.SegmentIndexInfo, idx *pb.IndexInfo) error
|
|||
return errors.Errorf("index id = %d exist", seg.IndexID)
|
||||
}
|
||||
}
|
||||
var k1, k2, v1, v2 string
|
||||
(*(mt.segID2IndexMeta[seg.SegmentID]))[seg.IndexID] = *seg
|
||||
k1 = path.Join(SegmentIndexMetaPrefix, strconv.FormatInt(seg.SegmentID, 10), strconv.FormatInt(seg.IndexID, 10))
|
||||
v1 = proto.MarshalTextString(seg)
|
||||
meta := map[string]string{k1: v1}
|
||||
|
||||
_, ok = mt.indexID2Meta[idx.IndexID]
|
||||
collID, ok := mt.segID2CollID[seg.SegmentID]
|
||||
if !ok {
|
||||
mt.indexID2Meta[idx.IndexID] = *idx
|
||||
k2 = path.Join(IndexMetaPrefix, strconv.FormatInt(idx.IndexID, 10))
|
||||
v2 = proto.MarshalTextString(idx)
|
||||
meta[k2] = v2
|
||||
return errors.Errorf("segment id = %d not belong to any collection", seg.SegmentID)
|
||||
}
|
||||
collMeta, ok := mt.collID2Meta[collID]
|
||||
if !ok {
|
||||
return errors.Errorf("collection id = %d not found", collID)
|
||||
}
|
||||
exist := false
|
||||
for _, i := range collMeta.FieldIndexes {
|
||||
if i.IndexID == seg.IndexID {
|
||||
exist = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !exist {
|
||||
return errors.Errorf("index id = %d not found", seg.IndexID)
|
||||
}
|
||||
|
||||
err := mt.client.MultiSave(meta)
|
||||
(*(mt.segID2IndexMeta[seg.SegmentID]))[seg.IndexID] = *seg
|
||||
k := path.Join(SegmentIndexMetaPrefix, strconv.FormatInt(seg.SegmentID, 10), strconv.FormatInt(seg.IndexID, 10))
|
||||
v := proto.MarshalTextString(seg)
|
||||
|
||||
err := mt.client.Save(k, v)
|
||||
if err != nil {
|
||||
_ = mt.reloadFromKV()
|
||||
return err
|
||||
|
@ -655,11 +672,17 @@ func (mt *metaTable) GetNotIndexedSegments(collName string, fieldName string, id
|
|||
}
|
||||
|
||||
exist := false
|
||||
var existInfo pb.IndexInfo
|
||||
if idxInfo.IndexParams != nil {
|
||||
for _, f := range collMeta.FieldIndexes {
|
||||
if f.FiledID == fieldSchema.FieldID {
|
||||
existInfo, ok = mt.indexID2Meta[f.IndexID]
|
||||
if !ok {
|
||||
return nil, schemapb.FieldSchema{}, errors.Errorf("index id = %d not found", f.IndexID)
|
||||
}
|
||||
|
||||
// (collMeta.IndexNames[i] == indexName)
|
||||
if EqualKeyPairArray(f.IndexInfo.IndexParams, idxInfo.IndexParams) {
|
||||
if EqualKeyPairArray(existInfo.IndexParams, idxInfo.IndexParams) {
|
||||
exist = true
|
||||
break
|
||||
}
|
||||
|
@ -668,20 +691,38 @@ func (mt *metaTable) GetNotIndexedSegments(collName string, fieldName string, id
|
|||
}
|
||||
if !exist && idxInfo.IndexParams != nil {
|
||||
idx := &pb.FieldIndexInfo{
|
||||
FiledID: fieldSchema.FieldID,
|
||||
IndexInfo: idxInfo,
|
||||
FiledID: fieldSchema.FieldID,
|
||||
IndexID: idxInfo.IndexID,
|
||||
}
|
||||
collMeta.FieldIndexes = append(collMeta.FieldIndexes, idx)
|
||||
mt.collID2Meta[collMeta.ID] = collMeta
|
||||
k1 := path.Join(CollectionMetaPrefix, strconv.FormatInt(collMeta.ID, 10))
|
||||
v1 := proto.MarshalTextString(&collMeta)
|
||||
|
||||
err := mt.client.Save(k1, v1)
|
||||
mt.indexID2Meta[idx.IndexID] = *idxInfo
|
||||
k2 := path.Join(IndexMetaPrefix, strconv.FormatInt(idx.IndexID, 10))
|
||||
v2 := proto.MarshalTextString(idx)
|
||||
meta := map[string]string{k1: v1, k2: v2}
|
||||
|
||||
err = mt.client.MultiSave(meta)
|
||||
if err != nil {
|
||||
_ = mt.reloadFromKV()
|
||||
return nil, schemapb.FieldSchema{}, err
|
||||
}
|
||||
|
||||
} else {
|
||||
idxInfo.IndexID = existInfo.IndexID
|
||||
if existInfo.IndexName != idxInfo.IndexName { //replace index name
|
||||
existInfo.IndexName = idxInfo.IndexName
|
||||
mt.indexID2Meta[existInfo.IndexID] = existInfo
|
||||
k := path.Join(IndexMetaPrefix, strconv.FormatInt(existInfo.IndexID, 10))
|
||||
v := proto.MarshalTextString(&existInfo)
|
||||
err = mt.client.Save(k, v)
|
||||
if err != nil {
|
||||
_ = mt.reloadFromKV()
|
||||
return nil, schemapb.FieldSchema{}, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rstID := make([]typeutil.UniqueID, 0, 16)
|
||||
|
@ -715,7 +756,8 @@ func (mt *metaTable) GetIndexByName(collName string, fieldName string, indexName
|
|||
return nil, err
|
||||
}
|
||||
|
||||
rstIndex := make([]*pb.IndexInfo, 0, 16)
|
||||
rstIndex := make([]pb.IndexInfo, 0, len(collMeta.FieldIndexes))
|
||||
existMap := map[typeutil.UniqueID]bool{}
|
||||
|
||||
for _, partID := range collMeta.PartitionIDs {
|
||||
partMeta, ok := mt.partitionID2Meta[partID]
|
||||
|
@ -733,20 +775,20 @@ func (mt *metaTable) GetIndexByName(collName string, fieldName string, indexName
|
|||
if !ok {
|
||||
continue
|
||||
}
|
||||
if indexName == "" {
|
||||
rstIndex = append(rstIndex, &idxMeta)
|
||||
} else if idxMeta.IndexName == indexName {
|
||||
rstIndex = append(rstIndex, &idxMeta)
|
||||
if _, ok = existMap[idxID]; ok {
|
||||
continue
|
||||
}
|
||||
if indexName == "" {
|
||||
rstIndex = append(rstIndex, idxMeta)
|
||||
} else if idxMeta.IndexName == indexName {
|
||||
rstIndex = append(rstIndex, idxMeta)
|
||||
}
|
||||
existMap[idxID] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
rst := make([]pb.IndexInfo, 0, len(rstIndex))
|
||||
for i := range rstIndex {
|
||||
rst = append(rst, *rstIndex[i])
|
||||
}
|
||||
return rst, nil
|
||||
return rstIndex, nil
|
||||
}
|
||||
|
||||
func (mt *metaTable) GetIndexByID(indexID typeutil.UniqueID) (*pb.IndexInfo, error) {
|
||||
|
|
|
@ -65,6 +65,12 @@ func TestMetaTable(t *testing.T) {
|
|||
},
|
||||
},
|
||||
},
|
||||
FieldIndexes: []*pb.FieldIndexInfo{
|
||||
{
|
||||
FiledID: 110,
|
||||
IndexID: 10000,
|
||||
},
|
||||
},
|
||||
CreateTime: 0,
|
||||
PartitionIDs: nil,
|
||||
}
|
||||
|
@ -73,9 +79,25 @@ func TestMetaTable(t *testing.T) {
|
|||
PartitionID: 10,
|
||||
SegmentIDs: nil,
|
||||
}
|
||||
idxInfo := []*pb.IndexInfo{
|
||||
{
|
||||
IndexName: "testColl_index_110",
|
||||
IndexID: 10000,
|
||||
IndexParams: []*commonpb.KeyValuePair{
|
||||
{
|
||||
Key: "field110-i1",
|
||||
Value: "field110-v1",
|
||||
},
|
||||
{
|
||||
Key: "field110-i2",
|
||||
Value: "field110-v2",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
t.Run("add collection", func(t *testing.T) {
|
||||
err = mt.AddCollection(collInfo, partInfo)
|
||||
err = mt.AddCollection(collInfo, partInfo, idxInfo)
|
||||
assert.Nil(t, err)
|
||||
|
||||
collMeta, err := mt.GetCollectionByName("testColl")
|
||||
|
@ -106,26 +128,12 @@ func TestMetaTable(t *testing.T) {
|
|||
seg := pb.SegmentIndexInfo{
|
||||
SegmentID: 100,
|
||||
FieldID: 110,
|
||||
IndexID: 200,
|
||||
IndexID: 10000,
|
||||
BuildID: 201,
|
||||
}
|
||||
idx := pb.IndexInfo{
|
||||
IndexName: "idx200",
|
||||
IndexID: 200,
|
||||
IndexParams: []*commonpb.KeyValuePair{
|
||||
{
|
||||
Key: "field110-i1",
|
||||
Value: "field110-v1",
|
||||
},
|
||||
{
|
||||
Key: "field110-i2",
|
||||
Value: "field110-v2",
|
||||
},
|
||||
},
|
||||
}
|
||||
err := mt.AddIndex(&seg, &idx)
|
||||
err := mt.AddIndex(&seg)
|
||||
assert.Nil(t, err)
|
||||
assert.NotNil(t, mt.AddIndex(&seg, &idx))
|
||||
assert.NotNil(t, mt.AddIndex(&seg))
|
||||
})
|
||||
|
||||
t.Run("get not indexed segments", func(t *testing.T) {
|
||||
|
@ -171,6 +179,8 @@ func TestMetaTable(t *testing.T) {
|
|||
},
|
||||
}
|
||||
idxInfo.IndexParams = params
|
||||
idxInfo.IndexID = 2001
|
||||
idxInfo.IndexName = "field110-1"
|
||||
|
||||
seg, field, err = mt.GetNotIndexedSegments("testColl", "field110", idxInfo)
|
||||
assert.Nil(t, err)
|
||||
|
@ -182,10 +192,10 @@ func TestMetaTable(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("get index by name", func(t *testing.T) {
|
||||
idx, err := mt.GetIndexByName("testColl", "field110", "idx200")
|
||||
idx, err := mt.GetIndexByName("testColl", "field110", "field110")
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, len(idx), 1)
|
||||
assert.Equal(t, idx[0].IndexID, int64(200))
|
||||
assert.Equal(t, idx[0].IndexID, int64(10000))
|
||||
params := []*commonpb.KeyValuePair{
|
||||
{
|
||||
Key: "field110-i1",
|
||||
|
|
|
@ -115,6 +115,7 @@ func (t *CreateCollectionReqTask) Execute() error {
|
|||
PartitionID: partitionID,
|
||||
SegmentIDs: make([]typeutil.UniqueID, 0, 16),
|
||||
}
|
||||
idxInfo := make([]*etcdpb.IndexInfo, 0, 16)
|
||||
for _, field := range schema.Fields {
|
||||
if field.DataType == schemapb.DataType_VECTOR_FLOAT || field.DataType == schemapb.DataType_VECTOR_BINARY {
|
||||
if len(field.IndexParams) > 0 {
|
||||
|
@ -124,18 +125,20 @@ func (t *CreateCollectionReqTask) Execute() error {
|
|||
}
|
||||
filedIdx := &etcdpb.FieldIndexInfo{
|
||||
FiledID: field.FieldID,
|
||||
IndexInfo: &etcdpb.IndexInfo{
|
||||
IndexName: fmt.Sprintf("%s_index_%d", collMeta.Schema.Name, field.FieldID),
|
||||
IndexID: idxID,
|
||||
IndexParams: field.IndexParams,
|
||||
},
|
||||
IndexID: idxID,
|
||||
}
|
||||
idx := &etcdpb.IndexInfo{
|
||||
IndexName: fmt.Sprintf("%s_index_%d", collMeta.Schema.Name, field.FieldID),
|
||||
IndexID: idxID,
|
||||
IndexParams: field.IndexParams,
|
||||
}
|
||||
idxInfo = append(idxInfo, idx)
|
||||
collMeta.FieldIndexes = append(collMeta.FieldIndexes, filedIdx)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
err = t.core.MetaTable.AddCollection(&collMeta, &partMeta)
|
||||
err = t.core.MetaTable.AddCollection(&collMeta, &partMeta, idxInfo)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -611,8 +614,8 @@ func (t *CreateIndexReqTask) Execute() error {
|
|||
task := CreateIndexTask{
|
||||
core: t.core,
|
||||
segmentID: seg,
|
||||
indexName: indexName,
|
||||
indexID: indexID,
|
||||
indexName: idxInfo.IndexName,
|
||||
indexID: idxInfo.IndexID,
|
||||
fieldSchema: &field,
|
||||
indexParams: t.Req.ExtraParams,
|
||||
}
|
||||
|
@ -694,11 +697,6 @@ func (t *CreateIndexTask) BuildIndex() error {
|
|||
IndexID: t.indexID,
|
||||
BuildID: bldID,
|
||||
}
|
||||
idx := etcdpb.IndexInfo{
|
||||
IndexName: t.indexName,
|
||||
IndexID: t.indexID,
|
||||
IndexParams: t.indexParams,
|
||||
}
|
||||
err = t.core.MetaTable.AddIndex(&seg, &idx)
|
||||
err = t.core.MetaTable.AddIndex(&seg)
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ message IndexInfo {
|
|||
|
||||
message FieldIndexInfo{
|
||||
int64 filedID = 1;
|
||||
IndexInfo index_info = 2;
|
||||
int64 indexID = 2;
|
||||
}
|
||||
|
||||
message CollectionInfo {
|
||||
|
|
|
@ -251,11 +251,11 @@ func (m *IndexInfo) GetIndexParams() []*commonpb.KeyValuePair {
|
|||
}
|
||||
|
||||
type FieldIndexInfo struct {
|
||||
FiledID int64 `protobuf:"varint,1,opt,name=filedID,proto3" json:"filedID,omitempty"`
|
||||
IndexInfo *IndexInfo `protobuf:"bytes,2,opt,name=index_info,json=indexInfo,proto3" json:"index_info,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
FiledID int64 `protobuf:"varint,1,opt,name=filedID,proto3" json:"filedID,omitempty"`
|
||||
IndexID int64 `protobuf:"varint,2,opt,name=indexID,proto3" json:"indexID,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *FieldIndexInfo) Reset() { *m = FieldIndexInfo{} }
|
||||
|
@ -290,11 +290,11 @@ func (m *FieldIndexInfo) GetFiledID() int64 {
|
|||
return 0
|
||||
}
|
||||
|
||||
func (m *FieldIndexInfo) GetIndexInfo() *IndexInfo {
|
||||
func (m *FieldIndexInfo) GetIndexID() int64 {
|
||||
if m != nil {
|
||||
return m.IndexInfo
|
||||
return m.IndexID
|
||||
}
|
||||
return nil
|
||||
return 0
|
||||
}
|
||||
|
||||
type CollectionInfo struct {
|
||||
|
@ -764,59 +764,58 @@ func init() {
|
|||
func init() { proto.RegisterFile("etcd_meta.proto", fileDescriptor_975d306d62b73e88) }
|
||||
|
||||
var fileDescriptor_975d306d62b73e88 = []byte{
|
||||
// 862 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xcd, 0x8e, 0xe3, 0x44,
|
||||
0x10, 0x96, 0x27, 0x99, 0x64, 0x5c, 0xf9, 0x99, 0x99, 0x3e, 0x99, 0x65, 0x97, 0xcd, 0x7a, 0xb5,
|
||||
0x10, 0x09, 0x31, 0x91, 0x06, 0xc1, 0x05, 0x81, 0x60, 0x37, 0x8c, 0x14, 0x21, 0x76, 0x83, 0x33,
|
||||
0xe2, 0xc0, 0xc5, 0xea, 0xd8, 0x95, 0xa4, 0x25, 0x77, 0x3b, 0xb8, 0xdb, 0xec, 0xcc, 0x1c, 0x10,
|
||||
0x57, 0x78, 0x04, 0x5e, 0x11, 0x5e, 0x01, 0x09, 0xf5, 0x4f, 0x1c, 0x7b, 0x36, 0x20, 0xb4, 0x12,
|
||||
0xb7, 0xd4, 0x57, 0x55, 0x5d, 0x55, 0xdf, 0x57, 0xe5, 0xc0, 0x29, 0xaa, 0x24, 0x8d, 0x39, 0x2a,
|
||||
0x7a, 0xb1, 0x2d, 0x72, 0x95, 0x93, 0x73, 0xce, 0xb2, 0x9f, 0x4a, 0x69, 0xad, 0x0b, 0xed, 0x7d,
|
||||
0xd0, 0x4f, 0x72, 0xce, 0x73, 0x61, 0xa1, 0x07, 0x7d, 0x99, 0x6c, 0x90, 0xbb, 0xf0, 0xf0, 0x77,
|
||||
0x0f, 0xe0, 0x1a, 0x05, 0x15, 0xea, 0x5b, 0x54, 0x94, 0x0c, 0xe1, 0x68, 0x36, 0x0d, 0xbc, 0x91,
|
||||
0x37, 0x6e, 0x45, 0x47, 0xb3, 0x29, 0x79, 0x1f, 0x4e, 0x45, 0xc9, 0xe3, 0x1f, 0x4b, 0x2c, 0x6e,
|
||||
0x63, 0x91, 0xa7, 0x28, 0x83, 0x23, 0xe3, 0x1c, 0x88, 0x92, 0x7f, 0xa7, 0xd1, 0x97, 0x1a, 0x24,
|
||||
0x1f, 0xc2, 0x39, 0x13, 0x12, 0x0b, 0x15, 0x27, 0x1b, 0x2a, 0x04, 0x66, 0xb3, 0xa9, 0x0c, 0x5a,
|
||||
0xa3, 0xd6, 0xd8, 0x8f, 0xce, 0xac, 0xe3, 0x45, 0x85, 0x93, 0x0f, 0xe0, 0xd4, 0x3e, 0x58, 0xc5,
|
||||
0x06, 0xed, 0x91, 0x37, 0xf6, 0xa3, 0xa1, 0x81, 0xab, 0xc8, 0xf0, 0x17, 0x0f, 0xfc, 0x79, 0x91,
|
||||
0xdf, 0xdc, 0x1e, 0xec, 0xed, 0x53, 0xe8, 0xd2, 0x34, 0x2d, 0x50, 0xda, 0x9e, 0x7a, 0x97, 0x0f,
|
||||
0x2f, 0x1a, 0xb3, 0xbb, 0xa9, 0xbf, 0xb2, 0x31, 0xd1, 0x2e, 0x58, 0xf7, 0x5a, 0xa0, 0x2c, 0xb3,
|
||||
0x43, 0xbd, 0x5a, 0xc7, 0xbe, 0xd7, 0xf0, 0x06, 0x06, 0x73, 0x5a, 0x28, 0xa6, 0x58, 0x2e, 0x66,
|
||||
0x62, 0x95, 0x93, 0x67, 0x30, 0xdc, 0xee, 0x80, 0x58, 0x50, 0x8e, 0xa6, 0x23, 0x3f, 0x1a, 0x54,
|
||||
0xe8, 0x4b, 0xca, 0x91, 0x8c, 0xa0, 0x57, 0x01, 0xb3, 0xa9, 0x23, 0xad, 0x0e, 0x91, 0xf7, 0x00,
|
||||
0x24, 0xae, 0x39, 0x0a, 0xb5, 0xab, 0xdf, 0x8a, 0x6a, 0x48, 0xf8, 0x9b, 0x07, 0xfe, 0x4c, 0xa4,
|
||||
0x78, 0x63, 0xca, 0x3e, 0x02, 0x60, 0xda, 0xa8, 0x97, 0xf4, 0x0d, 0x62, 0xca, 0x05, 0xd0, 0x35,
|
||||
0x46, 0x55, 0x6a, 0x67, 0x92, 0x29, 0xf4, 0x6d, 0xe2, 0x96, 0x16, 0x94, 0xdb, 0x42, 0xbd, 0xcb,
|
||||
0x27, 0x07, 0xa9, 0xfa, 0x06, 0x6f, 0xbf, 0xa7, 0x59, 0x89, 0x73, 0xca, 0x8a, 0xa8, 0x67, 0xd2,
|
||||
0xe6, 0x26, 0x2b, 0x5c, 0xc3, 0xf0, 0x8a, 0x61, 0x96, 0xee, 0x1b, 0x0a, 0xa0, 0xbb, 0x62, 0x19,
|
||||
0xa6, 0x95, 0x24, 0x3b, 0x93, 0x7c, 0xb6, 0x6b, 0x95, 0x89, 0x55, 0x7e, 0x58, 0x1a, 0xbd, 0x96,
|
||||
0x17, 0xd5, 0x5b, 0x6e, 0x10, 0xfd, 0x33, 0xfc, 0xd3, 0x83, 0xe1, 0x8b, 0x3c, 0xcb, 0x30, 0xa9,
|
||||
0x18, 0xbf, 0xaf, 0xfb, 0xe7, 0xd0, 0xb1, 0x2b, 0xec, 0xde, 0x7e, 0xd6, 0x7c, 0xdb, 0xad, 0xf7,
|
||||
0xfe, 0x91, 0x85, 0x01, 0x22, 0x97, 0x44, 0x1e, 0x43, 0x2f, 0x29, 0x90, 0x2a, 0x8c, 0x15, 0xe3,
|
||||
0x18, 0xb4, 0x46, 0xde, 0xb8, 0x1d, 0x81, 0x85, 0xae, 0x19, 0x47, 0x12, 0x42, 0xbf, 0xa6, 0x93,
|
||||
0x0c, 0xda, 0x46, 0x9a, 0x06, 0x46, 0xae, 0x60, 0xb0, 0xd2, 0x7c, 0xc4, 0xa6, 0x73, 0x94, 0xc1,
|
||||
0xf1, 0x21, 0x5a, 0xcd, 0x98, 0x4d, 0xde, 0xa2, 0xfe, 0xaa, 0xb2, 0x51, 0x86, 0x3f, 0xc3, 0xd9,
|
||||
0xc2, 0x49, 0x5e, 0x31, 0xfb, 0x10, 0xfc, 0x6a, 0x0d, 0xdc, 0xd8, 0x7b, 0xc0, 0xf2, 0xae, 0x5f,
|
||||
0xa8, 0x94, 0x76, 0x66, 0x7d, 0x07, 0x5a, 0xcd, 0x1d, 0x08, 0xa0, 0xbb, 0x2c, 0x99, 0xc9, 0x69,
|
||||
0x5b, 0x8f, 0x33, 0xc3, 0x3f, 0x1a, 0x74, 0x1f, 0x3c, 0xb3, 0xff, 0x9b, 0xee, 0xe6, 0x1d, 0xb4,
|
||||
0xef, 0xdf, 0x41, 0xf3, 0xe0, 0x14, 0x5d, 0x5b, 0xae, 0xeb, 0x07, 0x77, 0x4d, 0xd7, 0xf2, 0x0d,
|
||||
0xd5, 0x3a, 0x6f, 0xaa, 0x16, 0xbe, 0x82, 0x33, 0xa3, 0xc6, 0x73, 0x26, 0xb2, 0x7c, 0x7d, 0xc5,
|
||||
0x32, 0x94, 0x75, 0x3e, 0xbd, 0x26, 0x9f, 0x4f, 0xa0, 0xbf, 0x34, 0x81, 0xb1, 0xde, 0x6c, 0xfd,
|
||||
0x91, 0xd1, 0x65, 0x7b, 0xcb, 0x7d, 0x72, 0xf8, 0xd7, 0x11, 0xf4, 0x9c, 0x7e, 0x86, 0xbb, 0x7f,
|
||||
0x97, 0x2e, 0x84, 0x7e, 0xb2, 0x5f, 0xed, 0x9d, 0x7e, 0x0d, 0x8c, 0x3c, 0x85, 0x41, 0x63, 0x5a,
|
||||
0x43, 0x98, 0x5f, 0x9b, 0xe3, 0x9a, 0xae, 0x75, 0x90, 0xfb, 0x74, 0xc5, 0x52, 0xd1, 0x42, 0x19,
|
||||
0x55, 0x8f, 0xa3, 0xbe, 0x03, 0x17, 0x1a, 0x33, 0xc4, 0xbb, 0x20, 0x14, 0x69, 0x70, 0x6c, 0x42,
|
||||
0xc0, 0x41, 0x5f, 0x8b, 0x94, 0xbc, 0x0b, 0x7e, 0xbe, 0x45, 0x61, 0x75, 0xe9, 0x18, 0x5d, 0x4e,
|
||||
0x34, 0x60, 0x54, 0x79, 0x04, 0x90, 0x64, 0xb9, 0x74, 0xaa, 0x75, 0x8d, 0xd7, 0x37, 0x88, 0x71,
|
||||
0xbf, 0x03, 0x27, 0xfa, 0x7f, 0xa1, 0xc8, 0x5f, 0xcb, 0xe0, 0xc4, 0xd2, 0x26, 0x4a, 0x1e, 0xe5,
|
||||
0xaf, 0xa5, 0x76, 0x71, 0xe4, 0xb1, 0x64, 0x77, 0x18, 0xf8, 0xd6, 0xc5, 0x91, 0x2f, 0xd8, 0x1d,
|
||||
0x92, 0x57, 0x70, 0x5e, 0x63, 0x34, 0xde, 0x52, 0xb5, 0x91, 0x01, 0x98, 0xcb, 0x79, 0xfa, 0x4f,
|
||||
0x97, 0x53, 0xd3, 0x2a, 0x3a, 0xdd, 0x73, 0x3f, 0xd7, 0xb9, 0xe1, 0xaf, 0x47, 0xf5, 0xef, 0xd2,
|
||||
0x7f, 0x90, 0xe0, 0x6d, 0xae, 0xe7, 0xfe, 0x17, 0xb4, 0xfd, 0x36, 0x5f, 0x50, 0xf2, 0x09, 0x1c,
|
||||
0x4b, 0x45, 0x15, 0x1a, 0x21, 0x86, 0x97, 0x8f, 0x0f, 0xa6, 0x9b, 0x31, 0x16, 0x3a, 0x2c, 0xb2,
|
||||
0xd1, 0x64, 0x0c, 0x67, 0xb6, 0x78, 0x8d, 0xb1, 0x8e, 0x59, 0xc4, 0xa1, 0xc1, 0x2b, 0x2e, 0x9e,
|
||||
0x7f, 0xf9, 0xc3, 0x17, 0x6b, 0xa6, 0x36, 0xe5, 0x52, 0x3f, 0x36, 0xb9, 0x63, 0x59, 0xc6, 0xee,
|
||||
0x14, 0x26, 0x9b, 0x89, 0x2d, 0xf4, 0x51, 0xca, 0xa4, 0x2a, 0xd8, 0xb2, 0x54, 0x98, 0x4e, 0x98,
|
||||
0x50, 0x58, 0x08, 0x9a, 0x4d, 0x4c, 0xf5, 0x89, 0x66, 0x7b, 0xbb, 0x5c, 0x76, 0x8c, 0xf5, 0xf1,
|
||||
0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x8d, 0xb6, 0x6d, 0x54, 0x08, 0x00, 0x00,
|
||||
// 845 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0x5f, 0x8f, 0xdb, 0x44,
|
||||
0x10, 0x97, 0x93, 0x5c, 0x72, 0x9e, 0xfc, 0xb9, 0xbb, 0x7d, 0x32, 0xa5, 0xa5, 0xa9, 0xab, 0x42,
|
||||
0x24, 0xc4, 0x45, 0x3a, 0x04, 0x6f, 0x20, 0x68, 0xc3, 0x49, 0x11, 0xa2, 0x0d, 0xce, 0x89, 0x07,
|
||||
0x5e, 0xac, 0x8d, 0x3d, 0x97, 0xac, 0xe4, 0x5d, 0x07, 0xef, 0x9a, 0xde, 0xdd, 0x03, 0xe2, 0x15,
|
||||
0x3e, 0x02, 0x5f, 0x11, 0xbe, 0x02, 0x12, 0xda, 0x3f, 0x71, 0xec, 0x6b, 0x8a, 0x50, 0x25, 0x1e,
|
||||
0xe7, 0x37, 0x33, 0x3b, 0x33, 0xbf, 0xdf, 0xcc, 0xc2, 0x09, 0xaa, 0x24, 0x8d, 0x39, 0x2a, 0x7a,
|
||||
0xbe, 0x2d, 0x72, 0x95, 0x93, 0x33, 0xce, 0xb2, 0x9f, 0x4b, 0x69, 0xad, 0x73, 0xed, 0x7d, 0x30,
|
||||
0x48, 0x72, 0xce, 0x73, 0x61, 0xa1, 0x07, 0x03, 0x99, 0x6c, 0x90, 0xbb, 0xf0, 0xf0, 0x0f, 0x0f,
|
||||
0xe0, 0x0a, 0x05, 0x15, 0xea, 0x3b, 0x54, 0x94, 0x8c, 0xa0, 0x35, 0x9f, 0x05, 0xde, 0xd8, 0x9b,
|
||||
0xb4, 0xa3, 0xd6, 0x7c, 0x46, 0x3e, 0x84, 0x13, 0x51, 0xf2, 0xf8, 0xa7, 0x12, 0x8b, 0xdb, 0x58,
|
||||
0xe4, 0x29, 0xca, 0xa0, 0x65, 0x9c, 0x43, 0x51, 0xf2, 0xef, 0x35, 0xfa, 0x52, 0x83, 0xe4, 0x63,
|
||||
0x38, 0x63, 0x42, 0x62, 0xa1, 0xe2, 0x64, 0x43, 0x85, 0xc0, 0x6c, 0x3e, 0x93, 0x41, 0x7b, 0xdc,
|
||||
0x9e, 0xf8, 0xd1, 0xa9, 0x75, 0xbc, 0xa8, 0x70, 0xf2, 0x11, 0x9c, 0xd8, 0x07, 0xab, 0xd8, 0xa0,
|
||||
0x33, 0xf6, 0x26, 0x7e, 0x34, 0x32, 0x70, 0x15, 0x19, 0xfe, 0xea, 0x81, 0xbf, 0x28, 0xf2, 0x9b,
|
||||
0xdb, 0x83, 0xbd, 0x7d, 0x0e, 0x3d, 0x9a, 0xa6, 0x05, 0x4a, 0xdb, 0x53, 0xff, 0xe2, 0xe1, 0x79,
|
||||
0x63, 0x76, 0x37, 0xf5, 0xd7, 0x36, 0x26, 0xda, 0x05, 0xeb, 0x5e, 0x0b, 0x94, 0x65, 0x76, 0xa8,
|
||||
0x57, 0xeb, 0xd8, 0xf7, 0x1a, 0xde, 0xc0, 0x70, 0x41, 0x0b, 0xc5, 0x14, 0xcb, 0xc5, 0x5c, 0x5c,
|
||||
0xe7, 0xe4, 0x19, 0x8c, 0xb6, 0x3b, 0x20, 0x16, 0x94, 0xa3, 0xe9, 0xc8, 0x8f, 0x86, 0x15, 0xfa,
|
||||
0x92, 0x72, 0x24, 0x63, 0xe8, 0x57, 0xc0, 0x7c, 0xe6, 0x48, 0xab, 0x43, 0xe4, 0x03, 0x00, 0x89,
|
||||
0x6b, 0x8e, 0x42, 0xed, 0xea, 0xb7, 0xa3, 0x1a, 0x12, 0xfe, 0xee, 0x81, 0x3f, 0x17, 0x29, 0xde,
|
||||
0x98, 0xb2, 0x8f, 0x00, 0x98, 0x36, 0xea, 0x25, 0x7d, 0x83, 0x98, 0x72, 0x01, 0xf4, 0x8c, 0x51,
|
||||
0x95, 0xda, 0x99, 0x64, 0x06, 0x03, 0x9b, 0xb8, 0xa5, 0x05, 0xe5, 0xb6, 0x50, 0xff, 0xe2, 0xc9,
|
||||
0x41, 0xaa, 0xbe, 0xc5, 0xdb, 0x1f, 0x68, 0x56, 0xe2, 0x82, 0xb2, 0x22, 0xea, 0x9b, 0xb4, 0x85,
|
||||
0xc9, 0x0a, 0x67, 0x30, 0xba, 0x64, 0x98, 0xa5, 0xfb, 0x86, 0x02, 0xe8, 0x5d, 0xb3, 0x0c, 0xd3,
|
||||
0x4a, 0x92, 0x9d, 0xf9, 0xf6, 0x5e, 0xc2, 0xbf, 0x3c, 0x18, 0xbd, 0xc8, 0xb3, 0x0c, 0x93, 0x8a,
|
||||
0xce, 0xfb, 0xa2, 0x7e, 0x01, 0x5d, 0xbb, 0x9f, 0x4e, 0xd3, 0x67, 0xcd, 0x46, 0xdd, 0xee, 0xee,
|
||||
0x1f, 0x59, 0x1a, 0x20, 0x72, 0x49, 0xe4, 0x31, 0xf4, 0x93, 0x02, 0xa9, 0xc2, 0x58, 0x31, 0x8e,
|
||||
0x41, 0x7b, 0xec, 0x4d, 0x3a, 0x11, 0x58, 0xe8, 0x8a, 0x71, 0x24, 0x21, 0x0c, 0x6a, 0x22, 0xc8,
|
||||
0xa0, 0x63, 0x78, 0x6f, 0x60, 0xe4, 0x12, 0x86, 0xd7, 0x7a, 0xd8, 0xd8, 0xf4, 0x8d, 0x32, 0x38,
|
||||
0x3a, 0xc4, 0x99, 0x3e, 0xad, 0xf3, 0x26, 0x29, 0xd1, 0xe0, 0xba, 0xb2, 0x51, 0x86, 0xbf, 0xc0,
|
||||
0xe9, 0xd2, 0xe9, 0x59, 0xd1, 0xf6, 0x10, 0xfc, 0x4a, 0x63, 0x37, 0xf6, 0x1e, 0xb0, 0xa4, 0xea,
|
||||
0x17, 0x2a, 0xea, 0x9c, 0x59, 0x27, 0xb5, 0xdd, 0x14, 0x38, 0x80, 0xde, 0xaa, 0x64, 0x26, 0xa7,
|
||||
0x63, 0x3d, 0xce, 0x0c, 0xff, 0x6c, 0xd0, 0x7d, 0xf0, 0x86, 0xfe, 0x6f, 0xba, 0x9b, 0x4b, 0xde,
|
||||
0xb9, 0xbf, 0xe4, 0xcd, 0x6b, 0x52, 0x74, 0x6d, 0xb9, 0xae, 0x5f, 0xd3, 0x15, 0x5d, 0xcb, 0x37,
|
||||
0x54, 0xeb, 0xbe, 0xa9, 0x5a, 0xf8, 0x0a, 0x4e, 0x8d, 0x1a, 0xcf, 0x99, 0xc8, 0xf2, 0xf5, 0x25,
|
||||
0xcb, 0x50, 0xd6, 0xf9, 0xf4, 0x9a, 0x7c, 0x3e, 0x81, 0xc1, 0xca, 0x04, 0xc6, 0x7a, 0x6d, 0xf5,
|
||||
0x0f, 0xa2, 0xcb, 0xf6, 0x57, 0xfb, 0xe4, 0xf0, 0xef, 0x16, 0xf4, 0x9d, 0x7e, 0x86, 0xbb, 0x7f,
|
||||
0x97, 0x2e, 0x84, 0x41, 0xb2, 0x5f, 0xed, 0x9d, 0x7e, 0x0d, 0x8c, 0x3c, 0x85, 0x61, 0x63, 0x5a,
|
||||
0x43, 0x98, 0x5f, 0x9b, 0xe3, 0x8a, 0xae, 0x75, 0x90, 0xfb, 0x97, 0x62, 0xa9, 0x68, 0xa1, 0x8c,
|
||||
0xaa, 0x47, 0xd1, 0xc0, 0x81, 0x4b, 0x8d, 0x19, 0xe2, 0x5d, 0x10, 0x8a, 0x34, 0x38, 0x32, 0x21,
|
||||
0xe0, 0xa0, 0x6f, 0x44, 0x4a, 0xde, 0x07, 0x3f, 0xdf, 0xa2, 0xb0, 0xba, 0x74, 0x8d, 0x2e, 0xc7,
|
||||
0x1a, 0x30, 0xaa, 0x3c, 0x02, 0x48, 0xb2, 0x5c, 0x3a, 0xd5, 0x7a, 0xc6, 0xeb, 0x1b, 0xc4, 0xb8,
|
||||
0xdf, 0x83, 0x63, 0xfd, 0xe9, 0x17, 0xf9, 0x6b, 0x19, 0x1c, 0x5b, 0xda, 0x44, 0xc9, 0xa3, 0xfc,
|
||||
0xb5, 0xd4, 0x2e, 0x8e, 0x3c, 0x96, 0xec, 0x0e, 0x03, 0xdf, 0xba, 0x38, 0xf2, 0x25, 0xbb, 0x43,
|
||||
0xf2, 0x0a, 0xce, 0x6a, 0x8c, 0xc6, 0x5b, 0xaa, 0x36, 0x32, 0x00, 0x73, 0x39, 0x4f, 0xdf, 0x76,
|
||||
0x39, 0x35, 0xad, 0xa2, 0x93, 0x3d, 0xf7, 0x0b, 0x9d, 0x1b, 0xfe, 0xd6, 0xaa, 0x7f, 0x3a, 0xff,
|
||||
0x41, 0x82, 0x77, 0xb9, 0x9e, 0xfb, 0xdf, 0x63, 0xe7, 0x5d, 0xbe, 0x47, 0xf2, 0x19, 0x1c, 0x49,
|
||||
0x45, 0x15, 0x1a, 0x21, 0x46, 0x17, 0x8f, 0x0f, 0xa6, 0x9b, 0x31, 0x96, 0x3a, 0x2c, 0xb2, 0xd1,
|
||||
0x64, 0x02, 0xa7, 0xb6, 0x78, 0x8d, 0xb1, 0xae, 0x59, 0xc4, 0x91, 0xc1, 0x2b, 0x2e, 0x9e, 0x7f,
|
||||
0xf5, 0xe3, 0x97, 0x6b, 0xa6, 0x36, 0xe5, 0x4a, 0x3f, 0x36, 0xbd, 0x63, 0x59, 0xc6, 0xee, 0x14,
|
||||
0x26, 0x9b, 0xa9, 0x2d, 0xf4, 0x49, 0xca, 0xa4, 0x2a, 0xd8, 0xaa, 0x54, 0x98, 0x4e, 0x99, 0x50,
|
||||
0x58, 0x08, 0x9a, 0x4d, 0x4d, 0xf5, 0xa9, 0x66, 0x7b, 0xbb, 0x5a, 0x75, 0x8d, 0xf5, 0xe9, 0x3f,
|
||||
0x01, 0x00, 0x00, 0xff, 0xff, 0x9d, 0x83, 0x5a, 0x23, 0x31, 0x08, 0x00, 0x00,
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue