提交 05fda8c7 编写于 作者: J Jin Hai 提交者: GitHub

Merge pull request #70 from scsven/dev

Improvement dump function in scheduler

Former-commit-id: 02fa9712aafb5c09e709cad4f97777782469e9bd
...@@ -6,6 +6,8 @@ Please mark all change in change log and use the ticket from JIRA. ...@@ -6,6 +6,8 @@ Please mark all change in change log and use the ticket from JIRA.
## Bug ## Bug
## Improvement ## Improvement
- \#64 - Improvement dump function in scheduler
## Feature ## Feature
## Task ## Task
......
...@@ -26,4 +26,5 @@ ...@@ -26,4 +26,5 @@
| gperftools | [BSD 3-Clause](https://github.com/gperftools/gperftools/blob/master/COPYING) | | gperftools | [BSD 3-Clause](https://github.com/gperftools/gperftools/blob/master/COPYING) |
| grpc | [Apache 2.0](https://github.com/grpc/grpc/blob/master/LICENSE) | | grpc | [Apache 2.0](https://github.com/grpc/grpc/blob/master/LICENSE) |
| EASYLOGGINGPP | [MIT](https://github.com/zuhd-org/easyloggingpp/blob/master/LICENSEhttps://github.com/zuhd-org/easyloggingpp/blob/master/LICENSE) | | EASYLOGGINGPP | [MIT](https://github.com/zuhd-org/easyloggingpp/blob/master/LICENSEhttps://github.com/zuhd-org/easyloggingpp/blob/master/LICENSE) |
| Json | [MIT](https://github.com/nlohmann/json/blob/develop/LICENSE.MIT) |
因为 它太大了无法显示 source diff 。你可以改为 查看blob
...@@ -52,19 +52,13 @@ ToString(TaskTableItemState state) { ...@@ -52,19 +52,13 @@ ToString(TaskTableItemState state) {
} }
} }
std::string json
ToString(const TaskTimestamp& timestamp) { TaskTimestamp::Dump() {
std::stringstream ss; json ret{
ss << "<start=" << timestamp.start; {"start", start}, {"load", load}, {"loaded", loaded}, {"execute", execute},
ss << ", load=" << timestamp.load; {"executed", executed}, {"move", move}, {"moved", moved}, {"finish", finish},
ss << ", loaded=" << timestamp.loaded; };
ss << ", execute=" << timestamp.execute; return ret;
ss << ", executed=" << timestamp.executed;
ss << ", move=" << timestamp.move;
ss << ", moved=" << timestamp.moved;
ss << ", finish=" << timestamp.finish;
ss << ">";
return ss.str();
} }
bool bool
...@@ -146,15 +140,15 @@ TaskTableItem::Moved() { ...@@ -146,15 +140,15 @@ TaskTableItem::Moved() {
return false; return false;
} }
std::string json
TaskTableItem::Dump() { TaskTableItem::Dump() {
std::stringstream ss; json ret{
ss << "<id=" << id; {"id", id},
ss << ", task=" << task; {"task", (int64_t)task.get()},
ss << ", state=" << ToString(state); {"state", ToString(state)},
ss << ", timestamp=" << ToString(timestamp); {"timestamp", timestamp.Dump()},
ss << ">"; };
return ss.str(); return ret;
} }
std::vector<uint64_t> std::vector<uint64_t>
...@@ -268,13 +262,13 @@ TaskTable::Get(uint64_t index) { ...@@ -268,13 +262,13 @@ TaskTable::Get(uint64_t index) {
//// table_.erase(table_.begin(), iterator); //// table_.erase(table_.begin(), iterator);
//} //}
std::string json
TaskTable::Dump() { TaskTable::Dump() {
std::stringstream ss; json ret;
for (auto& item : table_) { for (auto& item : table_) {
ss << item->Dump() << std::endl; ret.push_back(item->Dump());
} }
return ss.str(); return ret;
} }
} // namespace scheduler } // namespace scheduler
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <vector> #include <vector>
#include "event/Event.h" #include "event/Event.h"
#include "interface/interfaces.h"
#include "task/SearchTask.h" #include "task/SearchTask.h"
namespace milvus { namespace milvus {
...@@ -42,7 +43,7 @@ enum class TaskTableItemState { ...@@ -42,7 +43,7 @@ enum class TaskTableItemState {
MOVED, // moved, termination state MOVED, // moved, termination state
}; };
struct TaskTimestamp { struct TaskTimestamp : public interface::dumpable {
uint64_t start = 0; uint64_t start = 0;
uint64_t move = 0; uint64_t move = 0;
uint64_t moved = 0; uint64_t moved = 0;
...@@ -51,9 +52,12 @@ struct TaskTimestamp { ...@@ -51,9 +52,12 @@ struct TaskTimestamp {
uint64_t execute = 0; uint64_t execute = 0;
uint64_t executed = 0; uint64_t executed = 0;
uint64_t finish = 0; uint64_t finish = 0;
json
Dump() override;
}; };
struct TaskTableItem { struct TaskTableItem : public interface::dumpable {
TaskTableItem() : id(0), task(nullptr), state(TaskTableItemState::INVALID), mutex() { TaskTableItem() : id(0), task(nullptr), state(TaskTableItemState::INVALID), mutex() {
} }
...@@ -87,13 +91,13 @@ struct TaskTableItem { ...@@ -87,13 +91,13 @@ struct TaskTableItem {
bool bool
Moved(); Moved();
std::string json
Dump(); Dump() override;
}; };
using TaskTableItemPtr = std::shared_ptr<TaskTableItem>; using TaskTableItemPtr = std::shared_ptr<TaskTableItem>;
class TaskTable { class TaskTable : public interface::dumpable {
public: public:
TaskTable() = default; TaskTable() = default;
...@@ -240,8 +244,8 @@ class TaskTable { ...@@ -240,8 +244,8 @@ class TaskTable {
/* /*
* Dump; * Dump;
*/ */
std::string json
Dump(); Dump() override;
private: private:
std::uint64_t id_ = 0; std::uint64_t id_ = 0;
......
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
#pragma once
#include <condition_variable>
#include <deque>
#include <list>
#include <memory>
#include <mutex>
#include <queue>
#include <string>
#include <thread>
#include <unordered_map>
#include <vector>
#include "utils/Json.h"
namespace milvus {
namespace interface {
struct dumpable {
virtual ~dumpable() {
}
virtual json
Dump() = 0;
};
} // namespace interface
} // namespace milvus
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
#pragma once
#include "external/nlohmann/json.hpp"
namespace milvus {
using json = nlohmann::json;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册