From d4b46d5fbe1cbb7d73ff435d3ffcad81fc4452ca Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Mon, 2 Oct 2023 16:17:16 +0000 Subject: [PATCH 01/28] add db-management as submodule --- .gitmodules | 3 +++ deps/tugraph-db-management | 1 + 2 files changed, 4 insertions(+) create mode 160000 deps/tugraph-db-management diff --git a/.gitmodules b/.gitmodules index ec7af3f031..178f3e8111 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "deps/tugraph-db-client-java"] path = deps/tugraph-db-client-java url = https://github.com/TuGraph-family/tugraph-db-client-java.git +[submodule "deps/tugraph-db-management"] + path = deps/tugraph-db-management + url = https://github.com/TuGraph-family/tugraph-db-management.git diff --git a/deps/tugraph-db-management b/deps/tugraph-db-management new file mode 160000 index 0000000000..e40b2e4791 --- /dev/null +++ b/deps/tugraph-db-management @@ -0,0 +1 @@ +Subproject commit e40b2e47919b72d306277c6f0a347be589ec25e0 From 4780cb2b870198a75f94baf4c9371f945f7fdd50 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Mon, 2 Oct 2023 16:41:57 +0000 Subject: [PATCH 02/28] add db_management_client --- src/server/db_management_client.cpp | 0 src/server/db_management_client.h | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/server/db_management_client.cpp create mode 100644 src/server/db_management_client.h diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h new file mode 100644 index 0000000000..e69de29bb2 From e0ddc6b2b5f93b5e5e0963ac756e156c72b519fd Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Tue, 3 Oct 2023 16:17:58 +0000 Subject: [PATCH 03/28] add a detached thread to detect heartbeat --- src/BuildLGraphServer.cmake | 1 + src/server/db_management_client.cpp | 27 +++++++++++++++++++++++++++ src/server/db_management_client.h | 27 +++++++++++++++++++++++++++ src/server/lgraph_server.cpp | 4 ++++ 4 files changed, 59 insertions(+) diff --git a/src/BuildLGraphServer.cmake b/src/BuildLGraphServer.cmake index 0e7d9f30b4..5523c0eab0 100644 --- a/src/BuildLGraphServer.cmake +++ b/src/BuildLGraphServer.cmake @@ -44,6 +44,7 @@ add_library(${TARGET_SERVER_LIB} STATIC server/lgraph_server.cpp server/state_machine.cpp server/ha_state_machine.cpp + server/db_management_client.cpp import/import_online.cpp import/import_v2.cpp import/import_v3.cpp diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index e69de29bb2..cffe990db4 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -0,0 +1,27 @@ +/** + * Copyright 2022 AntGroup CO., Ltd. + * + * Licensed 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. + */ + +#include "server/db_management_client.h" + +namespace lgraph { +void DBManagementClient::DetectHeartbeat() { + while (true) { + DEBUG_LOG(ERROR) << "testing db management heart detection."; + + fma_common::SleepS(5); + } +} +} // namespace lgraph + + diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index e69de29bb2..8ab0270b0b 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -0,0 +1,27 @@ +/** + * Copyright 2022 AntGroup CO., Ltd. + * + * Licensed 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. + */ + +#pragma once + +#include "tools/lgraph_log.h" +#include "fma-common/utils.h" + +namespace lgraph { +class DBManagementClient { + private: + int heartbeat = 0; + public: + static void DetectHeartbeat(); +}; +} // namespace lgraph \ No newline at end of file diff --git a/src/server/lgraph_server.cpp b/src/server/lgraph_server.cpp index af1028b2c7..37a315de25 100644 --- a/src/server/lgraph_server.cpp +++ b/src/server/lgraph_server.cpp @@ -32,6 +32,7 @@ #include "restful/server/rest_server.h" #include "server/state_machine.h" #include "server/ha_state_machine.h" +#include "server/db_management_client.h" #ifndef _WIN32 #include "brpc/server.h" @@ -258,6 +259,9 @@ int LGraphServer::Start() { } GENERAL_LOG(INFO) << "Listening for RPC on port " << config_->rpc_port; } + // start db management service + std::thread heartbeat_detect(&DBManagementClient::DetectHeartbeat); + heartbeat_detect.detach(); #endif state_machine_->Start(); if (config_->unlimited_token == 1) { From cb68032b78864b2666e72749fe79766f3419cc3d Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Tue, 3 Oct 2023 16:54:19 +0000 Subject: [PATCH 04/28] add detect freq --- src/server/db_management_client.cpp | 2 +- src/server/db_management_client.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index cffe990db4..150f60c77f 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -19,7 +19,7 @@ void DBManagementClient::DetectHeartbeat() { while (true) { DEBUG_LOG(ERROR) << "testing db management heart detection."; - fma_common::SleepS(5); + fma_common::SleepS(detect_freq_); } } } // namespace lgraph diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index 8ab0270b0b..adb10ce816 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -20,7 +20,8 @@ namespace lgraph { class DBManagementClient { private: - int heartbeat = 0; + int heartbeat_ = 0; + static const int detect_freq_ = 5; public: static void DetectHeartbeat(); }; From 2c998bc0c6c9ce2f28a2c4a51dd167228f9b8fef Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Thu, 5 Oct 2023 00:23:36 +0000 Subject: [PATCH 05/28] test heart detect --- deps/tugraph-db-management | 2 +- src/BuildLGraphServer.cmake | 6 ++++-- src/server/db_management_client.cpp | 24 ++++++++++++++++++++++++ src/server/db_management_client.h | 3 +++ 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/deps/tugraph-db-management b/deps/tugraph-db-management index e40b2e4791..33edb7dcc9 160000 --- a/deps/tugraph-db-management +++ b/deps/tugraph-db-management @@ -1 +1 @@ -Subproject commit e40b2e47919b72d306277c6f0a347be589ec25e0 +Subproject commit 33edb7dcc95706efc4d1e0f66ca9ea51a33376a0 diff --git a/src/BuildLGraphServer.cmake b/src/BuildLGraphServer.cmake index 5523c0eab0..d5bd946fdd 100644 --- a/src/BuildLGraphServer.cmake +++ b/src/BuildLGraphServer.cmake @@ -25,7 +25,8 @@ endif () include(cmake/GenerateProtobuf.cmake) GenerateProtobufCpp(${CMAKE_CURRENT_LIST_DIR}/protobuf PROTO_SRCS PROTO_HEADERS - ${CMAKE_CURRENT_LIST_DIR}/protobuf/ha.proto) + ${CMAKE_CURRENT_LIST_DIR}/protobuf/ha.proto + ${CMAKE_CURRENT_LIST_DIR}/protobuf/tugraph_management.proto) include_directories(${DEPS_INCLUDE_DIR}) @@ -52,7 +53,8 @@ add_library(${TARGET_SERVER_LIB} STATIC restful/server/stdafx.cpp http/http_server.cpp http/import_manager.cpp - http/import_task.cpp) + http/import_task.cpp + ${PROTO_SRCS}) target_compile_options(${TARGET_SERVER_LIB} PUBLIC -DGFLAGS_NS=${GFLAGS_NS} diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index 150f60c77f..65f470d305 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -16,8 +16,32 @@ namespace lgraph { void DBManagementClient::DetectHeartbeat() { + // Initialize brpc channel to db_management. + brpc::Channel channel; + brpc::ChannelOptions options; + options.protocol = "baidu_std"; + options.connection_type = ""; + options.timeout_ms = 100/*milliseconds*/; + options.max_retry = 3; + if (channel.Init("localhost:6091", "", &options) != 0) { + DEBUG_LOG(ERROR) << "Fail to initialize channel"; + return; + } + com::antgroup::tugraph::HeartbeatService_Stub stub(&channel); + while (true) { DEBUG_LOG(ERROR) << "testing db management heart detection."; + com::antgroup::tugraph::HeartbeatRequest request; + com::antgroup::tugraph::HeartbeatResponse response; + brpc::Controller cntl; + request.set_request_msg("this is a heartbeat request message."); + stub.detectHeartbeat(&cntl, &request, &response, NULL); + if (!cntl.Failed()) { + DEBUG_LOG(ERROR) << response.response_msg() << " " + << " latency=" << cntl.latency_us() << "us"; + } else { + DEBUG_LOG(ERROR) << cntl.ErrorText(); + } fma_common::SleepS(detect_freq_); } diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index adb10ce816..7496b4a796 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -16,6 +16,9 @@ #include "tools/lgraph_log.h" #include "fma-common/utils.h" +#include "protobuf/tugraph_management.pb.h" +#include "gflags/gflags.h" +#include "brpc/channel.h" namespace lgraph { class DBManagementClient { From 2ec5ad2774fca8c02f64fb5a2135e8de4082c52a Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Sun, 8 Oct 2023 21:11:55 +0000 Subject: [PATCH 06/28] change db management client to singleton --- src/server/db_management_client.cpp | 89 +++++++++++++++++++++++++++-- src/server/db_management_client.h | 13 ++++- 2 files changed, 96 insertions(+), 6 deletions(-) diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index 65f470d305..88d89f6887 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -15,20 +15,39 @@ #include "server/db_management_client.h" namespace lgraph { -void DBManagementClient::DetectHeartbeat() { + +DBManagementClient::DBManagementClient(){ // Initialize brpc channel to db_management. - brpc::Channel channel; brpc::ChannelOptions options; options.protocol = "baidu_std"; options.connection_type = ""; options.timeout_ms = 100/*milliseconds*/; options.max_retry = 3; - if (channel.Init("localhost:6091", "", &options) != 0) { + if (this->channel_.Init("localhost:6091", "", &options) != 0) { DEBUG_LOG(ERROR) << "Fail to initialize channel"; - return; + throw; } - com::antgroup::tugraph::HeartbeatService_Stub stub(&channel); +} + +void DBManagementClient::SetHeartbeat(bool heartbeat) { + this->heartbeat_ = heartbeat; +} + +bool DBManagementClient::GetHeartbeat() { + return this->heartbeat_; +} +brpc::Channel& DBManagementClient::GetChannel() { + return this->channel_; +} + +DBManagementClient& DBManagementClient::GetInstance() { + static DBManagementClient instance; + return instance; +} + +void DBManagementClient::DetectHeartbeat() { + com::antgroup::tugraph::HeartbeatService_Stub stub(&DBManagementClient::GetInstance().GetChannel()); while (true) { DEBUG_LOG(ERROR) << "testing db management heart detection."; com::antgroup::tugraph::HeartbeatRequest request; @@ -37,15 +56,75 @@ void DBManagementClient::DetectHeartbeat() { request.set_request_msg("this is a heartbeat request message."); stub.detectHeartbeat(&cntl, &request, &response, NULL); if (!cntl.Failed()) { + DBManagementClient::GetInstance().SetHeartbeat(true); DEBUG_LOG(ERROR) << response.response_msg() << " " << " latency=" << cntl.latency_us() << "us"; } else { + DBManagementClient::GetInstance().SetHeartbeat(false); DEBUG_LOG(ERROR) << cntl.ErrorText(); } fma_common::SleepS(detect_freq_); } } + +void DBManagementClient::CreateJob() { + // // We will receive response synchronously, safe to put variables + // // on stack. + // com::antgroup::tugraph::JobManagementRequest request; + // com::antgroup::tugraph::JobManagementResponse response; + // brpc::Controller cntl; + + // request.set_db_host("127.0.0.1"); + // request.set_db_port("8888"); + + // // test create_job_request + // request.set_allocated_create_job_request(new com::antgroup::tugraph::CreateJobRequest()); + // request.mutable_create_job_request()->set_start_time(1694138458457); + // request.mutable_create_job_request()->set_period("IMMEDIATE"); + // request.mutable_create_job_request()->set_procedure_name("Khop_test"); + // request.mutable_create_job_request()->set_procedure_type("Khop"); + // // request.mutable_create_job_request()->set_creator("lsl"); + // request.mutable_create_job_request()->set_create_time(1694138458457); + + + // cntl.set_log_id(log_id ++); // set by user + // // Set attachment which is wired to network directly instead of + // // being serialized into protobuf messages. + // cntl.request_attachment().append(FLAGS_attachment); + + // // Because `done'(last parameter) is NULL, this function waits until + // // the response comes back or error occurs(including timedout). + // stub.handleRequest(&cntl, &request, &response, NULL); + // if (!cntl.Failed()) { + // LOG(INFO) << "Received response from " << cntl.remote_side() + // << " to " << cntl.local_side() + // << ": " << response.response_code() << " (attached=" + // << cntl.response_attachment() << ")" + // << " latency=" << cntl.latency_us() << "us"; + // return response.create_job_response().job_id(); + // } else { + // LOG(WARNING) << cntl.ErrorText(); + // return -1; + // } + return; +} + +void DBManagementClient::UpdateJob() { + return; +} + +void DBManagementClient::ReadJob() { + return; +} + +void DBManagementClient::ReadJobResult() { + return; +} + +void DBManagementClient::DeleteJob() { + return; +} } // namespace lgraph diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index 7496b4a796..c8fb936701 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -23,9 +23,20 @@ namespace lgraph { class DBManagementClient { private: - int heartbeat_ = 0; + bool heartbeat_ = false; static const int detect_freq_ = 5; + brpc::Channel channel_; public: + DBManagementClient(); + static DBManagementClient& GetInstance(); + void SetHeartbeat(bool heartbeat); + bool GetHeartbeat(); + brpc::Channel& GetChannel(); static void DetectHeartbeat(); + void CreateJob(); + void UpdateJob(); + void ReadJob(); + void ReadJobResult(); + void DeleteJob(); }; } // namespace lgraph \ No newline at end of file From abe3942e253ec65ec79f13f401fcabd4ba3209c6 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Sun, 8 Oct 2023 22:34:58 +0000 Subject: [PATCH 07/28] add createJob function --- src/server/db_management_client.cpp | 82 +++++++++++++---------------- src/server/db_management_client.h | 7 ++- 2 files changed, 43 insertions(+), 46 deletions(-) diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index 88d89f6887..c3f54707d7 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -16,7 +16,10 @@ namespace lgraph { -DBManagementClient::DBManagementClient(){ +DBManagementClient::DBManagementClient() + : job_stub_(com::antgroup::tugraph::JobManagementService_Stub(&channel_)), + heartbeat_stub_(com::antgroup::tugraph::HeartbeatService_Stub(&channel_)) + { // Initialize brpc channel to db_management. brpc::ChannelOptions options; options.protocol = "baidu_std"; @@ -37,8 +40,12 @@ bool DBManagementClient::GetHeartbeat() { return this->heartbeat_; } -brpc::Channel& DBManagementClient::GetChannel() { - return this->channel_; +com::antgroup::tugraph::HeartbeatService_Stub& DBManagementClient::GetHeartbeatStub() { + return this->heartbeat_stub_; +} + +com::antgroup::tugraph::JobManagementService_Stub& DBManagementClient::GetJobStub() { + return this->job_stub_; } DBManagementClient& DBManagementClient::GetInstance() { @@ -47,7 +54,7 @@ DBManagementClient& DBManagementClient::GetInstance() { } void DBManagementClient::DetectHeartbeat() { - com::antgroup::tugraph::HeartbeatService_Stub stub(&DBManagementClient::GetInstance().GetChannel()); + com::antgroup::tugraph::HeartbeatService_Stub& stub = DBManagementClient::GetInstance().GetHeartbeatStub(); while (true) { DEBUG_LOG(ERROR) << "testing db management heart detection."; com::antgroup::tugraph::HeartbeatRequest request; @@ -68,46 +75,33 @@ void DBManagementClient::DetectHeartbeat() { } } -void DBManagementClient::CreateJob() { - // // We will receive response synchronously, safe to put variables - // // on stack. - // com::antgroup::tugraph::JobManagementRequest request; - // com::antgroup::tugraph::JobManagementResponse response; - // brpc::Controller cntl; - - // request.set_db_host("127.0.0.1"); - // request.set_db_port("8888"); - - // // test create_job_request - // request.set_allocated_create_job_request(new com::antgroup::tugraph::CreateJobRequest()); - // request.mutable_create_job_request()->set_start_time(1694138458457); - // request.mutable_create_job_request()->set_period("IMMEDIATE"); - // request.mutable_create_job_request()->set_procedure_name("Khop_test"); - // request.mutable_create_job_request()->set_procedure_type("Khop"); - // // request.mutable_create_job_request()->set_creator("lsl"); - // request.mutable_create_job_request()->set_create_time(1694138458457); - - - // cntl.set_log_id(log_id ++); // set by user - // // Set attachment which is wired to network directly instead of - // // being serialized into protobuf messages. - // cntl.request_attachment().append(FLAGS_attachment); - - // // Because `done'(last parameter) is NULL, this function waits until - // // the response comes back or error occurs(including timedout). - // stub.handleRequest(&cntl, &request, &response, NULL); - // if (!cntl.Failed()) { - // LOG(INFO) << "Received response from " << cntl.remote_side() - // << " to " << cntl.local_side() - // << ": " << response.response_code() << " (attached=" - // << cntl.response_attachment() << ")" - // << " latency=" << cntl.latency_us() << "us"; - // return response.create_job_response().job_id(); - // } else { - // LOG(WARNING) << cntl.ErrorText(); - // return -1; - // } - return; +void DBManagementClient::CreateJob(std::int64_t start_time, std::string period, std::string name, std::string type, std::string user, std::int64_t create_time) { + com::antgroup::tugraph::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); + com::antgroup::tugraph::JobManagementRequest request; + com::antgroup::tugraph::JobManagementResponse response; + brpc::Controller cntl; + + request.set_db_host("127.0.0.1"); + request.set_db_port("8888"); + + // test create_job_request + request.set_allocated_create_job_request(new com::antgroup::tugraph::CreateJobRequest()); + request.mutable_create_job_request()->set_start_time(start_time); + request.mutable_create_job_request()->set_period(period); + request.mutable_create_job_request()->set_procedure_name(name); + request.mutable_create_job_request()->set_procedure_type(type); + request.mutable_create_job_request()->set_user(user); + request.mutable_create_job_request()->set_create_time(create_time); + + stub.handleRequest(&cntl, &request, &response, NULL); + if (!cntl.Failed()) { + int job_id = response.create_job_response().job_id(); + DEBUG_LOG(ERROR) << "JobId is : " << job_id; + return; + } else { + DEBUG_LOG(ERROR) << cntl.ErrorText(); + throw; + } } void DBManagementClient::UpdateJob() { diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index c8fb936701..453647c93f 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -26,14 +26,17 @@ class DBManagementClient { bool heartbeat_ = false; static const int detect_freq_ = 5; brpc::Channel channel_; + com::antgroup::tugraph::JobManagementService_Stub job_stub_; + com::antgroup::tugraph::HeartbeatService_Stub heartbeat_stub_; public: DBManagementClient(); static DBManagementClient& GetInstance(); void SetHeartbeat(bool heartbeat); bool GetHeartbeat(); - brpc::Channel& GetChannel(); + com::antgroup::tugraph::HeartbeatService_Stub& GetHeartbeatStub(); + com::antgroup::tugraph::JobManagementService_Stub& GetJobStub(); static void DetectHeartbeat(); - void CreateJob(); + void CreateJob(std::int64_t start_time, std::string period, std::string name, std::string type, std::string user, std::int64_t create_time); void UpdateJob(); void ReadJob(); void ReadJobResult(); From a8eb775ca22f32115eccb485540b13d15c4506b2 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Tue, 10 Oct 2023 21:17:25 +0000 Subject: [PATCH 08/28] add crud for management client --- src/server/db_management_client.cpp | 108 +++++++++++++++++++++++----- src/server/db_management_client.h | 10 +-- 2 files changed, 97 insertions(+), 21 deletions(-) diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index c3f54707d7..488968b815 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -75,16 +75,15 @@ void DBManagementClient::DetectHeartbeat() { } } -void DBManagementClient::CreateJob(std::int64_t start_time, std::string period, std::string name, std::string type, std::string user, std::int64_t create_time) { +int DBManagementClient::CreateJob(std::string host, std::string port, std::int64_t start_time, std::string period, std::string name, std::string type, std::string user, std::int64_t create_time) { com::antgroup::tugraph::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); com::antgroup::tugraph::JobManagementRequest request; com::antgroup::tugraph::JobManagementResponse response; brpc::Controller cntl; - request.set_db_host("127.0.0.1"); - request.set_db_port("8888"); - - // test create_job_request + // build create_job_request + request.set_db_host(host); + request.set_db_port(port); request.set_allocated_create_job_request(new com::antgroup::tugraph::CreateJobRequest()); request.mutable_create_job_request()->set_start_time(start_time); request.mutable_create_job_request()->set_period(period); @@ -96,28 +95,105 @@ void DBManagementClient::CreateJob(std::int64_t start_time, std::string period, stub.handleRequest(&cntl, &request, &response, NULL); if (!cntl.Failed()) { int job_id = response.create_job_response().job_id(); - DEBUG_LOG(ERROR) << "JobId is : " << job_id; - return; + DEBUG_LOG(INFO) << "[CREATE JOB REQUEST]: " << "success, JobId is " << job_id; + return job_id; } else { - DEBUG_LOG(ERROR) << cntl.ErrorText(); + DEBUG_LOG(ERROR) << "[CREATE JOB REQUEST]: " << cntl.ErrorText(); throw; } } -void DBManagementClient::UpdateJob() { - return; +void DBManagementClient::UpdateJob(std::string host, std::string port, int job_id, std::string status, std::int64_t runtime, std::string result) { + com::antgroup::tugraph::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); + com::antgroup::tugraph::JobManagementRequest request; + com::antgroup::tugraph::JobManagementResponse response; + brpc::Controller cntl; + + // build create_job_request + request.set_db_host(host); + request.set_db_port(port); + request.set_allocated_update_job_request(new com::antgroup::tugraph::UpdateJobRequest()); + request.mutable_update_job_request()->set_job_id(job_id); + request.mutable_update_job_request()->set_status(status); + request.mutable_update_job_request()->set_runtime(runtime); + request.mutable_update_job_request()->set_result(result); + + stub.handleRequest(&cntl, &request, &response, NULL); + if (!cntl.Failed()) { + DEBUG_LOG(INFO) << "[UPDATE JOB REQUEST]: " << "success"; + } else { + DEBUG_LOG(ERROR) << "[UPDATE JOB REQUEST]: " << cntl.ErrorText(); + throw; + } } -void DBManagementClient::ReadJob() { - return; +std::vector DBManagementClient::ReadJob(std::string host, std::string port) { + com::antgroup::tugraph::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); + com::antgroup::tugraph::JobManagementRequest request; + com::antgroup::tugraph::JobManagementResponse response; + brpc::Controller cntl; + + // build create_job_request + request.set_db_host(host); + request.set_db_port(port); + request.set_allocated_read_job_request(new com::antgroup::tugraph::ReadJobRequest()); + + stub.handleRequest(&cntl, &request, &response, NULL); + if (!cntl.Failed()) { + DEBUG_LOG(INFO) << "[READ JOB REQUEST]: " << "success"; + std::vector job_list; + for (int i = 0; i < response.read_job_response().job_size(); i++) { + job_list.push_back(response.read_job_response().job(i)); + } + return job_list; + } else { + DEBUG_LOG(ERROR) << "[READ JOB REQUEST]: " << cntl.ErrorText(); + throw; + } } -void DBManagementClient::ReadJobResult() { - return; +com::antgroup::tugraph::JobResult DBManagementClient::ReadJobResult(std::string host, std::string port, int job_id) { + com::antgroup::tugraph::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); + com::antgroup::tugraph::JobManagementRequest request; + com::antgroup::tugraph::JobManagementResponse response; + brpc::Controller cntl; + + // build create_job_request + request.set_db_host(host); + request.set_db_port(port); + request.set_allocated_read_job_result_request(new com::antgroup::tugraph::ReadJobResultRequest()); + request.mutable_read_job_result_request()->set_job_id(job_id); + + stub.handleRequest(&cntl, &request, &response, NULL); + if (!cntl.Failed()) { + DEBUG_LOG(INFO) << "[READ JOB RESULT REQUEST]: " << "success"; + return response.read_job_result_response().job_result(); + } else { + DEBUG_LOG(ERROR) << "[READ JOB REQUEST]: " << cntl.ErrorText(); + throw; + } } -void DBManagementClient::DeleteJob() { - return; +void DBManagementClient::DeleteJob(std::string host, std::string port, int job_id) { + com::antgroup::tugraph::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); + com::antgroup::tugraph::JobManagementRequest request; + com::antgroup::tugraph::JobManagementResponse response; + brpc::Controller cntl; + + // build create_job_request + request.set_db_host(host); + request.set_db_port(port); + request.set_allocated_delete_job_request(new com::antgroup::tugraph::DeleteJobRequest()); + request.mutable_delete_job_request()->set_job_id(job_id); + + stub.handleRequest(&cntl, &request, &response, NULL); + if (!cntl.Failed()) { + DEBUG_LOG(INFO) << "[DELETE JOB REQUEST]: " << "success"; + return; + } else { + DEBUG_LOG(ERROR) << "[READ JOB REQUEST]: " << cntl.ErrorText(); + throw; + } } } // namespace lgraph diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index 453647c93f..1ecde2e6da 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -36,10 +36,10 @@ class DBManagementClient { com::antgroup::tugraph::HeartbeatService_Stub& GetHeartbeatStub(); com::antgroup::tugraph::JobManagementService_Stub& GetJobStub(); static void DetectHeartbeat(); - void CreateJob(std::int64_t start_time, std::string period, std::string name, std::string type, std::string user, std::int64_t create_time); - void UpdateJob(); - void ReadJob(); - void ReadJobResult(); - void DeleteJob(); + int CreateJob(std::string host, std::string port, std::int64_t start_time, std::string period, std::string name, std::string type, std::string user, std::int64_t create_time); + void UpdateJob(std::string host, std::string port, int job_id, std::string status, std::int64_t runtime, std::string result); + std::vector ReadJob(std::string host, std::string port); + com::antgroup::tugraph::JobResult ReadJobResult(std::string host, std::string port, int job_id); + void DeleteJob(std::string host, std::string port, int job_id); }; } // namespace lgraph \ No newline at end of file From 3721bd2eb25e2a5e77019a3d33bc97810a9ea64e Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Thu, 12 Oct 2023 16:09:57 +0000 Subject: [PATCH 09/28] add unit test --- src/server/db_management_client.cpp | 10 +-- src/server/db_management_client.h | 11 +++ test/CMakeLists.txt | 1 + test/test_db_management_client.cpp | 104 ++++++++++++++++++++++++++++ 4 files changed, 121 insertions(+), 5 deletions(-) create mode 100644 test/test_db_management_client.cpp diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index 488968b815..f1a8435fbc 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -99,7 +99,7 @@ int DBManagementClient::CreateJob(std::string host, std::string port, std::int64 return job_id; } else { DEBUG_LOG(ERROR) << "[CREATE JOB REQUEST]: " << cntl.ErrorText(); - throw; + throw std::runtime_error("failed to connect to db management."); } } @@ -123,7 +123,7 @@ void DBManagementClient::UpdateJob(std::string host, std::string port, int job_i DEBUG_LOG(INFO) << "[UPDATE JOB REQUEST]: " << "success"; } else { DEBUG_LOG(ERROR) << "[UPDATE JOB REQUEST]: " << cntl.ErrorText(); - throw; + throw std::runtime_error("failed to connect to db management."); } } @@ -148,7 +148,7 @@ std::vector DBManagementClient::ReadJob(std::string return job_list; } else { DEBUG_LOG(ERROR) << "[READ JOB REQUEST]: " << cntl.ErrorText(); - throw; + throw std::runtime_error("failed to connect to db management."); } } @@ -170,7 +170,7 @@ com::antgroup::tugraph::JobResult DBManagementClient::ReadJobResult(std::string return response.read_job_result_response().job_result(); } else { DEBUG_LOG(ERROR) << "[READ JOB REQUEST]: " << cntl.ErrorText(); - throw; + throw std::runtime_error("failed to connect to db management."); } } @@ -192,7 +192,7 @@ void DBManagementClient::DeleteJob(std::string host, std::string port, int job_i return; } else { DEBUG_LOG(ERROR) << "[READ JOB REQUEST]: " << cntl.ErrorText(); - throw; + throw std::runtime_error("failed to connect to db management."); } } } // namespace lgraph diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index 1ecde2e6da..0e9d17bc89 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -30,16 +30,27 @@ class DBManagementClient { com::antgroup::tugraph::HeartbeatService_Stub heartbeat_stub_; public: DBManagementClient(); + static DBManagementClient& GetInstance(); + void SetHeartbeat(bool heartbeat); + bool GetHeartbeat(); + com::antgroup::tugraph::HeartbeatService_Stub& GetHeartbeatStub(); + com::antgroup::tugraph::JobManagementService_Stub& GetJobStub(); + static void DetectHeartbeat(); + int CreateJob(std::string host, std::string port, std::int64_t start_time, std::string period, std::string name, std::string type, std::string user, std::int64_t create_time); + void UpdateJob(std::string host, std::string port, int job_id, std::string status, std::int64_t runtime, std::string result); + std::vector ReadJob(std::string host, std::string port); + com::antgroup::tugraph::JobResult ReadJobResult(std::string host, std::string port, int job_id); + void DeleteJob(std::string host, std::string port, int job_id); }; } // namespace lgraph \ No newline at end of file diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 3eb8bba305..4b0dfafa9d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -33,6 +33,7 @@ add_executable(unit_test test_cypher.cpp test_cypher_plan.cpp test_data_type.cpp + test_db_management_client.cpp test_dense_string.cpp test_edge_index.cpp test_embed.cpp diff --git a/test/test_db_management_client.cpp b/test/test_db_management_client.cpp new file mode 100644 index 0000000000..9b92bd63aa --- /dev/null +++ b/test/test_db_management_client.cpp @@ -0,0 +1,104 @@ +/** + * Copyright 2022 AntGroup CO., Ltd. + * + * Licensed 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. + */ + +#include +#include +#include + +#include "./ut_utils.h" +#include "./test_tools.h" +#include "fma-common/utils.h" +#include "gtest/gtest.h" +#include "server/db_management_client.h" + +class TestDBManagementClient : public TuGraphTest {}; + +TEST_F(TestDBManagementClient, DBManagementClient) { + using namespace lgraph; + + // set up sqlite db file + std::string cmd; + int rt; + // cmd = "touch ../../deps/tugraph-db-management/tugraph_db_management_ut_temp.db"; + cmd = "mkdir ../../deps/tugraph-db-management/ut_temp"; + rt = system(cmd.c_str()); + UT_EXPECT_EQ(rt, 0); + cmd = "mv ../../deps/tugraph-db-management/tugraph_db_management.db ../../deps/tugraph-db-management/ut_temp/tugraph_db_management.db"; + rt = system(cmd.c_str()); + UT_EXPECT_EQ(rt, 0); + cmd = "touch ../../deps/tugraph-db-management/tugraph_db_management.db"; + rt = system(cmd.c_str()); + UT_EXPECT_EQ(rt, 0); + + // set up test veriables + std::string exception_msg = "failed to connect to db management."; + std::string host = "127.0.0.1"; + std::string port = "8888"; + std::int64_t start_time = 169413845845; + std::string period = "IMMEDIATE"; + std::string name = "Khop_test"; + std::string type = "Python"; + std::string user = "user"; + std::int64_t create_time = 1694138458457; + int job_id = 1; + std::string status = "SUCCESS"; + std::int64_t runtime = 100; + std::string result = "this is only a test of result"; + + // test exception handle + try { + DBManagementClient::GetInstance().CreateJob(host, port, start_time, period, name, type, user, create_time); + UT_EXPECT_EQ(1, 0); + } catch(std::exception& e) { + UT_EXPECT_EQ(e.what(), exception_msg); + } + try { + DBManagementClient::GetInstance().UpdateJob(host, port, job_id, status, runtime, result); + UT_EXPECT_EQ(1, 0); + } catch(std::exception& e) { + UT_EXPECT_EQ(e.what(), exception_msg); + } + try { + DBManagementClient::GetInstance().ReadJob(host, port); + UT_EXPECT_EQ(1, 0); + } catch(std::exception& e) { + UT_EXPECT_EQ(e.what(), exception_msg); + } + try { + DBManagementClient::GetInstance().ReadJobResult(host, port, job_id); + UT_EXPECT_EQ(1, 0); + } catch(std::exception& e) { + UT_EXPECT_EQ(e.what(), exception_msg); + } + try { + DBManagementClient::GetInstance().DeleteJob(host, port, job_id); + UT_EXPECT_EQ(1, 0); + } catch(std::exception& e) { + UT_EXPECT_EQ(e.what(), exception_msg); + } + + // start db management + + // test crud + + // reset sqlite db file + cmd = "rm ../../deps/tugraph-db-management/tugraph_db_management.db"; + rt = system(cmd.c_str()); + UT_EXPECT_EQ(rt, 0); + cmd = "mv ../../deps/tugraph-db-management/ut_temp/tugraph_db_management.db ../../deps/tugraph-db-management/tugraph_db_management.db"; + rt = system(cmd.c_str()); + UT_EXPECT_EQ(rt, 0); + cmd = "rm -rf ../../deps/tugraph-db-management/ut_temp"; + rt = system(cmd.c_str()); +} From 077304512dedff5744775a650e907dc765c98312 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Fri, 13 Oct 2023 01:44:29 +0000 Subject: [PATCH 10/28] finish ut --- src/server/db_management_client.cpp | 2 +- test/test_db_management_client.cpp | 66 ++++++++++++++++++++++++++--- 2 files changed, 61 insertions(+), 7 deletions(-) diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index f1a8435fbc..7f078f6eb6 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -24,7 +24,7 @@ DBManagementClient::DBManagementClient() brpc::ChannelOptions options; options.protocol = "baidu_std"; options.connection_type = ""; - options.timeout_ms = 100/*milliseconds*/; + options.timeout_ms = 1000/*milliseconds*/; options.max_retry = 3; if (this->channel_.Init("localhost:6091", "", &options) != 0) { DEBUG_LOG(ERROR) << "Fail to initialize channel"; diff --git a/test/test_db_management_client.cpp b/test/test_db_management_client.cpp index 9b92bd63aa..355108b233 100644 --- a/test/test_db_management_client.cpp +++ b/test/test_db_management_client.cpp @@ -27,17 +27,22 @@ class TestDBManagementClient : public TuGraphTest {}; TEST_F(TestDBManagementClient, DBManagementClient) { using namespace lgraph; + // set up cmd + std::string db_management_folder = "../../deps/tugraph-db-management/"; + std::string sqlite_db_file = "tugraph_db_management.db"; + std::string temp_folder = db_management_folder + "/ut_temp"; + // set up sqlite db file std::string cmd; int rt; // cmd = "touch ../../deps/tugraph-db-management/tugraph_db_management_ut_temp.db"; - cmd = "mkdir ../../deps/tugraph-db-management/ut_temp"; + cmd = "mkdir " + temp_folder; rt = system(cmd.c_str()); UT_EXPECT_EQ(rt, 0); - cmd = "mv ../../deps/tugraph-db-management/tugraph_db_management.db ../../deps/tugraph-db-management/ut_temp/tugraph_db_management.db"; + cmd = "mv " + db_management_folder + sqlite_db_file + " " + temp_folder + sqlite_db_file; rt = system(cmd.c_str()); UT_EXPECT_EQ(rt, 0); - cmd = "touch ../../deps/tugraph-db-management/tugraph_db_management.db"; + cmd = "touch " + db_management_folder + sqlite_db_file; rt = system(cmd.c_str()); UT_EXPECT_EQ(rt, 0); @@ -89,16 +94,65 @@ TEST_F(TestDBManagementClient, DBManagementClient) { } // start db management + cmd = "cd " + db_management_folder + " && " + "bash ut_start.sh"; + rt = system(cmd.c_str()); + UT_EXPECT_EQ(rt, 0); + fma_common::SleepS(120); // test crud + try { + job_id = DBManagementClient::GetInstance().CreateJob(host, port, start_time, period, name, type, user, create_time); + UT_EXPECT_EQ(1, job_id); + } catch(std::exception& e) { + DEBUG_LOG(ERROR) << e.what(); + UT_EXPECT_EQ(1, 0); + } + try { + DBManagementClient::GetInstance().UpdateJob(host, port, job_id, status, runtime, result); + } catch(std::exception& e) { + DEBUG_LOG(ERROR) << e.what(); + UT_EXPECT_EQ(1, 0); + } + try { + std::vector jobs = DBManagementClient::GetInstance().ReadJob(host, port); + UT_EXPECT_EQ(1, jobs.size()); + } catch(std::exception& e) { + DEBUG_LOG(ERROR) << e.what(); + UT_EXPECT_EQ(1, 0); + } + try { + com::antgroup::tugraph::JobResult job_result = DBManagementClient::GetInstance().ReadJobResult(host, port, job_id); + UT_EXPECT_EQ(result, job_result.result()); + } catch(std::exception& e) { + DEBUG_LOG(ERROR) << e.what(); + UT_EXPECT_EQ(1, 0); + } + try { + DBManagementClient::GetInstance().DeleteJob(host, port, job_id); + } catch(std::exception& e) { + DEBUG_LOG(ERROR) << e.what(); + UT_EXPECT_EQ(1, 0); + } + try { + std::vector jobs = DBManagementClient::GetInstance().ReadJob(host, port); + UT_EXPECT_EQ(0, jobs.size()); + } catch(std::exception& e) { + DEBUG_LOG(ERROR) << e.what(); + UT_EXPECT_EQ(1, 0); + } + + // stop db management + cmd = "cd " + db_management_folder + " && " + "bash ut_stop.sh "; + rt = system(cmd.c_str()); + UT_EXPECT_EQ(rt, 0); // reset sqlite db file - cmd = "rm ../../deps/tugraph-db-management/tugraph_db_management.db"; + cmd = "rm " + db_management_folder + sqlite_db_file; rt = system(cmd.c_str()); UT_EXPECT_EQ(rt, 0); - cmd = "mv ../../deps/tugraph-db-management/ut_temp/tugraph_db_management.db ../../deps/tugraph-db-management/tugraph_db_management.db"; + cmd = "mv " + temp_folder + sqlite_db_file + " " + db_management_folder + sqlite_db_file; rt = system(cmd.c_str()); UT_EXPECT_EQ(rt, 0); - cmd = "rm -rf ../../deps/tugraph-db-management/ut_temp"; + cmd = "rm -rf " + temp_folder; rt = system(cmd.c_str()); } From 59b4ad76bdd57fdfca31beeb8cb1a82f14494acc Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Fri, 13 Oct 2023 02:02:38 +0000 Subject: [PATCH 11/28] fix coding style --- src/server/db_management_client.cpp | 38 ++++++++++++++-------- src/server/db_management_client.h | 49 +++++++++++++++-------------- test/test_db_management_client.cpp | 15 ++++++--- 3 files changed, 61 insertions(+), 41 deletions(-) diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index 7f078f6eb6..af09226707 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -18,8 +18,7 @@ namespace lgraph { DBManagementClient::DBManagementClient() : job_stub_(com::antgroup::tugraph::JobManagementService_Stub(&channel_)), - heartbeat_stub_(com::antgroup::tugraph::HeartbeatService_Stub(&channel_)) - { + heartbeat_stub_(com::antgroup::tugraph::HeartbeatService_Stub(&channel_)) { // Initialize brpc channel to db_management. brpc::ChannelOptions options; options.protocol = "baidu_std"; @@ -54,7 +53,8 @@ DBManagementClient& DBManagementClient::GetInstance() { } void DBManagementClient::DetectHeartbeat() { - com::antgroup::tugraph::HeartbeatService_Stub& stub = DBManagementClient::GetInstance().GetHeartbeatStub(); + com::antgroup::tugraph::HeartbeatService_Stub& stub = + DBManagementClient::GetInstance().GetHeartbeatStub(); while (true) { DEBUG_LOG(ERROR) << "testing db management heart detection."; com::antgroup::tugraph::HeartbeatRequest request; @@ -75,8 +75,11 @@ void DBManagementClient::DetectHeartbeat() { } } -int DBManagementClient::CreateJob(std::string host, std::string port, std::int64_t start_time, std::string period, std::string name, std::string type, std::string user, std::int64_t create_time) { - com::antgroup::tugraph::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); +int DBManagementClient::CreateJob(std::string host, std::string port, std::int64_t start_time, + std::string period, std::string name, std::string type, + std::string user, std::int64_t create_time) { + com::antgroup::tugraph::JobManagementService_Stub& stub = + DBManagementClient::GetInstance().GetJobStub(); com::antgroup::tugraph::JobManagementRequest request; com::antgroup::tugraph::JobManagementResponse response; brpc::Controller cntl; @@ -103,8 +106,11 @@ int DBManagementClient::CreateJob(std::string host, std::string port, std::int64 } } -void DBManagementClient::UpdateJob(std::string host, std::string port, int job_id, std::string status, std::int64_t runtime, std::string result) { - com::antgroup::tugraph::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); +void DBManagementClient::UpdateJob(std::string host, std::string port, int job_id, + std::string status, std::int64_t runtime, + std::string result) { + com::antgroup::tugraph::JobManagementService_Stub& stub = + DBManagementClient::GetInstance().GetJobStub(); com::antgroup::tugraph::JobManagementRequest request; com::antgroup::tugraph::JobManagementResponse response; brpc::Controller cntl; @@ -127,8 +133,10 @@ void DBManagementClient::UpdateJob(std::string host, std::string port, int job_i } } -std::vector DBManagementClient::ReadJob(std::string host, std::string port) { - com::antgroup::tugraph::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); +std::vector DBManagementClient::ReadJob(std::string host, + std::string port) { + com::antgroup::tugraph::JobManagementService_Stub& stub = + DBManagementClient::GetInstance().GetJobStub(); com::antgroup::tugraph::JobManagementRequest request; com::antgroup::tugraph::JobManagementResponse response; brpc::Controller cntl; @@ -152,8 +160,10 @@ std::vector DBManagementClient::ReadJob(std::string } } -com::antgroup::tugraph::JobResult DBManagementClient::ReadJobResult(std::string host, std::string port, int job_id) { - com::antgroup::tugraph::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); +com::antgroup::tugraph::JobResult DBManagementClient::ReadJobResult(std::string host, + std::string port, int job_id) { + com::antgroup::tugraph::JobManagementService_Stub& stub = + DBManagementClient::GetInstance().GetJobStub(); com::antgroup::tugraph::JobManagementRequest request; com::antgroup::tugraph::JobManagementResponse response; brpc::Controller cntl; @@ -161,7 +171,8 @@ com::antgroup::tugraph::JobResult DBManagementClient::ReadJobResult(std::string // build create_job_request request.set_db_host(host); request.set_db_port(port); - request.set_allocated_read_job_result_request(new com::antgroup::tugraph::ReadJobResultRequest()); + request.set_allocated_read_job_result_request( + new com::antgroup::tugraph::ReadJobResultRequest()); request.mutable_read_job_result_request()->set_job_id(job_id); stub.handleRequest(&cntl, &request, &response, NULL); @@ -175,7 +186,8 @@ com::antgroup::tugraph::JobResult DBManagementClient::ReadJobResult(std::string } void DBManagementClient::DeleteJob(std::string host, std::string port, int job_id) { - com::antgroup::tugraph::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); + com::antgroup::tugraph::JobManagementService_Stub& stub = + DBManagementClient::GetInstance().GetJobStub(); com::antgroup::tugraph::JobManagementRequest request; com::antgroup::tugraph::JobManagementResponse response; brpc::Controller cntl; diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index 0e9d17bc89..6a7a094a8b 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -23,34 +23,37 @@ namespace lgraph { class DBManagementClient { private: - bool heartbeat_ = false; - static const int detect_freq_ = 5; - brpc::Channel channel_; - com::antgroup::tugraph::JobManagementService_Stub job_stub_; - com::antgroup::tugraph::HeartbeatService_Stub heartbeat_stub_; + bool heartbeat_ = false; + static const int detect_freq_ = 5; + brpc::Channel channel_; + com::antgroup::tugraph::JobManagementService_Stub job_stub_; + com::antgroup::tugraph::HeartbeatService_Stub heartbeat_stub_; + public: - DBManagementClient(); + DBManagementClient(); + + static DBManagementClient& GetInstance(); + + void SetHeartbeat(bool heartbeat); + + bool GetHeartbeat(); + + com::antgroup::tugraph::HeartbeatService_Stub& GetHeartbeatStub(); + + com::antgroup::tugraph::JobManagementService_Stub& GetJobStub(); - static DBManagementClient& GetInstance(); + static void DetectHeartbeat(); - void SetHeartbeat(bool heartbeat); + int CreateJob(std::string host, std::string port, std::int64_t start_time, std::string period, + std::string name, std::string type, std::string user, std::int64_t create_time); - bool GetHeartbeat(); - - com::antgroup::tugraph::HeartbeatService_Stub& GetHeartbeatStub(); + void UpdateJob(std::string host, std::string port, int job_id, std::string status, + std::int64_t runtime, std::string result); - com::antgroup::tugraph::JobManagementService_Stub& GetJobStub(); + std::vector ReadJob(std::string host, std::string port); - static void DetectHeartbeat(); + com::antgroup::tugraph::JobResult ReadJobResult(std::string host, std::string port, int job_id); - int CreateJob(std::string host, std::string port, std::int64_t start_time, std::string period, std::string name, std::string type, std::string user, std::int64_t create_time); - - void UpdateJob(std::string host, std::string port, int job_id, std::string status, std::int64_t runtime, std::string result); - - std::vector ReadJob(std::string host, std::string port); - - com::antgroup::tugraph::JobResult ReadJobResult(std::string host, std::string port, int job_id); - - void DeleteJob(std::string host, std::string port, int job_id); + void DeleteJob(std::string host, std::string port, int job_id); }; -} // namespace lgraph \ No newline at end of file +} // namespace lgraph diff --git a/test/test_db_management_client.cpp b/test/test_db_management_client.cpp index 355108b233..25dd677533 100644 --- a/test/test_db_management_client.cpp +++ b/test/test_db_management_client.cpp @@ -63,7 +63,8 @@ TEST_F(TestDBManagementClient, DBManagementClient) { // test exception handle try { - DBManagementClient::GetInstance().CreateJob(host, port, start_time, period, name, type, user, create_time); + DBManagementClient::GetInstance() + .CreateJob(host, port, start_time, period, name, type, user, create_time); UT_EXPECT_EQ(1, 0); } catch(std::exception& e) { UT_EXPECT_EQ(e.what(), exception_msg); @@ -101,7 +102,8 @@ TEST_F(TestDBManagementClient, DBManagementClient) { // test crud try { - job_id = DBManagementClient::GetInstance().CreateJob(host, port, start_time, period, name, type, user, create_time); + job_id = DBManagementClient::GetInstance() + .CreateJob(host, port, start_time, period, name, type, user, create_time); UT_EXPECT_EQ(1, job_id); } catch(std::exception& e) { DEBUG_LOG(ERROR) << e.what(); @@ -114,14 +116,16 @@ TEST_F(TestDBManagementClient, DBManagementClient) { UT_EXPECT_EQ(1, 0); } try { - std::vector jobs = DBManagementClient::GetInstance().ReadJob(host, port); + std::vector jobs = + DBManagementClient::GetInstance().ReadJob(host, port); UT_EXPECT_EQ(1, jobs.size()); } catch(std::exception& e) { DEBUG_LOG(ERROR) << e.what(); UT_EXPECT_EQ(1, 0); } try { - com::antgroup::tugraph::JobResult job_result = DBManagementClient::GetInstance().ReadJobResult(host, port, job_id); + com::antgroup::tugraph::JobResult job_result = + DBManagementClient::GetInstance().ReadJobResult(host, port, job_id); UT_EXPECT_EQ(result, job_result.result()); } catch(std::exception& e) { DEBUG_LOG(ERROR) << e.what(); @@ -134,7 +138,8 @@ TEST_F(TestDBManagementClient, DBManagementClient) { UT_EXPECT_EQ(1, 0); } try { - std::vector jobs = DBManagementClient::GetInstance().ReadJob(host, port); + std::vector jobs = + DBManagementClient::GetInstance().ReadJob(host, port); UT_EXPECT_EQ(0, jobs.size()); } catch(std::exception& e) { DEBUG_LOG(ERROR) << e.what(); From 701af2b284231aa77538277f03094001891e7ce8 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Fri, 13 Oct 2023 02:38:18 +0000 Subject: [PATCH 12/28] add proto --- src/protobuf/tugraph_db_management.proto | 135 +++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 src/protobuf/tugraph_db_management.proto diff --git a/src/protobuf/tugraph_db_management.proto b/src/protobuf/tugraph_db_management.proto new file mode 100644 index 0000000000..556b12e9ae --- /dev/null +++ b/src/protobuf/tugraph_db_management.proto @@ -0,0 +1,135 @@ +// 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. + +syntax="proto2"; +package com.antgroup.tugraph; + +option cc_generic_services = true; +option java_outer_classname = "TuGraphDBManagement"; + +enum ResponseCode { + SUCCESS = 0; + FAILED = 1; +} + +message Job { + required string db_id = 1; + required int32 job_id = 2; + required int64 start_time = 4; + required string period = 5; + required string procedure_name = 6; + required string procedure_type = 7; + required string status = 8; + required int64 runtime = 3; + required string user = 9; + required int64 create_time = 10; +} + +message JobResult { + required int32 job_id = 2; + required string result = 1; +} + +message CreateJobRequest { + required int64 start_time = 3; + required string period = 4; + required string procedure_name = 5; + required string procedure_type = 6; + required string user = 7; + required int64 create_time = 8; +} + +message CreateJobResponse { + required int32 job_id = 2; + required ResponseCode response_code = 1; +} + +message ReadJobRequest { + +} + +message ReadJobResponse { + repeated Job job = 2; + required ResponseCode response_code = 1; +} + +message ReadJobResultRequest { + required int32 job_id = 1; +} + +message ReadJobResultResponse { + required JobResult job_result = 1; + required ResponseCode response_code = 2; +} + +message UpdateJobRequest { + required int32 job_id = 1; + required string status = 2; + optional int64 runtime = 3; + optional string result = 4; +} + +message UpdateJobResponse { + required ResponseCode response_code = 1; +} + +message DeleteJobRequest { + required int32 job_id = 1; +} + +message DeleteJobResponse { + required ResponseCode response_code = 1; +} + +message JobManagementRequest { + required string db_host = 5; + required string db_port = 6; + oneof Req { + CreateJobRequest create_job_request = 1; + ReadJobRequest read_job_request = 2; + ReadJobResultRequest read_job_result_request = 7; + UpdateJobRequest update_job_request = 3; + DeleteJobRequest delete_job_request = 4; + }; +}; + +message JobManagementResponse { + required ResponseCode response_code = 5; + oneof Resp { + CreateJobResponse create_job_response = 1; + ReadJobResponse read_job_response = 2; + ReadJobResultResponse read_job_result_response = 6; + UpdateJobResponse update_job_response = 3; + DeleteJobResponse delete_job_response = 4; + }; +}; + +message HeartbeatRequest { + required string request_msg = 1; +}; + +message HeartbeatResponse { + required string response_msg = 1; +}; + +service JobManagementService { + rpc handleRequest(JobManagementRequest) returns (JobManagementResponse); +}; + +service HeartbeatService { + rpc detectHeartbeat(HeartbeatRequest) returns (HeartbeatResponse); +} From a702513427f563a9e35a70d69d2c06a327768d4d Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Fri, 13 Oct 2023 03:24:32 +0000 Subject: [PATCH 13/28] fix proto naming --- src/BuildLGraphServer.cmake | 2 +- src/server/db_management_client.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BuildLGraphServer.cmake b/src/BuildLGraphServer.cmake index d5bd946fdd..3e03114a73 100644 --- a/src/BuildLGraphServer.cmake +++ b/src/BuildLGraphServer.cmake @@ -26,7 +26,7 @@ include(cmake/GenerateProtobuf.cmake) GenerateProtobufCpp(${CMAKE_CURRENT_LIST_DIR}/protobuf PROTO_SRCS PROTO_HEADERS ${CMAKE_CURRENT_LIST_DIR}/protobuf/ha.proto - ${CMAKE_CURRENT_LIST_DIR}/protobuf/tugraph_management.proto) + ${CMAKE_CURRENT_LIST_DIR}/protobuf/tugraph_db_management.proto) include_directories(${DEPS_INCLUDE_DIR}) diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index 6a7a094a8b..7afdc6cfcd 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -16,7 +16,7 @@ #include "tools/lgraph_log.h" #include "fma-common/utils.h" -#include "protobuf/tugraph_management.pb.h" +#include "protobuf/tugraph_db_management.pb.h" #include "gflags/gflags.h" #include "brpc/channel.h" From e4aa0cda7a26f8be4fc4cec4bae03b6ea2bf8a70 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Fri, 13 Oct 2023 14:52:48 +0000 Subject: [PATCH 14/28] fix ut --- src/server/db_management_client.cpp | 3 +-- test/test_db_management_client.cpp | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index af09226707..12ca8db9eb 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -56,7 +56,6 @@ void DBManagementClient::DetectHeartbeat() { com::antgroup::tugraph::HeartbeatService_Stub& stub = DBManagementClient::GetInstance().GetHeartbeatStub(); while (true) { - DEBUG_LOG(ERROR) << "testing db management heart detection."; com::antgroup::tugraph::HeartbeatRequest request; com::antgroup::tugraph::HeartbeatResponse response; brpc::Controller cntl; @@ -64,7 +63,7 @@ void DBManagementClient::DetectHeartbeat() { stub.detectHeartbeat(&cntl, &request, &response, NULL); if (!cntl.Failed()) { DBManagementClient::GetInstance().SetHeartbeat(true); - DEBUG_LOG(ERROR) << response.response_msg() << " " + DEBUG_LOG(INFO) << response.response_msg() << " " << " latency=" << cntl.latency_us() << "us"; } else { DBManagementClient::GetInstance().SetHeartbeat(false); diff --git a/test/test_db_management_client.cpp b/test/test_db_management_client.cpp index 25dd677533..9ada1aa792 100644 --- a/test/test_db_management_client.cpp +++ b/test/test_db_management_client.cpp @@ -98,7 +98,8 @@ TEST_F(TestDBManagementClient, DBManagementClient) { cmd = "cd " + db_management_folder + " && " + "bash ut_start.sh"; rt = system(cmd.c_str()); UT_EXPECT_EQ(rt, 0); - fma_common::SleepS(120); + // sleep to wait db management start + fma_common::SleepS(300); // test crud try { From 564f2a1e7b79c3b15d797bd237da3a6a8ed64667 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Fri, 13 Oct 2023 18:15:26 +0000 Subject: [PATCH 15/28] fix ut --- test/test_db_management_client.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_db_management_client.cpp b/test/test_db_management_client.cpp index 9ada1aa792..c4f39ac765 100644 --- a/test/test_db_management_client.cpp +++ b/test/test_db_management_client.cpp @@ -99,7 +99,7 @@ TEST_F(TestDBManagementClient, DBManagementClient) { rt = system(cmd.c_str()); UT_EXPECT_EQ(rt, 0); // sleep to wait db management start - fma_common::SleepS(300); + fma_common::SleepS(600); // test crud try { From 12f489f3d8453cba5fd07719d833e59805aca0d6 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Fri, 13 Oct 2023 20:57:15 +0000 Subject: [PATCH 16/28] fix ut --- deps/tugraph-db-management | 2 +- test/test_db_management_client.cpp | 24 ------------------------ 2 files changed, 1 insertion(+), 25 deletions(-) diff --git a/deps/tugraph-db-management b/deps/tugraph-db-management index 33edb7dcc9..94eaf98d49 160000 --- a/deps/tugraph-db-management +++ b/deps/tugraph-db-management @@ -1 +1 @@ -Subproject commit 33edb7dcc95706efc4d1e0f66ca9ea51a33376a0 +Subproject commit 94eaf98d49dc31113fafbbfaf91cfdbfc4d2933a diff --git a/test/test_db_management_client.cpp b/test/test_db_management_client.cpp index c4f39ac765..63229c298f 100644 --- a/test/test_db_management_client.cpp +++ b/test/test_db_management_client.cpp @@ -29,22 +29,8 @@ TEST_F(TestDBManagementClient, DBManagementClient) { // set up cmd std::string db_management_folder = "../../deps/tugraph-db-management/"; - std::string sqlite_db_file = "tugraph_db_management.db"; - std::string temp_folder = db_management_folder + "/ut_temp"; - - // set up sqlite db file std::string cmd; int rt; - // cmd = "touch ../../deps/tugraph-db-management/tugraph_db_management_ut_temp.db"; - cmd = "mkdir " + temp_folder; - rt = system(cmd.c_str()); - UT_EXPECT_EQ(rt, 0); - cmd = "mv " + db_management_folder + sqlite_db_file + " " + temp_folder + sqlite_db_file; - rt = system(cmd.c_str()); - UT_EXPECT_EQ(rt, 0); - cmd = "touch " + db_management_folder + sqlite_db_file; - rt = system(cmd.c_str()); - UT_EXPECT_EQ(rt, 0); // set up test veriables std::string exception_msg = "failed to connect to db management."; @@ -151,14 +137,4 @@ TEST_F(TestDBManagementClient, DBManagementClient) { cmd = "cd " + db_management_folder + " && " + "bash ut_stop.sh "; rt = system(cmd.c_str()); UT_EXPECT_EQ(rt, 0); - - // reset sqlite db file - cmd = "rm " + db_management_folder + sqlite_db_file; - rt = system(cmd.c_str()); - UT_EXPECT_EQ(rt, 0); - cmd = "mv " + temp_folder + sqlite_db_file + " " + db_management_folder + sqlite_db_file; - rt = system(cmd.c_str()); - UT_EXPECT_EQ(rt, 0); - cmd = "rm -rf " + temp_folder; - rt = system(cmd.c_str()); } From f4892ea08eba64fdf8271353b7156ec7cde8ea31 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Fri, 13 Oct 2023 20:58:30 +0000 Subject: [PATCH 17/28] fix ut --- deps/tugraph-db-management | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/tugraph-db-management b/deps/tugraph-db-management index 94eaf98d49..58312aa669 160000 --- a/deps/tugraph-db-management +++ b/deps/tugraph-db-management @@ -1 +1 @@ -Subproject commit 94eaf98d49dc31113fafbbfaf91cfdbfc4d2933a +Subproject commit 58312aa6697a2ed8ee278e98fa2f17d28e6222f8 From ddd998259813a9c6063a1f17cbeb63c9e3dc4ddd Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Fri, 13 Oct 2023 23:03:03 +0000 Subject: [PATCH 18/28] fix ut --- src/server/db_management_client.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index 12ca8db9eb..6e3d85f987 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -63,8 +63,6 @@ void DBManagementClient::DetectHeartbeat() { stub.detectHeartbeat(&cntl, &request, &response, NULL); if (!cntl.Failed()) { DBManagementClient::GetInstance().SetHeartbeat(true); - DEBUG_LOG(INFO) << response.response_msg() << " " - << " latency=" << cntl.latency_us() << "us"; } else { DBManagementClient::GetInstance().SetHeartbeat(false); DEBUG_LOG(ERROR) << cntl.ErrorText(); From 317d0862c06cfdebfde611ecf5f9ec5c1ae395a5 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Wed, 18 Oct 2023 17:47:42 +0000 Subject: [PATCH 19/28] fix pr comments --- deps/tugraph-db-management | 2 +- src/protobuf/tugraph_db_management.proto | 4 +- src/server/db_management_client.cpp | 110 +++++++++++++++-------- src/server/db_management_client.h | 17 ++-- src/server/lgraph_server.cpp | 5 ++ test/test_db_management_client.cpp | 68 +++++++------- 6 files changed, 129 insertions(+), 77 deletions(-) diff --git a/deps/tugraph-db-management b/deps/tugraph-db-management index 58312aa669..f3afd83514 160000 --- a/deps/tugraph-db-management +++ b/deps/tugraph-db-management @@ -1 +1 @@ -Subproject commit 58312aa6697a2ed8ee278e98fa2f17d28e6222f8 +Subproject commit f3afd83514c20b41f7cdb7f45de0ffa61ed96cf6 diff --git a/src/protobuf/tugraph_db_management.proto b/src/protobuf/tugraph_db_management.proto index 556b12e9ae..4eadcc6ecc 100644 --- a/src/protobuf/tugraph_db_management.proto +++ b/src/protobuf/tugraph_db_management.proto @@ -59,7 +59,7 @@ message CreateJobResponse { } message ReadJobRequest { - + optional int32 job_id = 1; } message ReadJobResponse { @@ -120,10 +120,12 @@ message JobManagementResponse { message HeartbeatRequest { required string request_msg = 1; + required int32 heartbeat_count = 2; }; message HeartbeatResponse { required string response_msg = 1; + required int32 heartbeat_count = 2; }; service JobManagementService { diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index 6e3d85f987..1a987b6679 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -17,21 +17,29 @@ namespace lgraph { DBManagementClient::DBManagementClient() - : job_stub_(com::antgroup::tugraph::JobManagementService_Stub(&channel_)), - heartbeat_stub_(com::antgroup::tugraph::HeartbeatService_Stub(&channel_)) { - // Initialize brpc channel to db_management. + : job_stub_(db_management::JobManagementService_Stub(&channel_)), + heartbeat_stub_(db_management::HeartbeatService_Stub(&channel_)) { +} + +void DBManagementClient::InitChannel(std::string server) { + // Initialize brpc channel to db_management. brpc::ChannelOptions options; options.protocol = "baidu_std"; options.connection_type = ""; - options.timeout_ms = 1000/*milliseconds*/; + options.timeout_ms = 1000; options.max_retry = 3; - if (this->channel_.Init("localhost:6091", "", &options) != 0) { + if (this->channel_.Init(server.c_str(), "", &options) != 0) { DEBUG_LOG(ERROR) << "Fail to initialize channel"; - throw; + std::runtime_error("failed to initialize channel."); } } void DBManagementClient::SetHeartbeat(bool heartbeat) { + if (this->heartbeat_ == false && heartbeat == true) { + GENERAL_LOG(INFO) << "connected to db management"; + } else if (this->heartbeat_ == true && heartbeat == false) { + GENERAL_LOG(INFO) << "lost connection to db management"; + } this->heartbeat_ = heartbeat; } @@ -39,11 +47,11 @@ bool DBManagementClient::GetHeartbeat() { return this->heartbeat_; } -com::antgroup::tugraph::HeartbeatService_Stub& DBManagementClient::GetHeartbeatStub() { +db_management::HeartbeatService_Stub& DBManagementClient::GetHeartbeatStub() { return this->heartbeat_stub_; } -com::antgroup::tugraph::JobManagementService_Stub& DBManagementClient::GetJobStub() { +db_management::JobManagementService_Stub& DBManagementClient::GetJobStub() { return this->job_stub_; } @@ -53,11 +61,11 @@ DBManagementClient& DBManagementClient::GetInstance() { } void DBManagementClient::DetectHeartbeat() { - com::antgroup::tugraph::HeartbeatService_Stub& stub = + db_management::HeartbeatService_Stub& stub = DBManagementClient::GetInstance().GetHeartbeatStub(); while (true) { - com::antgroup::tugraph::HeartbeatRequest request; - com::antgroup::tugraph::HeartbeatResponse response; + db_management::HeartbeatRequest request; + db_management::HeartbeatResponse response; brpc::Controller cntl; request.set_request_msg("this is a heartbeat request message."); stub.detectHeartbeat(&cntl, &request, &response, NULL); @@ -75,16 +83,16 @@ void DBManagementClient::DetectHeartbeat() { int DBManagementClient::CreateJob(std::string host, std::string port, std::int64_t start_time, std::string period, std::string name, std::string type, std::string user, std::int64_t create_time) { - com::antgroup::tugraph::JobManagementService_Stub& stub = + db_management::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); - com::antgroup::tugraph::JobManagementRequest request; - com::antgroup::tugraph::JobManagementResponse response; + db_management::JobManagementRequest request; + db_management::JobManagementResponse response; brpc::Controller cntl; // build create_job_request request.set_db_host(host); request.set_db_port(port); - request.set_allocated_create_job_request(new com::antgroup::tugraph::CreateJobRequest()); + request.set_allocated_create_job_request(new db_management::CreateJobRequest()); request.mutable_create_job_request()->set_start_time(start_time); request.mutable_create_job_request()->set_period(period); request.mutable_create_job_request()->set_procedure_name(name); @@ -106,16 +114,16 @@ int DBManagementClient::CreateJob(std::string host, std::string port, std::int64 void DBManagementClient::UpdateJob(std::string host, std::string port, int job_id, std::string status, std::int64_t runtime, std::string result) { - com::antgroup::tugraph::JobManagementService_Stub& stub = + db_management::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); - com::antgroup::tugraph::JobManagementRequest request; - com::antgroup::tugraph::JobManagementResponse response; + db_management::JobManagementRequest request; + db_management::JobManagementResponse response; brpc::Controller cntl; // build create_job_request request.set_db_host(host); request.set_db_port(port); - request.set_allocated_update_job_request(new com::antgroup::tugraph::UpdateJobRequest()); + request.set_allocated_update_job_request(new db_management::UpdateJobRequest()); request.mutable_update_job_request()->set_job_id(job_id); request.mutable_update_job_request()->set_status(status); request.mutable_update_job_request()->set_runtime(runtime); @@ -130,23 +138,23 @@ void DBManagementClient::UpdateJob(std::string host, std::string port, int job_i } } -std::vector DBManagementClient::ReadJob(std::string host, - std::string port) { - com::antgroup::tugraph::JobManagementService_Stub& stub = +std::vector DBManagementClient::ReadJob(std::string host, + std::string port) { + db_management::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); - com::antgroup::tugraph::JobManagementRequest request; - com::antgroup::tugraph::JobManagementResponse response; + db_management::JobManagementRequest request; + db_management::JobManagementResponse response; brpc::Controller cntl; // build create_job_request request.set_db_host(host); request.set_db_port(port); - request.set_allocated_read_job_request(new com::antgroup::tugraph::ReadJobRequest()); + request.set_allocated_read_job_request(new db_management::ReadJobRequest()); stub.handleRequest(&cntl, &request, &response, NULL); if (!cntl.Failed()) { DEBUG_LOG(INFO) << "[READ JOB REQUEST]: " << "success"; - std::vector job_list; + std::vector job_list; for (int i = 0; i < response.read_job_response().job_size(); i++) { job_list.push_back(response.read_job_response().job(i)); } @@ -157,19 +165,47 @@ std::vector DBManagementClient::ReadJob(std::string } } -com::antgroup::tugraph::JobResult DBManagementClient::ReadJobResult(std::string host, +db_management::Job DBManagementClient::ReadJob(std::string host, + std::string port, + int job_id) { + db_management::JobManagementService_Stub& stub = + DBManagementClient::GetInstance().GetJobStub(); + db_management::JobManagementRequest request; + db_management::JobManagementResponse response; + brpc::Controller cntl; + + // build create_job_request + request.set_db_host(host); + request.set_db_port(port); + request.set_allocated_read_job_request(new db_management::ReadJobRequest()); + request.mutable_read_job_request()->set_job_id(job_id); + + stub.handleRequest(&cntl, &request, &response, NULL); + if (!cntl.Failed()) { + DEBUG_LOG(INFO) << "[READ JOB REQUEST]: " << "success"; + std::vector job_list; + db_management::Job job; + job = response.read_job_response().job(0); + return job; + } else { + DEBUG_LOG(ERROR) << "[READ JOB REQUEST]: " << cntl.ErrorText(); + throw std::runtime_error("failed to connect to db management."); + } +} + +db_management::JobResult DBManagementClient::ReadJobResult(std::string host, std::string port, int job_id) { - com::antgroup::tugraph::JobManagementService_Stub& stub = + db_management::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); - com::antgroup::tugraph::JobManagementRequest request; - com::antgroup::tugraph::JobManagementResponse response; + db_management::JobManagementRequest request; + db_management::JobManagementResponse response; brpc::Controller cntl; // build create_job_request request.set_db_host(host); request.set_db_port(port); request.set_allocated_read_job_result_request( - new com::antgroup::tugraph::ReadJobResultRequest()); + new db_management::ReadJobResultRequest()); request.mutable_read_job_result_request()->set_job_id(job_id); stub.handleRequest(&cntl, &request, &response, NULL); @@ -177,22 +213,22 @@ com::antgroup::tugraph::JobResult DBManagementClient::ReadJobResult(std::string DEBUG_LOG(INFO) << "[READ JOB RESULT REQUEST]: " << "success"; return response.read_job_result_response().job_result(); } else { - DEBUG_LOG(ERROR) << "[READ JOB REQUEST]: " << cntl.ErrorText(); + DEBUG_LOG(ERROR) << "[READ JOB RESULT REQUEST]: " << cntl.ErrorText(); throw std::runtime_error("failed to connect to db management."); } } void DBManagementClient::DeleteJob(std::string host, std::string port, int job_id) { - com::antgroup::tugraph::JobManagementService_Stub& stub = + db_management::JobManagementService_Stub& stub = DBManagementClient::GetInstance().GetJobStub(); - com::antgroup::tugraph::JobManagementRequest request; - com::antgroup::tugraph::JobManagementResponse response; + db_management::JobManagementRequest request; + db_management::JobManagementResponse response; brpc::Controller cntl; // build create_job_request request.set_db_host(host); request.set_db_port(port); - request.set_allocated_delete_job_request(new com::antgroup::tugraph::DeleteJobRequest()); + request.set_allocated_delete_job_request(new db_management::DeleteJobRequest()); request.mutable_delete_job_request()->set_job_id(job_id); stub.handleRequest(&cntl, &request, &response, NULL); @@ -200,7 +236,7 @@ void DBManagementClient::DeleteJob(std::string host, std::string port, int job_i DEBUG_LOG(INFO) << "[DELETE JOB REQUEST]: " << "success"; return; } else { - DEBUG_LOG(ERROR) << "[READ JOB REQUEST]: " << cntl.ErrorText(); + DEBUG_LOG(ERROR) << "[DELETE JOB REQUEST]: " << cntl.ErrorText(); throw std::runtime_error("failed to connect to db management."); } } diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index 7afdc6cfcd..d3cab001a3 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -21,26 +21,29 @@ #include "brpc/channel.h" namespace lgraph { +namespace db_management = com::antgroup::tugraph; class DBManagementClient { private: bool heartbeat_ = false; static const int detect_freq_ = 5; brpc::Channel channel_; - com::antgroup::tugraph::JobManagementService_Stub job_stub_; - com::antgroup::tugraph::HeartbeatService_Stub heartbeat_stub_; + db_management::JobManagementService_Stub job_stub_; + db_management::HeartbeatService_Stub heartbeat_stub_; public: DBManagementClient(); static DBManagementClient& GetInstance(); + void InitChannel(std::string sever); + void SetHeartbeat(bool heartbeat); bool GetHeartbeat(); - com::antgroup::tugraph::HeartbeatService_Stub& GetHeartbeatStub(); + db_management::HeartbeatService_Stub& GetHeartbeatStub(); - com::antgroup::tugraph::JobManagementService_Stub& GetJobStub(); + db_management::JobManagementService_Stub& GetJobStub(); static void DetectHeartbeat(); @@ -50,9 +53,11 @@ class DBManagementClient { void UpdateJob(std::string host, std::string port, int job_id, std::string status, std::int64_t runtime, std::string result); - std::vector ReadJob(std::string host, std::string port); + std::vector ReadJob(std::string host, std::string port); + + db_management::Job ReadJob(std::string host, std::string port, int job_id); - com::antgroup::tugraph::JobResult ReadJobResult(std::string host, std::string port, int job_id); + db_management::JobResult ReadJobResult(std::string host, std::string port, int job_id); void DeleteJob(std::string host, std::string port, int job_id); }; diff --git a/src/server/lgraph_server.cpp b/src/server/lgraph_server.cpp index 37a315de25..dd7d9fbba8 100644 --- a/src/server/lgraph_server.cpp +++ b/src/server/lgraph_server.cpp @@ -260,6 +260,11 @@ int LGraphServer::Start() { GENERAL_LOG(INFO) << "Listening for RPC on port " << config_->rpc_port; } // start db management service + try { + DBManagementClient::GetInstance().InitChannel("localhost:6091"); + } catch(std::exception& e) { + GENERAL_LOG(ERROR) << "Failed to init db management channel"; + } std::thread heartbeat_detect(&DBManagementClient::DetectHeartbeat); heartbeat_detect.detach(); #endif diff --git a/test/test_db_management_client.cpp b/test/test_db_management_client.cpp index 63229c298f..584a4ae376 100644 --- a/test/test_db_management_client.cpp +++ b/test/test_db_management_client.cpp @@ -47,6 +47,13 @@ TEST_F(TestDBManagementClient, DBManagementClient) { std::int64_t runtime = 100; std::string result = "this is only a test of result"; + // init dbmanagement client + try { + DBManagementClient::GetInstance().InitChannel("localhost:6091"); + } catch(std::exception& e) { + UT_EXPECT_EQ(1, 0); + } + // test exception handle try { DBManagementClient::GetInstance() @@ -55,24 +62,28 @@ TEST_F(TestDBManagementClient, DBManagementClient) { } catch(std::exception& e) { UT_EXPECT_EQ(e.what(), exception_msg); } + try { DBManagementClient::GetInstance().UpdateJob(host, port, job_id, status, runtime, result); UT_EXPECT_EQ(1, 0); } catch(std::exception& e) { UT_EXPECT_EQ(e.what(), exception_msg); } + try { DBManagementClient::GetInstance().ReadJob(host, port); UT_EXPECT_EQ(1, 0); } catch(std::exception& e) { UT_EXPECT_EQ(e.what(), exception_msg); } + try { DBManagementClient::GetInstance().ReadJobResult(host, port, job_id); UT_EXPECT_EQ(1, 0); } catch(std::exception& e) { UT_EXPECT_EQ(e.what(), exception_msg); } + try { DBManagementClient::GetInstance().DeleteJob(host, port, job_id); UT_EXPECT_EQ(1, 0); @@ -85,49 +96,42 @@ TEST_F(TestDBManagementClient, DBManagementClient) { rt = system(cmd.c_str()); UT_EXPECT_EQ(rt, 0); // sleep to wait db management start - fma_common::SleepS(600); + fma_common::SleepS(300); // test crud try { + // create a new job job_id = DBManagementClient::GetInstance() .CreateJob(host, port, start_time, period, name, type, user, create_time); UT_EXPECT_EQ(1, job_id); - } catch(std::exception& e) { - DEBUG_LOG(ERROR) << e.what(); - UT_EXPECT_EQ(1, 0); - } - try { + // test jobid self increment + job_id = DBManagementClient::GetInstance() + .CreateJob(host, port, start_time, period, name, type, user, create_time); + UT_EXPECT_EQ(2, job_id); + + // update this job DBManagementClient::GetInstance().UpdateJob(host, port, job_id, status, runtime, result); - } catch(std::exception& e) { - DEBUG_LOG(ERROR) << e.what(); - UT_EXPECT_EQ(1, 0); - } - try { - std::vector jobs = + + // read all jobs status + std::vector jobs = DBManagementClient::GetInstance().ReadJob(host, port); - UT_EXPECT_EQ(1, jobs.size()); - } catch(std::exception& e) { - DEBUG_LOG(ERROR) << e.what(); - UT_EXPECT_EQ(1, 0); - } - try { - com::antgroup::tugraph::JobResult job_result = + UT_EXPECT_EQ(2, jobs.size()); + // read job by jobid + db_management::Job job = + DBManagementClient::GetInstance().ReadJob(host, port, job_id); + UT_EXPECT_EQ(2, job.job_id()); + + // read job result by id + db_management::JobResult job_result = DBManagementClient::GetInstance().ReadJobResult(host, port, job_id); UT_EXPECT_EQ(result, job_result.result()); - } catch(std::exception& e) { - DEBUG_LOG(ERROR) << e.what(); - UT_EXPECT_EQ(1, 0); - } - try { + + // delete job DBManagementClient::GetInstance().DeleteJob(host, port, job_id); - } catch(std::exception& e) { - DEBUG_LOG(ERROR) << e.what(); - UT_EXPECT_EQ(1, 0); - } - try { - std::vector jobs = - DBManagementClient::GetInstance().ReadJob(host, port); - UT_EXPECT_EQ(0, jobs.size()); + + // test if deleted successfully + jobs = DBManagementClient::GetInstance().ReadJob(host, port); + UT_EXPECT_EQ(1, jobs.size()); } catch(std::exception& e) { DEBUG_LOG(ERROR) << e.what(); UT_EXPECT_EQ(1, 0); From 166892efcc6ad6cadcabc488074f354b0fe9709a Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Wed, 18 Oct 2023 19:02:54 +0000 Subject: [PATCH 20/28] fix pr comments --- src/protobuf/tugraph_db_management.proto | 58 ++++++------ src/server/db_management_client.h | 110 ++++++++++++++++++++++- 2 files changed, 138 insertions(+), 30 deletions(-) diff --git a/src/protobuf/tugraph_db_management.proto b/src/protobuf/tugraph_db_management.proto index 4eadcc6ecc..0b4e5accde 100644 --- a/src/protobuf/tugraph_db_management.proto +++ b/src/protobuf/tugraph_db_management.proto @@ -29,33 +29,33 @@ enum ResponseCode { message Job { required string db_id = 1; required int32 job_id = 2; - required int64 start_time = 4; - required string period = 5; - required string procedure_name = 6; - required string procedure_type = 7; - required string status = 8; - required int64 runtime = 3; + required int64 start_time = 3; + required string period = 4; + required string procedure_name = 5; + required string procedure_type = 6; + required string status = 7; + required int64 runtime = 8; required string user = 9; required int64 create_time = 10; } message JobResult { - required int32 job_id = 2; - required string result = 1; + required int32 job_id = 1; + required string result = 2; } message CreateJobRequest { - required int64 start_time = 3; - required string period = 4; - required string procedure_name = 5; - required string procedure_type = 6; - required string user = 7; - required int64 create_time = 8; + required int64 start_time = 1; + required string period = 2; + required string procedure_name = 3; + required string procedure_type = 4; + required string user = 5; + required int64 create_time = 6; } message CreateJobResponse { - required int32 job_id = 2; - required ResponseCode response_code = 1; + required int32 job_id = 1; + required ResponseCode response_code = 2; } message ReadJobRequest { @@ -96,25 +96,25 @@ message DeleteJobResponse { } message JobManagementRequest { - required string db_host = 5; - required string db_port = 6; + required string db_host = 1; + required string db_port = 2; oneof Req { - CreateJobRequest create_job_request = 1; - ReadJobRequest read_job_request = 2; - ReadJobResultRequest read_job_result_request = 7; - UpdateJobRequest update_job_request = 3; - DeleteJobRequest delete_job_request = 4; + CreateJobRequest create_job_request = 3; + ReadJobRequest read_job_request = 4; + ReadJobResultRequest read_job_result_request = 5; + UpdateJobRequest update_job_request = 6; + DeleteJobRequest delete_job_request = 7; }; }; message JobManagementResponse { - required ResponseCode response_code = 5; + required ResponseCode response_code = 1; oneof Resp { - CreateJobResponse create_job_response = 1; - ReadJobResponse read_job_response = 2; - ReadJobResultResponse read_job_result_response = 6; - UpdateJobResponse update_job_response = 3; - DeleteJobResponse delete_job_response = 4; + CreateJobResponse create_job_response = 2; + ReadJobResponse read_job_response = 3; + ReadJobResultResponse read_job_result_response = 4; + UpdateJobResponse update_job_response = 5; + DeleteJobResponse delete_job_response = 6; }; }; diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index d3cab001a3..b7c24981cb 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -23,6 +23,9 @@ namespace lgraph { namespace db_management = com::antgroup::tugraph; class DBManagementClient { + // TODO: get host and port from license + // TODO: change name of ReadJobResult + // TODO: kill all process after ut private: bool heartbeat_ = false; static const int detect_freq_ = 5; @@ -33,32 +36,137 @@ class DBManagementClient { public: DBManagementClient(); + /** + * @brief Get an instance of DBManagementClient. + */ static DBManagementClient& GetInstance(); + /** + * @brief Init brpc channel. + * + * @param server The server address of db management, like "localhost:6091". + */ void InitChannel(std::string sever); + /** + * @brief set heartbeat of db management. + * + * @param heartbeat true if connected, false if not connected. + */ void SetHeartbeat(bool heartbeat); + /** + * @brief Get heartbeat of db management. + * + * @returns true if connected, false if not. + */ bool GetHeartbeat(); - + + /** + * @brief Get brpc stub for heart detection. + c + */ db_management::HeartbeatService_Stub& GetHeartbeatStub(); + /** + * @brief Get brpc stub for job management. + * + * @returns job management stub. + */ db_management::JobManagementService_Stub& GetJobStub(); + /** + * @brief Heartbeat detection function. Runs in a detached thread. + * + */ static void DetectHeartbeat(); + /** + * @brief create a job record in db management. + * + * @param host host address of current db. + * + * @param port port of current db. + * + * @param start_time start time of a job, echo time in ms, int64. + * + * @param period job period type, PERIODIC, IMMEDIATE, DELAYED. + * + * @param name name of this job. + * + * @param type type of this job. + * + * @param user user of db who create this job. + * + * @param create_time create time of a job, echo time in ms, int64. + * + * @returns unique job_id for created job record. + */ int CreateJob(std::string host, std::string port, std::int64_t start_time, std::string period, std::string name, std::string type, std::string user, std::int64_t create_time); + /** + * @brief update a job record in db management with job_id. + * + * @param host host address of current db. + * + * @param port port of current db. + * + * @param status job status, pending, success, failed. + * + * @param runtime total runtime of a job, echo time in ms, int64. + * + * @param result result of job in string. + */ void UpdateJob(std::string host, std::string port, int job_id, std::string status, std::int64_t runtime, std::string result); + /** + * @brief read all job status in db management. + * + * @param host host address of current db. + * + * @param port port of current db. + * + * @returns a list for all job status in db management. + */ std::vector ReadJob(std::string host, std::string port); + /** + * @brief read job status with given job_id in db management. + * + * @param host host address of current db. + * + * @param port port of current db. + * + * @param job_id job_id of the job you want to read. + * + * @returns job. + */ db_management::Job ReadJob(std::string host, std::string port, int job_id); + /** + * @brief read job result with given job_id in db management. + * + * @param host host address of current db. + * + * @param port port of current db. + * + * @param job_id job_id of the job you want to read. + * + * @returns job result. + */ db_management::JobResult ReadJobResult(std::string host, std::string port, int job_id); + /** + * @brief delete a job record with given job_id in db management. + * + * @param host host address of current db. + * + * @param port port of current db. + * + * @param job_id job_id of the job you want to read. + */ void DeleteJob(std::string host, std::string port, int job_id); }; } // namespace lgraph From df5efb9451e640bd09cc45d1d0e36f71f7813a5a Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Wed, 18 Oct 2023 19:14:37 +0000 Subject: [PATCH 21/28] fix code style --- src/server/db_management_client.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index b7c24981cb..d97b4c4bcd 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -23,9 +23,9 @@ namespace lgraph { namespace db_management = com::antgroup::tugraph; class DBManagementClient { - // TODO: get host and port from license - // TODO: change name of ReadJobResult - // TODO: kill all process after ut + // TODO(qsp): get host and port from license + // TODO(qsp): change name of ReadJobResult + // TODO(qsp): kill all process after ut private: bool heartbeat_ = false; static const int detect_freq_ = 5; @@ -61,7 +61,7 @@ class DBManagementClient { * @returns true if connected, false if not. */ bool GetHeartbeat(); - + /** * @brief Get brpc stub for heart detection. c From 66b134e8aa5e8095dbeb1acb91321f2ba94ab76d Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Wed, 18 Oct 2023 20:34:01 +0000 Subject: [PATCH 22/28] update db management --- deps/tugraph-db-management | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/tugraph-db-management b/deps/tugraph-db-management index f3afd83514..aed036f3c2 160000 --- a/deps/tugraph-db-management +++ b/deps/tugraph-db-management @@ -1 +1 @@ -Subproject commit f3afd83514c20b41f7cdb7f45de0ffa61ed96cf6 +Subproject commit aed036f3c22b29503df8211648048d42498c40a5 From d52c04b5976234a2e609cc0c52930c61d67b144e Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Wed, 18 Oct 2023 22:15:14 +0000 Subject: [PATCH 23/28] fix heart detection --- src/server/db_management_client.cpp | 19 ++++++++++++++++++- src/server/db_management_client.h | 15 +++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index 1a987b6679..abdae8509c 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -47,6 +47,14 @@ bool DBManagementClient::GetHeartbeat() { return this->heartbeat_; } +void DBManagementClient::SetHeartbeatCount(int heartbeat_count) { + this->heartbeat_count_ = heartbeat_count; +} + +int DBManagementClient::GetHeartbeatCount() { + return this->heartbeat_count_; +} + db_management::HeartbeatService_Stub& DBManagementClient::GetHeartbeatStub() { return this->heartbeat_stub_; } @@ -67,13 +75,22 @@ void DBManagementClient::DetectHeartbeat() { db_management::HeartbeatRequest request; db_management::HeartbeatResponse response; brpc::Controller cntl; + int heartbeat_count = DBManagementClient::GetInstance().GetHeartbeatCount(); request.set_request_msg("this is a heartbeat request message."); + request.set_heartbeat_count(heartbeat_count); stub.detectHeartbeat(&cntl, &request, &response, NULL); if (!cntl.Failed()) { - DBManagementClient::GetInstance().SetHeartbeat(true); + if (response.heartbeat_count() == heartbeat_count + 1) { + DBManagementClient::GetInstance().SetHeartbeat(true); + DBManagementClient::GetInstance().SetHeartbeatCount(heartbeat_count + 1); + } else { + DBManagementClient::GetInstance().SetHeartbeat(false); + DBManagementClient::GetInstance().SetHeartbeatCount(0); + } } else { DBManagementClient::GetInstance().SetHeartbeat(false); DEBUG_LOG(ERROR) << cntl.ErrorText(); + DBManagementClient::GetInstance().SetHeartbeatCount(0); } fma_common::SleepS(detect_freq_); diff --git a/src/server/db_management_client.h b/src/server/db_management_client.h index d97b4c4bcd..2170e3d2be 100644 --- a/src/server/db_management_client.h +++ b/src/server/db_management_client.h @@ -28,6 +28,7 @@ class DBManagementClient { // TODO(qsp): kill all process after ut private: bool heartbeat_ = false; + int heartbeat_count_ = 0; static const int detect_freq_ = 5; brpc::Channel channel_; db_management::JobManagementService_Stub job_stub_; @@ -62,6 +63,20 @@ class DBManagementClient { */ bool GetHeartbeat(); + /** + * @brief Set heartbeat count of db management. + * + * @param heartbeat_count count of heartbeat. + */ + void SetHeartbeatCount(int heartbeat_count); + + /** + * @brief Get heartbeat count of db management. + * + * @returns heartbeat count. + */ + int GetHeartbeatCount(); + /** * @brief Get brpc stub for heart detection. c From 3ac4cf63068701be1bbe24ad4316565432bc38fe Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Thu, 19 Oct 2023 06:32:25 +0000 Subject: [PATCH 24/28] fix ut --- deps/tugraph-db-management | 2 +- test/test_db_management_client.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deps/tugraph-db-management b/deps/tugraph-db-management index aed036f3c2..184bc84920 160000 --- a/deps/tugraph-db-management +++ b/deps/tugraph-db-management @@ -1 +1 @@ -Subproject commit aed036f3c22b29503df8211648048d42498c40a5 +Subproject commit 184bc84920a592158bd0691fecfc1322bab1fef4 diff --git a/test/test_db_management_client.cpp b/test/test_db_management_client.cpp index 584a4ae376..163c968f57 100644 --- a/test/test_db_management_client.cpp +++ b/test/test_db_management_client.cpp @@ -49,7 +49,7 @@ TEST_F(TestDBManagementClient, DBManagementClient) { // init dbmanagement client try { - DBManagementClient::GetInstance().InitChannel("localhost:6091"); + DBManagementClient::GetInstance().InitChannel("localhost:5091"); } catch(std::exception& e) { UT_EXPECT_EQ(1, 0); } From 53fb7c05796295a5d07e37f14fb182ced221a280 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Thu, 19 Oct 2023 14:12:01 +0000 Subject: [PATCH 25/28] fix ut --- src/server/db_management_client.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/server/db_management_client.cpp b/src/server/db_management_client.cpp index abdae8509c..248f92bc46 100644 --- a/src/server/db_management_client.cpp +++ b/src/server/db_management_client.cpp @@ -89,7 +89,6 @@ void DBManagementClient::DetectHeartbeat() { } } else { DBManagementClient::GetInstance().SetHeartbeat(false); - DEBUG_LOG(ERROR) << cntl.ErrorText(); DBManagementClient::GetInstance().SetHeartbeatCount(0); } From ac0d2843eb4d656e7b8dc95f65213000dfbe02f7 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Thu, 19 Oct 2023 16:22:58 +0000 Subject: [PATCH 26/28] fix ut --- deps/tugraph-db-management | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/tugraph-db-management b/deps/tugraph-db-management index 184bc84920..5a1fc2d5cb 160000 --- a/deps/tugraph-db-management +++ b/deps/tugraph-db-management @@ -1 +1 @@ -Subproject commit 184bc84920a592158bd0691fecfc1322bab1fef4 +Subproject commit 5a1fc2d5cbc87dd4e64586cbd62bcf11c1be68bf From 8286949f08f17192ae6bcf9ba3935e961c041010 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Sat, 21 Oct 2023 15:17:29 +0000 Subject: [PATCH 27/28] checkout db management to master branch --- deps/tugraph-db-management | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/tugraph-db-management b/deps/tugraph-db-management index 5a1fc2d5cb..6dcacc0535 160000 --- a/deps/tugraph-db-management +++ b/deps/tugraph-db-management @@ -1 +1 @@ -Subproject commit 5a1fc2d5cbc87dd4e64586cbd62bcf11c1be68bf +Subproject commit 6dcacc05352b51fd173fffbc6c95329744b97ab1 From 3b8f657f68d2ac18c242a9d140d64cdabe1d8942 Mon Sep 17 00:00:00 2001 From: SonglinLyu Date: Sun, 22 Oct 2023 03:09:59 +0000 Subject: [PATCH 28/28] fix ut --- test/test_db_management_client.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_db_management_client.cpp b/test/test_db_management_client.cpp index 163c968f57..0fde10fd4c 100644 --- a/test/test_db_management_client.cpp +++ b/test/test_db_management_client.cpp @@ -95,7 +95,7 @@ TEST_F(TestDBManagementClient, DBManagementClient) { cmd = "cd " + db_management_folder + " && " + "bash ut_start.sh"; rt = system(cmd.c_str()); UT_EXPECT_EQ(rt, 0); - // sleep to wait db management start + // sleep and wait db management start fma_common::SleepS(300); // test crud