diff --git a/cpp/CHANGELOG.md b/cpp/CHANGELOG.md index 671d865a028b5851662e2798131cb2289b70088e..3b4888dea4903a2b950bc3e0fee380daa33af88a 100644 --- a/cpp/CHANGELOG.md +++ b/cpp/CHANGELOG.md @@ -50,6 +50,7 @@ Please mark all change in change log and use the ticket from JIRA. - MS-408 - Add device_id in resource construct function - MS-409 - Using new scheduler - MS-410 - Add resource config comment +- MS-414 - Add TaskType in Scheduler::Task ## New Feature - MS-343 - Implement ResourceMgr diff --git a/cpp/src/scheduler/task/DeleteTask.cpp b/cpp/src/scheduler/task/DeleteTask.cpp index 9f76de506e855a422d44057fb8b215f81707dd8b..0e9c7dc36006b2d8f0a5fd5cc5ba9ed269882ae1 100644 --- a/cpp/src/scheduler/task/DeleteTask.cpp +++ b/cpp/src/scheduler/task/DeleteTask.cpp @@ -12,7 +12,7 @@ namespace milvus { namespace engine { XDeleteTask::XDeleteTask(DeleteContextPtr &delete_context) - : delete_context_ptr_(delete_context) {} + : Task(TaskType::DeleteTask), delete_context_ptr_(delete_context) {} void XDeleteTask::Load(LoadType type, uint8_t device_id) { diff --git a/cpp/src/scheduler/task/SearchTask.cpp b/cpp/src/scheduler/task/SearchTask.cpp index 7d342a3592b64615eb1b5f383463dc2540e8075b..3ddc2beb73af632b1289f62efff39e85f12dd326 100644 --- a/cpp/src/scheduler/task/SearchTask.cpp +++ b/cpp/src/scheduler/task/SearchTask.cpp @@ -81,11 +81,12 @@ CollectFileMetrics(int file_type, size_t file_size) { } } -XSearchTask::XSearchTask(TableFileSchemaPtr file) : file_(file) { +XSearchTask::XSearchTask(TableFileSchemaPtr file) + : Task(TaskType::SearchTask), file_(file) { index_engine_ = EngineFactory::Build(file_->dimension_, file_->location_, (EngineType) file_->engine_type_, - (MetricType)file_->metric_type_, + (MetricType) file_->metric_type_, file_->nlist_); } diff --git a/cpp/src/scheduler/task/Task.h b/cpp/src/scheduler/task/Task.h index 4d78894d31048a43b4c2bc01b47a83f6f5777c52..bc2dae464b5e291dcc421c14499fd5558bb38de2 100644 --- a/cpp/src/scheduler/task/Task.h +++ b/cpp/src/scheduler/task/Task.h @@ -21,13 +21,20 @@ enum class LoadType { GPU2CPU, }; +enum class TaskType { + SearchTask, + DeleteTask, + TestTask, +}; + class Task; using TaskPtr = std::shared_ptr; class Task { public: - Task() = default; + explicit + Task(TaskType type) : type_(type) {} virtual void Load(LoadType type, uint8_t device_id) = 0; @@ -39,9 +46,13 @@ public: virtual TaskPtr Clone() = 0; + inline TaskType + Type() const { return type_; } + public: std::vector search_contexts_; ScheduleTaskPtr task_; + TaskType type_; }; diff --git a/cpp/src/scheduler/task/TestTask.cpp b/cpp/src/scheduler/task/TestTask.cpp index 527e1b0fb18f30b1f5e550d01984a0364d911a2e..29f2a94048e422644420364e35c851b1d8f81fa8 100644 --- a/cpp/src/scheduler/task/TestTask.cpp +++ b/cpp/src/scheduler/task/TestTask.cpp @@ -11,6 +11,8 @@ namespace zilliz { namespace milvus { namespace engine { +TestTask::TestTask() : Task(TaskType::TestTask) {} + void TestTask::Load(LoadType type, uint8_t device_id) { load_count_++; diff --git a/cpp/src/scheduler/task/TestTask.h b/cpp/src/scheduler/task/TestTask.h index 0eb77504c8109f56917e2cead025d80e81d90b7e..5a466ec3394db3ac546251dbf400331dc2e0a7b3 100644 --- a/cpp/src/scheduler/task/TestTask.h +++ b/cpp/src/scheduler/task/TestTask.h @@ -14,7 +14,7 @@ namespace engine { class TestTask : public Task { public: - TestTask() = default; + TestTask(); public: void