mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-07 19:31:51 +08:00
fix failure to open vector index in mishards (#4910)
* fix #4778 Signed-off-by: yhmo <yihua.mo@zilliz.com>
This commit is contained in:
parent
ed9d54fcdd
commit
f31bf268a2
@ -4,6 +4,7 @@ Please mark all change in change log and use the issue from GitHub
|
||||
|
||||
# Milvus 1.1.0 (TBD)
|
||||
## Bug
|
||||
- \#4778 Fail to open vector index
|
||||
- \#4858 Fix the crash when query for a large topk on GPU Flat
|
||||
- \#4862 The inserted data number increase automatically without any operations
|
||||
- \#4894 The capacity of bloom filter should be determined by the row count of its segment
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
*cmake-build-debug*
|
||||
*cmake-build-release*
|
||||
*cmake_build*
|
||||
*build*
|
||||
*src/index/thirdparty*
|
||||
*thirdparty*
|
||||
*easylogging++*
|
||||
|
||||
@ -1927,6 +1927,13 @@ DBImpl::QueryAsync(const std::shared_ptr<server::Context>& context, meta::FilesH
|
||||
LOG_ENGINE_DEBUG_ << LogOut("Engine query begin, index file count: %ld", files.size());
|
||||
scheduler::SearchJobPtr job = std::make_shared<scheduler::SearchJob>(tracer.Context(), k, extra_params, vectors);
|
||||
for (auto& file : files) {
|
||||
// no need to process shadow files
|
||||
if (file.file_type_ == milvus::engine::meta::SegmentSchema::FILE_TYPE::NEW ||
|
||||
file.file_type_ == milvus::engine::meta::SegmentSchema::FILE_TYPE::NEW_MERGE ||
|
||||
file.file_type_ == milvus::engine::meta::SegmentSchema::FILE_TYPE::NEW_INDEX) {
|
||||
continue;
|
||||
}
|
||||
|
||||
scheduler::SegmentSchemaPtr file_ptr = std::make_shared<meta::SegmentSchema>(file);
|
||||
job->AddIndexFile(file_ptr);
|
||||
}
|
||||
|
||||
@ -111,14 +111,14 @@ XSearchTask::XSearchTask(const std::shared_ptr<server::Context>& context, Segmen
|
||||
ascending_reduce = false;
|
||||
}
|
||||
|
||||
EngineType engine_type;
|
||||
if (file->file_type_ == SegmentSchema::FILE_TYPE::RAW ||
|
||||
file->file_type_ == SegmentSchema::FILE_TYPE::TO_INDEX ||
|
||||
file->file_type_ == SegmentSchema::FILE_TYPE::BACKUP) {
|
||||
// The file may be a raw file, or an index file.
|
||||
// Deduce the file's engine_type by this rule:
|
||||
// If the file is a raw file, its file_id is equal to segment id, engine_type is IDMAP
|
||||
// else if the file is an index file, its file_id is different to segment id, engine_type is index_type
|
||||
EngineType engine_type = (EngineType)file->engine_type_;
|
||||
if (file->segment_id_ == file->file_id_) {
|
||||
engine_type = engine::utils::IsBinaryMetricType(file->metric_type_) ? EngineType::FAISS_BIN_IDMAP
|
||||
: EngineType::FAISS_IDMAP;
|
||||
} else {
|
||||
engine_type = (EngineType)file->engine_type_;
|
||||
}
|
||||
|
||||
milvus::json json_params;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user