提交 13c98ea9 编写于 作者: P peng.xu

Merge branch 'branch-0.4.0' into 'branch-0.4.0'

MS-405 Add delete task support

See merge request megasearch/milvus!412

Former-commit-id: 923c1c5c04ac3f5d6f676b127160daf1774ff700
......@@ -41,6 +41,8 @@ Please mark all change in change log and use the ticket from JIRA.
- MS-400 - Add timestamp record in task state change function
- MS-402 - Add dump implementation for TaskTableItem
- MS-403 - Add GpuCacheMgr
- MS-404 - Release index after search task done avoid memory increment continues
- MS-405 - Add delete task support
## New Feature
- MS-343 - Implement ResourceMgr
......
......@@ -17,6 +17,17 @@ ResourceMgr::ResourceMgr()
}
uint64_t
ResourceMgr::GetNumOfComputeResource() {
uint64_t count = 0;
for (auto &res : resources_) {
if (res->HasExecutor()) {
++count;
}
}
return count;
}
ResourceWPtr
ResourceMgr::Add(ResourcePtr &&resource) {
ResourceWPtr ret(resource);
......
......@@ -35,6 +35,12 @@ public:
return disk_resources_;
}
/*
* Return account of resource which enable executor;
*/
uint64_t
GetNumOfComputeResource();
/*
* Add resource into Resource Management;
* Generate functions on events;
......
......@@ -6,10 +6,14 @@
#include "DeleteTask.h"
namespace zilliz {
namespace milvus {
namespace engine {
XDeleteTask::XDeleteTask(DeleteContextPtr &delete_context)
: delete_context_ptr_(delete_context) {}
void
XDeleteTask::Load(LoadType type, uint8_t device_id) {
......@@ -17,12 +21,13 @@ XDeleteTask::Load(LoadType type, uint8_t device_id) {
void
XDeleteTask::Execute() {
delete_context_ptr_->ResourceDone();
}
TaskPtr
XDeleteTask::Clone() {
return nullptr;
auto task = std::make_shared<XDeleteTask>(delete_context_ptr_);
return task;
}
}
......
......@@ -5,6 +5,7 @@
******************************************************************************/
#pragma once
#include <src/db/scheduler/context/DeleteContext.h>
#include "Task.h"
......@@ -14,6 +15,9 @@ namespace engine {
class XDeleteTask : public Task {
public:
explicit
XDeleteTask(DeleteContextPtr &delete_context);
void
Load(LoadType type, uint8_t device_id) override;
......@@ -22,6 +26,9 @@ public:
TaskPtr
Clone() override;
public:
DeleteContextPtr delete_context_ptr_;
};
}
......
......@@ -207,6 +207,9 @@ XSearchTask::Execute() {
CollectDurationMetrics(index_type_, total_time);
rc.ElapseFromBegin("totally cost");
// release index in resource
index_engine_ = nullptr;
}
TaskPtr
......
......@@ -35,6 +35,7 @@ public:
virtual void
Execute() = 0;
// TODO: dont use this method to support task move
virtual TaskPtr
Clone() = 0;
......
......@@ -22,8 +22,9 @@ TaskConvert(const ScheduleTaskPtr &schedule_task) {
return task;
}
case ScheduleTaskType::kDelete: {
// TODO: convert to delete task
return nullptr;
auto delete_task = std::static_pointer_cast<DeleteTask>(schedule_task);
auto task = std::make_shared<XDeleteTask>(delete_task->context_);
return task;
}
default: {
// TODO: unexpected !!!
......
......@@ -4,9 +4,11 @@
* Proprietary and confidential.
******************************************************************************/
#include "src/db/scheduler/task/IndexLoadTask.h"
#include "db/scheduler/task/DeleteTask.h"
#include "db/scheduler/task/IndexLoadTask.h"
#include "Task.h"
#include "SearchTask.h"
#include "DeleteTask.h"
namespace zilliz {
namespace milvus {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册