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

Merge pull request #531 from fishpenguin/0.6.0-yk-refactor-scheduler

BuildIndex stop when do build index and search simultaneously
......@@ -25,6 +25,7 @@ Please mark all change in change log and use the ticket from JIRA.
- \#509 - IVF_PQ index build trapped into dead loop caused by invalid params
- \#513 - Unittest DELETE_BY_RANGE sometimes failed
- \#527 - faiss benchmark not compatible with faiss 1.6.0
- \#530 - BuildIndex stop when do build index and search simultaneously
## Feature
- \#12 - Pure CPU version for Milvus
......
......@@ -55,6 +55,11 @@ class BuildMgr {
}
}
int64_t
NumOfAvailable() {
return available_;
}
private:
std::int64_t available_;
std::mutex mutex_;
......
......@@ -178,7 +178,8 @@ TaskTable::PickToLoad(uint64_t limit) {
// if task is a build index task, limit it
if (task->Type() == TaskType::BuildIndexTask && task->path().Current() == "cpu") {
if (not BuildMgrInst::GetInstance()->Take()) {
if (BuildMgrInst::GetInstance()->NumOfAvailable() < 1) {
SERVER_LOG_WARNING << "BuildMgr doesnot have available place for building index";
continue;
}
}
......
......@@ -178,6 +178,10 @@ Resource::loader_function() {
if (task_item == nullptr) {
break;
}
if (task_item->task->Type() == TaskType::BuildIndexTask && name() == "cpu") {
BuildMgrInst::GetInstance()->Take();
SERVER_LOG_DEBUG << name() << " load BuildIndexTask";
}
LoadFile(task_item->task);
task_item->Loaded();
if (task_item->from) {
......@@ -208,7 +212,6 @@ Resource::executor_function() {
if (task_item == nullptr) {
break;
}
auto start = get_current_timestamp();
Process(task_item->task);
auto finish = get_current_timestamp();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册