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

MS-417 YAML sequence load disable cause scheduler startup failed

See merge request megasearch/milvus!424

Former-commit-id: 3812e11a43625bb9135a6df975b922c8e4f9efed
pull/191/head
peng.xu 2019-08-25 09:46:33 +08:00
commit 5b7704a9f1
11 changed files with 55 additions and 30 deletions

View File

@ -7,6 +7,8 @@ Please mark all change in change log and use the ticket from JIRA.
## Bug
- MS-411 - Fix metric unittest linking error
- MS-412 - Fix gpu cache logical error
- MS-416 - ExecutionEngineImpl::GpuCache has not return value cause crash
- MS-417 - YAML sequence load disable cause scheduler startup failed
## Improvement
- MS-327 - Clean code for milvus
@ -51,6 +53,9 @@ Please mark all change in change log and use the ticket from JIRA.
- MS-409 - Using new scheduler
- MS-413 - Remove thrift dependency
- MS-410 - Add resource config comment
- MS-414 - Add TaskType in Scheduler::Task
- MS-415 - Add command tasktable to dump all tasktables
- MS-418 - Update server_config.template file, set CPU compute only default
- MS-419 - Move index_file_size from IndexParam to TableSchema
## New Feature

View File

@ -64,21 +64,21 @@ resource_config:
memory: 64
device_id: 0
enable_loader: true
enable_executor: false
enable_executor: true
gtx1060:
type: GPU
memory: 6
device_id: 0
enable_loader: true
enable_executor: true
enable_loader: false
enable_executor: false
gtx1660:
type: GPU
memory: 6
device_id: 1
enable_loader: true
enable_executor: true
enable_loader: false
enable_executor: false
# connection list, length: 0~N
# format: -${resource_name}===${resource_name}

View File

@ -73,19 +73,19 @@ YamlConfigMgr::SetChildConfig(const YAML::Node& node,
return false;
}
//bool
//YamlConfigMgr::SetSequence(const YAML::Node &node,
// const std::string &child_name,
// ConfigNode &config) {
// if(node[child_name].IsDefined ()) {
// size_t cnt = node[child_name].size();
// for(size_t i = 0; i < cnt; i++){
// config.AddSequenceItem(child_name, node[child_name][i].as<std::string>());
// }
// return true;
// }
// return false;
//}
bool
YamlConfigMgr::SetSequence(const YAML::Node &node,
const std::string &child_name,
ConfigNode &config) {
if(node[child_name].IsDefined ()) {
size_t cnt = node[child_name].size();
for(size_t i = 0; i < cnt; i++){
config.AddSequenceItem(child_name, node[child_name][i].as<std::string>());
}
return true;
}
return false;
}
void
YamlConfigMgr::LoadConfigNode(const YAML::Node& node, ConfigNode& config) {
@ -98,8 +98,8 @@ YamlConfigMgr::LoadConfigNode(const YAML::Node& node, ConfigNode& config) {
SetConfigValue(node, key, config);
} else if(node[key].IsMap()){
SetChildConfig(node, key, config);
// } else if(node[key].IsSequence()){
// SetSequence(node, key, config);
} else if(node[key].IsSequence()){
SetSequence(node, key, config);
}
}
}

View File

@ -33,10 +33,10 @@ class YamlConfigMgr : public IConfigMgr {
const std::string &name,
ConfigNode &config);
// bool
// SetSequence(const YAML::Node &node,
// const std::string &child_name,
// ConfigNode &config);
bool
SetSequence(const YAML::Node &node,
const std::string &child_name,
ConfigNode &config);
void LoadConfigNode(const YAML::Node& node, ConfigNode& config);

View File

@ -273,6 +273,8 @@ Status ExecutionEngineImpl::Cache() {
Status ExecutionEngineImpl::GpuCache(uint64_t gpu_id) {
zilliz::milvus::cache::GpuCacheMgr::GetInstance(gpu_id)->InsertItem(location_, index_);
return Status::OK();
}
// TODO(linxj): remove.

View File

@ -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) {

View File

@ -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_);
}

View File

@ -21,13 +21,20 @@ enum class LoadType {
GPU2CPU,
};
enum class TaskType {
SearchTask,
DeleteTask,
TestTask,
};
class Task;
using TaskPtr = std::shared_ptr<Task>;
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<SearchContextPtr> search_contexts_;
ScheduleTaskPtr task_;
TaskType type_;
};

View File

@ -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_++;

View File

@ -14,7 +14,7 @@ namespace engine {
class TestTask : public Task {
public:
TestTask() = default;
TestTask();
public:
void

View File

@ -13,6 +13,7 @@
#include "version.h"
#include "GrpcMilvusServer.h"
#include "db/Utils.h"
#include "scheduler/SchedInst.h"
#include "src/server/Server.h"
@ -753,7 +754,10 @@ ServerError
CmdTask::OnExecute() {
if (cmd_ == "version") {
result_ = MILVUS_VERSION;
} else {
} else if (cmd_ == "tasktable") {
result_ = engine::ResMgrInst::GetInstance()->DumpTaskTables();
}
else {
result_ = "OK";
}