commit
c0d67a42df
|
@ -36,6 +36,14 @@ extern int32_t dDebugFlag;
|
||||||
#define dDebug(...) { if (dDebugFlag & DEBUG_DEBUG) { taosPrintLog("DND ", dDebugFlag, __VA_ARGS__); }}
|
#define dDebug(...) { if (dDebugFlag & DEBUG_DEBUG) { taosPrintLog("DND ", dDebugFlag, __VA_ARGS__); }}
|
||||||
#define dTrace(...) { if (dDebugFlag & DEBUG_TRACE) { taosPrintLog("DND ", dDebugFlag, __VA_ARGS__); }}
|
#define dTrace(...) { if (dDebugFlag & DEBUG_TRACE) { taosPrintLog("DND ", dDebugFlag, __VA_ARGS__); }}
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
TSDB_RUN_STATUS_INITIALIZE,
|
||||||
|
TSDB_RUN_STATUS_RUNING,
|
||||||
|
TSDB_RUN_STATUS_STOPPED
|
||||||
|
} SRunStatus;
|
||||||
|
|
||||||
|
SRunStatus dnodeGetRunStatus();
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -22,8 +22,8 @@ extern "C" {
|
||||||
#include "dnodeInt.h"
|
#include "dnodeInt.h"
|
||||||
|
|
||||||
int32_t dnodeInitModules();
|
int32_t dnodeInitModules();
|
||||||
void dnodeStartModules();
|
|
||||||
void dnodeCleanupModules();
|
void dnodeCleanupModules();
|
||||||
|
bool dnodeStartMnode(SMInfos *pMinfos);
|
||||||
void dnodeProcessModuleStatus(uint32_t moduleStatus);
|
void dnodeProcessModuleStatus(uint32_t moduleStatus);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -23,8 +23,8 @@ extern "C" {
|
||||||
|
|
||||||
int32_t dnodeInitVnodes();
|
int32_t dnodeInitVnodes();
|
||||||
void dnodeCleanupVnodes();
|
void dnodeCleanupVnodes();
|
||||||
int32_t dnodeInitTimer();
|
int32_t dnodeInitStatusTimer();
|
||||||
void dnodeCleanupTimer();
|
void dnodeCleanupStatusTimer();
|
||||||
void dnodeSendStatusMsgToMnode();
|
void dnodeSendStatusMsgToMnode();
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
#include "taos.h"
|
#include "taos.h"
|
||||||
#include "tnote.h"
|
#include "tnote.h"
|
||||||
|
#include "ttimer.h"
|
||||||
#include "tconfig.h"
|
#include "tconfig.h"
|
||||||
#include "tfile.h"
|
#include "tfile.h"
|
||||||
#include "twal.h"
|
#include "twal.h"
|
||||||
|
@ -39,6 +40,7 @@
|
||||||
#include "dnodeShell.h"
|
#include "dnodeShell.h"
|
||||||
#include "dnodeTelemetry.h"
|
#include "dnodeTelemetry.h"
|
||||||
|
|
||||||
|
void *tsDnodeTmr = NULL;
|
||||||
static SRunStatus tsRunStatus = TSDB_RUN_STATUS_STOPPED;
|
static SRunStatus tsRunStatus = TSDB_RUN_STATUS_STOPPED;
|
||||||
|
|
||||||
static int32_t dnodeInitStorage();
|
static int32_t dnodeInitStorage();
|
||||||
|
@ -68,8 +70,8 @@ static SStep tsDnodeSteps[] = {
|
||||||
{"dnode-server", dnodeInitServer, dnodeCleanupServer},
|
{"dnode-server", dnodeInitServer, dnodeCleanupServer},
|
||||||
{"dnode-vnodes", dnodeInitVnodes, dnodeCleanupVnodes},
|
{"dnode-vnodes", dnodeInitVnodes, dnodeCleanupVnodes},
|
||||||
{"dnode-modules", dnodeInitModules, dnodeCleanupModules},
|
{"dnode-modules", dnodeInitModules, dnodeCleanupModules},
|
||||||
{"dnode-tmr", dnodeInitTimer, dnodeCleanupTimer},
|
|
||||||
{"dnode-shell", dnodeInitShell, dnodeCleanupShell},
|
{"dnode-shell", dnodeInitShell, dnodeCleanupShell},
|
||||||
|
{"dnode-statustmr", dnodeInitStatusTimer,dnodeCleanupStatusTimer},
|
||||||
{"dnode-telemetry", dnodeInitTelemetry, dnodeCleanupTelemetry},
|
{"dnode-telemetry", dnodeInitTelemetry, dnodeCleanupTelemetry},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -91,6 +93,23 @@ static int32_t dnodeInitComponents() {
|
||||||
return dnodeStepInit(tsDnodeSteps, stepSize);
|
return dnodeStepInit(tsDnodeSteps, stepSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int32_t dnodeInitTmr() {
|
||||||
|
tsDnodeTmr = taosTmrInit(100, 200, 60000, "DND-DM");
|
||||||
|
if (tsDnodeTmr == NULL) {
|
||||||
|
dError("failed to init dnode timer");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void dnodeCleanupTmr() {
|
||||||
|
if (tsDnodeTmr != NULL) {
|
||||||
|
taosTmrCleanUp(tsDnodeTmr);
|
||||||
|
tsDnodeTmr = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int32_t dnodeInitSystem() {
|
int32_t dnodeInitSystem() {
|
||||||
dnodeSetRunStatus(TSDB_RUN_STATUS_INITIALIZE);
|
dnodeSetRunStatus(TSDB_RUN_STATUS_INITIALIZE);
|
||||||
tscEmbedded = 1;
|
tscEmbedded = 1;
|
||||||
|
@ -100,6 +119,7 @@ int32_t dnodeInitSystem() {
|
||||||
taosReadGlobalLogCfg();
|
taosReadGlobalLogCfg();
|
||||||
taosSetCoreDump();
|
taosSetCoreDump();
|
||||||
taosInitNotes();
|
taosInitNotes();
|
||||||
|
dnodeInitTmr();
|
||||||
signal(SIGPIPE, SIG_IGN);
|
signal(SIGPIPE, SIG_IGN);
|
||||||
|
|
||||||
if (dnodeCreateDir(tsLogDir) < 0) {
|
if (dnodeCreateDir(tsLogDir) < 0) {
|
||||||
|
@ -125,7 +145,6 @@ int32_t dnodeInitSystem() {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
dnodeStartModules();
|
|
||||||
dnodeSetRunStatus(TSDB_RUN_STATUS_RUNING);
|
dnodeSetRunStatus(TSDB_RUN_STATUS_RUNING);
|
||||||
|
|
||||||
dInfo("TDengine is initialized successfully");
|
dInfo("TDengine is initialized successfully");
|
||||||
|
@ -136,6 +155,7 @@ int32_t dnodeInitSystem() {
|
||||||
void dnodeCleanUpSystem() {
|
void dnodeCleanUpSystem() {
|
||||||
if (dnodeGetRunStatus() != TSDB_RUN_STATUS_STOPPED) {
|
if (dnodeGetRunStatus() != TSDB_RUN_STATUS_STOPPED) {
|
||||||
dnodeSetRunStatus(TSDB_RUN_STATUS_STOPPED);
|
dnodeSetRunStatus(TSDB_RUN_STATUS_STOPPED);
|
||||||
|
dnodeCleanupTmr();
|
||||||
dnodeCleanupComponents();
|
dnodeCleanupComponents();
|
||||||
taos_cleanup();
|
taos_cleanup();
|
||||||
taosCloseLog();
|
taosCloseLog();
|
||||||
|
|
|
@ -97,6 +97,20 @@ void dnodeCleanupModules() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int32_t dnodeStartModules() {
|
||||||
|
for (EModuleType module = 1; module < TSDB_MOD_MAX; ++module) {
|
||||||
|
if (tsModule[module].enable && tsModule[module].startFp) {
|
||||||
|
int32_t code = (*tsModule[module].startFp)();
|
||||||
|
if (code != 0) {
|
||||||
|
dError("failed to start module:%s, code:%d", tsModule[module].name, code);
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int32_t dnodeInitModules() {
|
int32_t dnodeInitModules() {
|
||||||
dnodeAllocModules();
|
dnodeAllocModules();
|
||||||
|
|
||||||
|
@ -110,17 +124,7 @@ int32_t dnodeInitModules() {
|
||||||
}
|
}
|
||||||
|
|
||||||
dInfo("dnode modules is initialized");
|
dInfo("dnode modules is initialized");
|
||||||
return 0;
|
return dnodeStartModules();
|
||||||
}
|
|
||||||
|
|
||||||
void dnodeStartModules() {
|
|
||||||
for (EModuleType module = 1; module < TSDB_MOD_MAX; ++module) {
|
|
||||||
if (tsModule[module].enable && tsModule[module].startFp) {
|
|
||||||
if ((*tsModule[module].startFp)() != 0) {
|
|
||||||
dError("failed to start module:%s", tsModule[module].name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void dnodeProcessModuleStatus(uint32_t moduleStatus) {
|
void dnodeProcessModuleStatus(uint32_t moduleStatus) {
|
||||||
|
|
|
@ -30,39 +30,28 @@ typedef struct {
|
||||||
int32_t * vnodeList;
|
int32_t * vnodeList;
|
||||||
} SOpenVnodeThread;
|
} SOpenVnodeThread;
|
||||||
|
|
||||||
void * tsDnodeTmr = NULL;
|
extern void * tsDnodeTmr;
|
||||||
static void * tsStatusTimer = NULL;
|
static void * tsStatusTimer = NULL;
|
||||||
static uint32_t tsRebootTime = 0;
|
static uint32_t tsRebootTime = 0;
|
||||||
|
|
||||||
static void dnodeSendStatusMsg(void *handle, void *tmrId);
|
static void dnodeSendStatusMsg(void *handle, void *tmrId);
|
||||||
static void dnodeProcessStatusRsp(SRpcMsg *pMsg);
|
static void dnodeProcessStatusRsp(SRpcMsg *pMsg);
|
||||||
|
|
||||||
int32_t dnodeInitTimer() {
|
int32_t dnodeInitStatusTimer() {
|
||||||
tsDnodeTmr = taosTmrInit(100, 200, 60000, "DND-DM");
|
|
||||||
if (tsDnodeTmr == NULL) {
|
|
||||||
dError("failed to init dnode timer");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
dnodeAddClientRspHandle(TSDB_MSG_TYPE_DM_STATUS_RSP, dnodeProcessStatusRsp);
|
dnodeAddClientRspHandle(TSDB_MSG_TYPE_DM_STATUS_RSP, dnodeProcessStatusRsp);
|
||||||
|
|
||||||
tsRebootTime = taosGetTimestampSec();
|
tsRebootTime = taosGetTimestampSec();
|
||||||
taosTmrReset(dnodeSendStatusMsg, 500, NULL, tsDnodeTmr, &tsStatusTimer);
|
taosTmrReset(dnodeSendStatusMsg, 500, NULL, tsDnodeTmr, &tsStatusTimer);
|
||||||
|
|
||||||
dInfo("dnode timer is initialized");
|
dInfo("dnode status timer is initialized");
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void dnodeCleanupTimer() {
|
void dnodeCleanupStatusTimer() {
|
||||||
if (tsStatusTimer != NULL) {
|
if (tsStatusTimer != NULL) {
|
||||||
taosTmrStopA(&tsStatusTimer);
|
taosTmrStopA(&tsStatusTimer);
|
||||||
tsStatusTimer = NULL;
|
tsStatusTimer = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tsDnodeTmr != NULL) {
|
|
||||||
taosTmrCleanUp(tsDnodeTmr);
|
|
||||||
tsDnodeTmr = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t dnodeGetVnodeList(int32_t vnodeList[], int32_t *numOfVnodes) {
|
static int32_t dnodeGetVnodeList(int32_t vnodeList[], int32_t *numOfVnodes) {
|
||||||
|
|
|
@ -29,13 +29,6 @@ typedef struct {
|
||||||
int32_t httpReqNum;
|
int32_t httpReqNum;
|
||||||
} SStatisInfo;
|
} SStatisInfo;
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
TSDB_RUN_STATUS_INITIALIZE,
|
|
||||||
TSDB_RUN_STATUS_RUNING,
|
|
||||||
TSDB_RUN_STATUS_STOPPED
|
|
||||||
} SRunStatus;
|
|
||||||
|
|
||||||
SRunStatus dnodeGetRunStatus();
|
|
||||||
SStatisInfo dnodeGetStatisInfo();
|
SStatisInfo dnodeGetStatisInfo();
|
||||||
|
|
||||||
bool dnodeIsFirstDeploy();
|
bool dnodeIsFirstDeploy();
|
||||||
|
|
Loading…
Reference in New Issue