From 2abbf43606fb025425e0388ee11bf7477ae41058 Mon Sep 17 00:00:00 2001 From: slguan Date: Thu, 6 Feb 2020 21:01:23 +0800 Subject: [PATCH] #1177 --- src/dnode/CMakeLists.txt | 4 +++- src/dnode/inc/dnodeModule.h | 5 ++--- src/dnode/inc/dnodeService.h | 3 --- src/dnode/inc/dnodeSystem.h | 3 --- src/dnode/src/dnodeModule.c | 7 ++++-- src/dnode/src/dnodeService.c | 31 +++++++++++++++++++++----- src/dnode/src/dnodeSystem.c | 3 +-- src/inc/dnode.h | 43 ++++++++++++++++++++++++++++++++++++ src/inc/tglobalcfg.h | 3 +++ 9 files changed, 83 insertions(+), 19 deletions(-) create mode 100644 src/inc/dnode.h diff --git a/src/dnode/CMakeLists.txt b/src/dnode/CMakeLists.txt index 32cf41b1a8..143c5397e8 100644 --- a/src/dnode/CMakeLists.txt +++ b/src/dnode/CMakeLists.txt @@ -2,7 +2,10 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) + INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) + INCLUDE_DIRECTORIES(${TD_ENTERPRISE_DIR}/src/inc) + INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/dnode/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/mnode/detail/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/vnode/detail/inc) @@ -11,7 +14,6 @@ IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/modules/monitor/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/inc) INCLUDE_DIRECTORIES(${TD_ENTERPRISE_DIR}/src/util/cluster/inc) - INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) INCLUDE_DIRECTORIES(inc) AUX_SOURCE_DIRECTORY(src SRC) diff --git a/src/dnode/inc/dnodeModule.h b/src/dnode/inc/dnodeModule.h index 76f3bd4ffa..7967fa956e 100644 --- a/src/dnode/inc/dnodeModule.h +++ b/src/dnode/inc/dnodeModule.h @@ -33,6 +33,8 @@ enum _module { TSDB_MOD_MGMT, TSDB_MOD_HTTP, TSDB_MOD_MONITOR, + TSDB_MOD_DCLUSTER, + TSDB_MOD_MSTORAGE, TSDB_MOD_MAX }; @@ -54,9 +56,6 @@ void dnodeAllocModules(); int32_t dnodeInitModules(); void dnodeCleanUpModules(); -extern void (*dnodeStartModules)(); -void dnodeStartModulesEdgeImp(); - #ifdef __cplusplus } #endif diff --git a/src/dnode/inc/dnodeService.h b/src/dnode/inc/dnodeService.h index 953c01413f..66bcb2d8ad 100644 --- a/src/dnode/inc/dnodeService.h +++ b/src/dnode/inc/dnodeService.h @@ -20,9 +20,6 @@ extern "C" { #endif -void (*dnodeParseParameterK)(); -void dnodeParseParameterKComImp(); - #ifdef __cplusplus } #endif diff --git a/src/dnode/inc/dnodeSystem.h b/src/dnode/inc/dnodeSystem.h index e4245a1496..eb25357c59 100644 --- a/src/dnode/inc/dnodeSystem.h +++ b/src/dnode/inc/dnodeSystem.h @@ -26,9 +26,6 @@ extern "C" { extern pthread_mutex_t dmutex; extern bool tsDnodeStopping; -extern int (*dnodeInitStorage)(); -extern void (*dnodeCleanupStorage)(); -extern int (*dnodeCheckSystem)(); int dnodeInitSystem(); void dnodeCleanUpSystem(); diff --git a/src/dnode/src/dnodeModule.c b/src/dnode/src/dnodeModule.c index b06069927a..c64aeb39c2 100644 --- a/src/dnode/src/dnodeModule.c +++ b/src/dnode/src/dnodeModule.c @@ -23,9 +23,11 @@ #include "httpSystem.h" #include "mgmtSystem.h" +#include "dcluster.h" +#include "mstorage.h" + SModule tsModule[TSDB_MOD_MAX] = {0}; uint32_t tsModuleStatus = 0; -void (*dnodeStartModules)() = NULL; void dnodeAllocModules() { tsModule[TSDB_MOD_MGMT].name = "mgmt"; @@ -116,7 +118,7 @@ int32_t dnodeInitModules() { return 0; } -void dnodeStartModulesEdgeImp() { +void dnodeStartModulesImp() { for (int mod = 1; mod < TSDB_MOD_MAX; ++mod) { if (tsModule[mod].num != 0 && tsModule[mod].startFp) { if ((*tsModule[mod].startFp)() != 0) { @@ -129,3 +131,4 @@ void dnodeStartModulesEdgeImp() { (*tsModule[TSDB_MOD_MGMT].cleanUpFp)(); } } +void (*dnodeStartModules)() = dnodeStartModulesImp; diff --git a/src/dnode/src/dnodeService.c b/src/dnode/src/dnodeService.c index 085451862c..acf93b037e 100644 --- a/src/dnode/src/dnodeService.c +++ b/src/dnode/src/dnodeService.c @@ -14,16 +14,37 @@ */ #define _DEFAULT_SOURCE - #include "os.h" - -#include "dnodeSystem.h" #include "tglobalcfg.h" #include "tsdb.h" #include "vnode.h" +#include "dnodeSystem.h" + +#ifdef CLUSTER + #include "dnodeCluster.h" + #include "httpAdmin.h" + #include "mnodeAccount.h" + #include "mnodeBalance.h" + #include "mnodeCluster.h" + #include "mnodeReplica.h" + #include "multilevelStorage.h" + #include "vnodeCluster.h" + #include "vnodeReplica.h" + void init() { + dnodeClusterInit(); + httpAdminInit(); + mnodeAccountInit(); + mnodeBalanceInit(); + mnodeClusterInit(); + mnodeReplicaInit(); + multilevelStorageInit(); + vnodeClusterInit(); + vnodeReplicaInit(); + } +#endif -void (*dnodeParseParameterK)() = NULL; -void dnodeParseParameterKComImp() {} +void dnodeParseParameterKImp() {} +void (*dnodeParseParameterK)() = dnodeParseParameterKImp; /* Termination handler */ void signal_handler(int signum, siginfo_t *sigInfo, void *context) { diff --git a/src/dnode/src/dnodeSystem.c b/src/dnode/src/dnodeSystem.c index 2511329c45..5d686c5dbe 100644 --- a/src/dnode/src/dnodeSystem.c +++ b/src/dnode/src/dnodeSystem.c @@ -18,6 +18,7 @@ #include "tsdb.h" #include "tlog.h" #include "ttimer.h" +#include "dnode.h" #include "dnodeMgmt.h" #include "dnodeModule.h" #include "dnodeService.h" @@ -285,11 +286,9 @@ void dnodeInitPlugin() { taosSendMsgToMnode = taosSendMsgToMnodeEdgeImp; taosSendSimpleRspToMnode = taosSendSimpleRspToMnodeEdgeImp; - dnodeParseParameterK = dnodeParseParameterKComImp; dnodeCheckSystem = dnodeCheckSystemComImp; dnodeInitStorage = dnodeInitStorageComImp; dnodeCleanupStorage = dnodeCleanupStorageComImp; - dnodeStartModules = dnodeStartModulesEdgeImp; } diff --git a/src/inc/dnode.h b/src/inc/dnode.h new file mode 100644 index 0000000000..e3d02470a5 --- /dev/null +++ b/src/inc/dnode.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2019 TAOS Data, Inc. + * + * This program is free software: you can use, redistribute, and/or modify + * it under the terms of the GNU Affero General Public License, version 3 + * or later ("AGPL"), as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#ifndef TDENGINE_DNODE_H +#define TDENGINE_DNODE_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +extern pthread_mutex_t dmutex; + +// dnodeCluster +extern void (*dnodeStartModules)(); +extern void (*dnodeParseParameterK)(); +extern int32_t (*dnodeCheckSystem)(); + +// multilevelStorage +extern int32_t (*dnodeInitStorage)(); +extern void (*dnodeCleanupStorage)(); + +void dnodeCheckDbRunning(const char* dir); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/inc/tglobalcfg.h b/src/inc/tglobalcfg.h index 35cf6a4244..243835bacd 100644 --- a/src/inc/tglobalcfg.h +++ b/src/inc/tglobalcfg.h @@ -262,6 +262,9 @@ SGlobalConfig *tsGetConfigOption(const char *option); #define NEEDTO_COMPRESSS_MSG(size) (tsCompressMsgSize != -1 && (size) > tsCompressMsgSize) +extern char mgmtDirectory[]; + + #ifdef __cplusplus } #endif -- GitLab