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