diff --git a/src/dnode/CMakeLists.txt b/src/dnode/CMakeLists.txt index 32cf41b1a8597b1b2b9374bd279c9ad0b7881a7d..143c5397e8301da5bf411258ed721f8e63f84098 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 76f3bd4ffa5b2bb87897cc141b4381c5a2eaee55..7967fa956e03d6c187ba5eecb17f496f92d5f6e4 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 953c01413fb75e6257c560117570112e3335fcda..66bcb2d8ad645d3462d0ed66210266105dd0206d 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 e4245a1496cc21c7cf600be8df1d4d21460d9f5f..eb25357c59438a0cd3e3dd9d2bab7524ba769ee3 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 b06069927a74b4a4c6d53bb2500dc3b9774469da..c64aeb39c22700812e167ffa119b238f9a4ae7a2 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 085451862ccb7c148f8191dcec4292f942770e32..acf93b037e50366fabe1a456ed0824259f3ea2ae 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 2511329c451a22b675458529f7cfa279cf14fec0..5d686c5dbe996d8425925ac7c8a3cad30a931105 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 0000000000000000000000000000000000000000..e3d02470a56e417f468db7bd6d013ed93c626273 --- /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 35cf6a42443ef40135c3937867339c6634c32140..243835bacd22c74ebffa88e49bfe0184806de8c1 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