Commit a8651dba authored by jinhai's avatar jinhai
Browse files

Fix parallel merge issue


Former-commit-id: f0ac429177441f4f760614d8c056ce65e62f31f0
parent 5a7574b0
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -90,6 +90,10 @@ class SearchJob : public Job {
        return index_files_;
    }

    std::mutex& mutex() {
        return mutex_;
    }

 private:
    uint64_t topk_ = 0;
    uint64_t nq_ = 0;
+4 −1
Original line number Diff line number Diff line
@@ -219,8 +219,11 @@ XSearchTask::Execute() {

            // step 3: pick up topk result
            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,
                                              search_job->GetResult());
            }

            span = rc.RecordSection(hdr + ", reduce topk");
            //            search_job->AccumReduceCost(span);