未验证 提交 cedfc84d 编写于 作者: J Jin Hai 提交者: GitHub

Merge pull request #1638 from youny626/fix#1635

Fix#1635
......@@ -2,7 +2,12 @@
Please mark all change in change log and use the issue from GitHub
# Milvus 0.7.0 (TBD)
# Milvus 0.7.1 (TBD)
## Bug
- \#1635 Vectors can be returned by searching after vectors deleted if `cache_insert_data` set true
# Milvus 0.7.0 (2020-03-11)
## Bug
- \#715 Milvus crash when searching and building index simultaneously using SQ8H
......
......@@ -738,15 +738,22 @@ ExecutionEngineImpl::BuildIndex(const std::string& location, EngineType engine_t
auto status = Status::OK();
std::vector<segment::doc_id_t> uids;
faiss::ConcurrentBitsetPtr blacklist;
if (from_index) {
status = to_index->BuildAll(Count(), from_index->GetRawVectors(), from_index->GetRawIds(), conf);
uids = from_index->GetUids();
from_index->GetBlacklist(blacklist);
} else if (bin_from_index) {
status = to_index->BuildAll(Count(), bin_from_index->GetRawVectors(), bin_from_index->GetRawIds(), conf);
uids = bin_from_index->GetUids();
bin_from_index->GetBlacklist(blacklist);
}
to_index->SetUids(uids);
ENGINE_LOG_DEBUG << "set uids " << to_index->GetUids().size() << " for " << location;
ENGINE_LOG_DEBUG << "Set " << to_index->GetUids().size() << "uids for " << location;
if (blacklist != nullptr) {
to_index->SetBlacklist(blacklist);
ENGINE_LOG_DEBUG << "Set blacklist for index " << location;
}
if (!status.ok()) {
throw Exception(DB_ERROR, status.message());
......
......@@ -65,7 +65,7 @@ static const char *CONFIG_STR =
" cpu_cache_capacity: 4 # GB, CPU memory used for cache\n"
" cpu_cache_threshold: 0.85 # percentage of data kept when cache cleanup triggered\n"
" insert_buffer_size: 4 # GB, maximum insert buffer size allowed\n"
" cache_insert_data: false # whether load inserted data into cache\n"
" cache_insert_data: true # whether load inserted data into cache\n"
"\n"
"engine_config:\n"
" use_blas_threshold: 20\n"
......@@ -179,6 +179,7 @@ DBTest::SetUp() {
milvus::scheduler::JobMgrInst::GetInstance()->Start();
auto options = GetOptions();
options.insert_cache_immediately_ = true;
db_ = milvus::engine::DBFactory::Build(options);
std::string config_path(options.meta_.path_ + CONFIG_FILE);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册