mirror of https://github.com/milvus-io/milvus.git
Fix parallel merge issue
Former-commit-id: 7eae24c65e50c6c0abc423b841c14bf16a8c0a1dpull/191/head
parent
e316271a0d
commit
71fa8bdd05
|
@ -90,6 +90,10 @@ class SearchJob : public Job {
|
||||||
return index_files_;
|
return index_files_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::mutex& mutex() {
|
||||||
|
return mutex_;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint64_t topk_ = 0;
|
uint64_t topk_ = 0;
|
||||||
uint64_t nq_ = 0;
|
uint64_t nq_ = 0;
|
||||||
|
|
|
@ -219,8 +219,11 @@ XSearchTask::Execute() {
|
||||||
|
|
||||||
// step 3: pick up topk result
|
// step 3: pick up topk result
|
||||||
auto spec_k = index_engine_->Count() < topk ? index_engine_->Count() : topk;
|
auto spec_k = index_engine_->Count() < topk ? index_engine_->Count() : topk;
|
||||||
|
{
|
||||||
|
std::unique_lock<std::mutex> lock(search_job->mutex());
|
||||||
XSearchTask::MergeTopkToResultSet(output_ids, output_distance, spec_k, nq, topk, metric_l2,
|
XSearchTask::MergeTopkToResultSet(output_ids, output_distance, spec_k, nq, topk, metric_l2,
|
||||||
search_job->GetResult());
|
search_job->GetResult());
|
||||||
|
}
|
||||||
|
|
||||||
span = rc.RecordSection(hdr + ", reduce topk");
|
span = rc.RecordSection(hdr + ", reduce topk");
|
||||||
// search_job->AccumReduceCost(span);
|
// search_job->AccumReduceCost(span);
|
||||||
|
|
Loading…
Reference in New Issue