diff --git a/include/common/tglobal.h b/include/common/tglobal.h index a9b0e60761..42956b6bdd 100644 --- a/include/common/tglobal.h +++ b/include/common/tglobal.h @@ -29,12 +29,7 @@ extern char tsLocalFqdn[]; extern char tsLocalEp[]; extern uint16_t tsServerPort; extern int32_t tsStatusInterval; -extern int32_t tsNumOfMnodes; -extern int8_t tsEnableVnodeBak; extern int8_t tsEnableTelemetryReporting; -extern char tsArbitrator[]; -extern int8_t tsArbOnline; -extern int64_t tsArbOnlineTimestamp; // common extern int tsRpcTimer; @@ -60,7 +55,6 @@ extern int tsCompatibleModel; // 2.0 compatible model extern int32_t tsQueryBufferSize; // maximum allowed usage buffer size in MB for each data node during query processing extern int64_t tsQueryBufferSizeBytes; // maximum allowed usage buffer size in byte for each data node during query processing extern int32_t tsRetrieveBlockingModel;// retrieve threads will be blocked - extern int8_t tsKeepOriginalColumnName; // client @@ -78,66 +72,15 @@ extern float tsStreamComputDelayRatio; // the delayed computing ration of the extern int32_t tsProjectExecInterval; extern int64_t tsMaxRetentWindow; -// db parameters in client -extern int32_t tsCacheBlockSize; -extern int32_t tsBlocksPerVnode; -extern int32_t tsTableIncStepPerVnode; -extern int32_t tsMaxVgroupsPerDb; -extern int16_t tsDaysPerFile; -extern int32_t tsDaysToKeep; -extern int32_t tsMinRowsInFileBlock; -extern int32_t tsMaxRowsInFileBlock; -extern int16_t tsCommitTime; // seconds -extern int32_t tsTimePrecision; -extern int8_t tsCompression; -extern int8_t tsWAL; -extern int32_t tsFsyncPeriod; -extern int32_t tsReplications; -extern int16_t tsPartitons; -extern int32_t tsQuorum; -extern int8_t tsUpdate; -extern int8_t tsCacheLastRow; - -//tsdb -extern bool tsdbForceKeepFile; - // balance -extern int8_t tsEnableBalance; -extern int8_t tsAlternativeRole; -extern int32_t tsBalanceInterval; -extern int32_t tsOfflineThreshold; -extern int8_t tsEnableFlowCtrl; extern int8_t tsEnableSlaveQuery; -extern int8_t tsEnableAdjustMaster; -// restful -extern int32_t tsRestRowLimit; -extern int8_t tsTelegrafUseFieldNum; -// mqtt -extern int8_t tsEnableMqttModule; -extern char tsMqttHostName[]; -extern char tsMqttPort[]; -extern char tsMqttUser[]; -extern char tsMqttPass[]; -extern char tsMqttClientId[]; -extern char tsMqttTopic[]; - -// monitor -extern int8_t tsEnableMonitorModule; -extern char tsMonitorDbName[]; -extern char tsInternalPass[]; -extern int32_t tsMonitorInterval; - -// stream -extern int8_t tsEnableStream; - -// internal +// interna extern int8_t tsPrintAuth; extern char tsVnodeDir[]; extern char tsMnodeDir[]; extern int64_t tsTickPerDay[3]; -extern int32_t tsTopicBianryLen; // system info extern float tsTotalLogDirGB; diff --git a/include/util/tlog.h b/include/util/tlog.h index 9b6033e7fe..5e6604598d 100644 --- a/include/util/tlog.h +++ b/include/util/tlog.h @@ -32,7 +32,6 @@ extern int32_t mDebugFlag; extern int32_t cDebugFlag; extern int32_t jniDebugFlag; extern int32_t tmrDebugFlag; -extern int32_t sdbDebugFlag; extern int32_t httpDebugFlag; extern int32_t mqttDebugFlag; extern int32_t monDebugFlag; diff --git a/source/common/src/tglobal.c b/source/common/src/tglobal.c index dfbbe33b59..910d05e9a3 100644 --- a/source/common/src/tglobal.c +++ b/source/common/src/tglobal.c @@ -30,19 +30,12 @@ // cluster char tsFirst[TSDB_EP_LEN] = {0}; char tsSecond[TSDB_EP_LEN] = {0}; -char tsArbitrator[TSDB_EP_LEN] = {0}; char tsLocalFqdn[TSDB_FQDN_LEN] = {0}; char tsLocalEp[TSDB_EP_LEN] = {0}; // Local End Point, hostname:port uint16_t tsServerPort = 6030; int32_t tsStatusInterval = 1; // second -int32_t tsNumOfMnodes = 1; -int8_t tsEnableVnodeBak = 1; int8_t tsEnableTelemetryReporting = 0; -int8_t tsArbOnline = 0; -int64_t tsArbOnlineTimestamp = TSDB_ARB_DUMMY_TIME; char tsEmail[TSDB_FQDN_LEN] = {0}; -int32_t tsDnodeId = 0; -int64_t tsDnodeStartTime = 0; // common int32_t tsRpcTimer = 300; @@ -129,59 +122,19 @@ int32_t tsRetrieveBlockingModel = 0; // last_row(*), first(*), last_row(ts, col1, col2) query, the result fields will be the original column name int8_t tsKeepOriginalColumnName = 0; -// db parameters -int32_t tsCacheBlockSize = TSDB_DEFAULT_CACHE_BLOCK_SIZE; -int32_t tsBlocksPerVnode = TSDB_DEFAULT_TOTAL_BLOCKS; -int16_t tsDaysPerFile = TSDB_DEFAULT_DAYS_PER_FILE; -int32_t tsDaysToKeep = TSDB_DEFAULT_KEEP; -int32_t tsMinRowsInFileBlock = TSDB_DEFAULT_MIN_ROW_FBLOCK; -int32_t tsMaxRowsInFileBlock = TSDB_DEFAULT_MAX_ROW_FBLOCK; -int16_t tsCommitTime = TSDB_DEFAULT_COMMIT_TIME; // seconds -int32_t tsTimePrecision = TSDB_DEFAULT_PRECISION; -int8_t tsCompression = TSDB_DEFAULT_COMP_LEVEL; -int8_t tsWAL = TSDB_DEFAULT_WAL_LEVEL; -int32_t tsFsyncPeriod = TSDB_DEFAULT_FSYNC_PERIOD; -int32_t tsReplications = TSDB_DEFAULT_DB_REPLICA_OPTION; -int32_t tsQuorum = TSDB_DEFAULT_DB_QUORUM_OPTION; -int8_t tsUpdate = TSDB_DEFAULT_DB_UPDATE_OPTION; -int8_t tsCacheLastRow = TSDB_DEFAULT_CACHE_LAST_ROW; -int32_t tsMaxVgroupsPerDb = 0; -int32_t tsTsdbMetaCompactRatio = TSDB_META_COMPACT_RATIO; - // tsdb config // For backward compatibility bool tsdbForceKeepFile = false; // balance -int8_t tsEnableBalance = 1; -int8_t tsAlternativeRole = 0; -int32_t tsBalanceInterval = 300; // seconds -int32_t tsOfflineThreshold = 86400 * 10; // seconds of 10 days int8_t tsEnableFlowCtrl = 1; int8_t tsEnableSlaveQuery = 1; int8_t tsEnableAdjustMaster = 1; -// restful -int32_t tsRestRowLimit = 10240; -int8_t tsTelegrafUseFieldNum = 0; - -// mqtt -int8_t tsEnableMqttModule = 0; // not finished yet, not started it by default -char tsMqttHostName[TSDB_MQTT_HOSTNAME_LEN] = "test.mosquitto.org"; -char tsMqttPort[TSDB_MQTT_PORT_LEN] = "1883"; -char tsMqttUser[TSDB_MQTT_USER_LEN] = {0}; -char tsMqttPass[TSDB_MQTT_PASS_LEN] = {0}; -char tsMqttClientId[TSDB_MQTT_CLIENT_ID_LEN] = "TDengineMqttSubscriber"; -char tsMqttTopic[TSDB_MQTT_TOPIC_LEN] = "/test"; // # // monitor -int8_t tsEnableMonitorModule = 1; char tsMonitorDbName[TSDB_DB_NAME_LEN] = "log"; char tsInternalPass[] = "secretkey"; -int32_t tsMonitorInterval = 30; // seconds - -// stream -int8_t tsEnableStream = 1; // internal int8_t tsCompactMnodeWal = 0; @@ -191,7 +144,6 @@ char tsDnodeDir[PATH_MAX] = {0}; char tsMnodeDir[PATH_MAX] = {0}; int32_t tsDiskCfgNum = 0; -int32_t tsTopicBianryLen = 16000; #ifndef _STORAGE SDiskCfg tsDiskCfg[1]; @@ -245,14 +197,10 @@ static pthread_once_t tsInitGlobalCfgOnce = PTHREAD_ONCE_INIT; void taosSetAllDebugFlag() { if (debugFlag != 0) { mDebugFlag = debugFlag; - sdbDebugFlag = debugFlag; dDebugFlag = debugFlag; vDebugFlag = debugFlag; jniDebugFlag = debugFlag; odbcDebugFlag = debugFlag; - httpDebugFlag = debugFlag; - mqttDebugFlag = debugFlag; - monDebugFlag = debugFlag; qDebugFlag = debugFlag; rpcDebugFlag = debugFlag; uDebugFlag = debugFlag; @@ -459,16 +407,6 @@ static void doInitGlobalConfig(void) { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosAddConfigOption(cfg); - cfg.option = "arbitrator"; - cfg.ptr = tsArbitrator; - cfg.valType = TAOS_CFG_VTYPE_STRING; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT; - cfg.minValue = 0; - cfg.maxValue = 0; - cfg.ptrLength = TSDB_EP_LEN; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - // dnode configs cfg.option = "numOfThreadsPerCore"; cfg.ptr = &tsNumOfThreadsPerCore; @@ -509,26 +447,6 @@ static void doInitGlobalConfig(void) { cfg.ptrLength = 0; cfg.unitType = TAOS_CFG_UTYPE_NONE; taosAddConfigOption(cfg); - - cfg.option = "numOfMnodes"; - cfg.ptr = &tsNumOfMnodes; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 1; - cfg.maxValue = 3; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "vnodeBak"; - cfg.ptr = &tsEnableVnodeBak; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0; - cfg.maxValue = 1; - cfg.ptrLength = 1; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); cfg.option = "telemetryReporting"; cfg.ptr = &tsEnableTelemetryReporting; @@ -540,37 +458,6 @@ static void doInitGlobalConfig(void) { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosAddConfigOption(cfg); - cfg.option = "balance"; - cfg.ptr = &tsEnableBalance; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0; - cfg.maxValue = 1; - cfg.ptrLength = 1; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "balanceInterval"; - cfg.ptr = &tsBalanceInterval; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 1; - cfg.maxValue = 30000; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - // 0-any; 1-mnode; 2-vnode - cfg.option = "role"; - cfg.ptr = &tsAlternativeRole; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG; - cfg.minValue = 0; - cfg.maxValue = 2; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - // timer cfg.option = "maxTmrCtrl"; cfg.ptr = &tsMaxTmrCtrl; @@ -582,26 +469,6 @@ static void doInitGlobalConfig(void) { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosAddConfigOption(cfg); - cfg.option = "monitorInterval"; - cfg.ptr = &tsMonitorInterval; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG; - cfg.minValue = 1; - cfg.maxValue = 600; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_SECOND; - taosAddConfigOption(cfg); - - cfg.option = "offlineThreshold"; - cfg.ptr = &tsOfflineThreshold; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 3; - cfg.maxValue = 86400 * 365; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_SECOND; - taosAddConfigOption(cfg); - cfg.option = "rpcTimer"; cfg.ptr = &tsRpcTimer; cfg.valType = TAOS_CFG_VTYPE_INT32; @@ -712,186 +579,6 @@ static void doInitGlobalConfig(void) { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosAddConfigOption(cfg); - cfg.option = "maxVgroupsPerDb"; - cfg.ptr = &tsMaxVgroupsPerDb; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0; - cfg.maxValue = 8192; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "cache"; - cfg.ptr = &tsCacheBlockSize; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_CACHE_BLOCK_SIZE; - cfg.maxValue = TSDB_MAX_CACHE_BLOCK_SIZE; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_MB; - taosAddConfigOption(cfg); - - cfg.option = "blocks"; - cfg.ptr = &tsBlocksPerVnode; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_TOTAL_BLOCKS; - cfg.maxValue = TSDB_MAX_TOTAL_BLOCKS; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "days"; - cfg.ptr = &tsDaysPerFile; - cfg.valType = TAOS_CFG_VTYPE_INT16; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_DAYS_PER_FILE; - cfg.maxValue = TSDB_MAX_DAYS_PER_FILE; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "keep"; - cfg.ptr = &tsDaysToKeep; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_KEEP; - cfg.maxValue = TSDB_MAX_KEEP; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "minRows"; - cfg.ptr = &tsMinRowsInFileBlock; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_MIN_ROW_FBLOCK; - cfg.maxValue = TSDB_MAX_MIN_ROW_FBLOCK; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "maxRows"; - cfg.ptr = &tsMaxRowsInFileBlock; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_MAX_ROW_FBLOCK; - cfg.maxValue = TSDB_MAX_MAX_ROW_FBLOCK; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "precision"; - cfg.ptr = &tsTimePrecision; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_PRECISION; - cfg.maxValue = TSDB_MAX_PRECISION; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "comp"; - cfg.ptr = &tsCompression; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_COMP_LEVEL; - cfg.maxValue = TSDB_MAX_COMP_LEVEL; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "walLevel"; - cfg.ptr = &tsWAL; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_WAL_LEVEL; - cfg.maxValue = TSDB_MAX_WAL_LEVEL; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "fsync"; - cfg.ptr = &tsFsyncPeriod; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_FSYNC_PERIOD; - cfg.maxValue = TSDB_MAX_FSYNC_PERIOD; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "replica"; - cfg.ptr = &tsReplications; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_DB_REPLICA_OPTION; - cfg.maxValue = TSDB_MAX_DB_REPLICA_OPTION; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "quorum"; - cfg.ptr = &tsQuorum; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_DB_QUORUM_OPTION; - cfg.maxValue = TSDB_MAX_DB_QUORUM_OPTION; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "update"; - cfg.ptr = &tsUpdate; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_DB_UPDATE; - cfg.maxValue = TSDB_MAX_DB_UPDATE; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "cachelast"; - cfg.ptr = &tsCacheLastRow; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = TSDB_MIN_DB_CACHE_LAST_ROW; - cfg.maxValue = TSDB_MAX_DB_CACHE_LAST_ROW; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "mqttHostName"; - cfg.ptr = tsMqttHostName; - cfg.valType = TAOS_CFG_VTYPE_STRING; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_NOT_PRINT; - cfg.minValue = 0; - cfg.maxValue = 0; - cfg.ptrLength = TSDB_MQTT_HOSTNAME_LEN; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "mqttPort"; - cfg.ptr = tsMqttPort; - cfg.valType = TAOS_CFG_VTYPE_STRING; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_NOT_PRINT; - cfg.minValue = 0; - cfg.maxValue = 0; - cfg.ptrLength = TSDB_MQTT_PORT_LEN; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "mqttTopic"; - cfg.ptr = tsMqttTopic; - cfg.valType = TAOS_CFG_VTYPE_STRING; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_NOT_PRINT; - cfg.minValue = 0; - cfg.maxValue = 0; - cfg.ptrLength = TSDB_MQTT_TOPIC_LEN; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - cfg.option = "compressMsgSize"; cfg.ptr = &tsCompressMsgSize; cfg.valType = TAOS_CFG_VTYPE_INT32; @@ -1085,76 +772,6 @@ static void doInitGlobalConfig(void) { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosAddConfigOption(cfg); - cfg.option = "adjustMaster"; - cfg.ptr = &tsEnableAdjustMaster; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0; - cfg.maxValue = 1; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "mqtt"; - cfg.ptr = &tsEnableMqttModule; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0; - cfg.maxValue = 1; - cfg.ptrLength = 1; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "monitor"; - cfg.ptr = &tsEnableMonitorModule; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0; - cfg.maxValue = 1; - cfg.ptrLength = 1; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "stream"; - cfg.ptr = &tsEnableStream; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0; - cfg.maxValue = 1; - cfg.ptrLength = 1; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "topicBianryLen"; - cfg.ptr = &tsTopicBianryLen; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG; - cfg.minValue = 16; - cfg.maxValue = 16000; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "telegrafUseFieldNum"; - cfg.ptr = &tsTelegrafUseFieldNum; - cfg.valType = TAOS_CFG_VTYPE_INT8; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0; - cfg.maxValue = 1; - cfg.ptrLength = 1; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "restfulRowLimit"; - cfg.ptr = &tsRestRowLimit; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG; - cfg.minValue = 1; - cfg.maxValue = 10000000; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - // debug flag cfg.option = "numOfLogLines"; cfg.ptr = &tsNumOfLogLines; @@ -1236,17 +853,6 @@ static void doInitGlobalConfig(void) { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosAddConfigOption(cfg); - - cfg.option = "sdbDebugFlag"; - cfg.ptr = &sdbDebugFlag; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG; - cfg.minValue = 0; - cfg.maxValue = 255; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - cfg.option = "rpcDebugFlag"; cfg.ptr = &rpcDebugFlag; cfg.valType = TAOS_CFG_VTYPE_INT32; @@ -1307,36 +913,6 @@ static void doInitGlobalConfig(void) { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosAddConfigOption(cfg); - cfg.option = "httpDebugFlag"; - cfg.ptr = &httpDebugFlag; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG; - cfg.minValue = 0; - cfg.maxValue = 255; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "mqttDebugFlag"; - cfg.ptr = &mqttDebugFlag; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG; - cfg.minValue = 0; - cfg.maxValue = 255; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "monDebugFlag"; - cfg.ptr = &monDebugFlag; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG; - cfg.minValue = 0; - cfg.maxValue = 255; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - cfg.option = "qDebugFlag"; cfg.ptr = &qDebugFlag; cfg.valType = TAOS_CFG_VTYPE_INT32; @@ -1456,16 +1032,6 @@ static void doInitGlobalConfig(void) { cfg.maxValue = 0; cfg.ptrLength = PATH_MAX; cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosAddConfigOption(cfg); - - cfg.option = "tsdbMetaCompactRatio"; - cfg.ptr = &tsTsdbMetaCompactRatio; - cfg.valType = TAOS_CFG_VTYPE_INT32; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG; - cfg.minValue = 0; - cfg.maxValue = 100; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; taosAddConfigOption(cfg); // enable kill long query @@ -1630,4 +1196,3 @@ bool taosCheckBalanceCfgOptions(const char *option, int32_t *vnodeId, int32_t *d return true; } - \ No newline at end of file diff --git a/source/dnode/mgmt/impl/test/sut/deploy.cpp b/source/dnode/mgmt/impl/test/sut/deploy.cpp index be1506bccf..f2010b5813 100644 --- a/source/dnode/mgmt/impl/test/sut/deploy.cpp +++ b/source/dnode/mgmt/impl/test/sut/deploy.cpp @@ -22,10 +22,6 @@ void initLog(const char* path) { cDebugFlag = 0; jniDebugFlag = 0; tmrDebugFlag = 0; - sdbDebugFlag = 0; - httpDebugFlag = 0; - mqttDebugFlag = 0; - monDebugFlag = 0; uDebugFlag = 143; rpcDebugFlag = 0; odbcDebugFlag = 0; diff --git a/source/dnode/mnode/impl/src/mndStb.c b/source/dnode/mnode/impl/src/mndStb.c index d06099416b..791b6f5d12 100644 --- a/source/dnode/mnode/impl/src/mndStb.c +++ b/source/dnode/mnode/impl/src/mndStb.c @@ -69,7 +69,7 @@ int32_t mndInitStb(SMnode *pMnode) { void mndCleanupStb(SMnode *pMnode) {} static SSdbRaw *mndStbActionEncode(SStbObj *pStb) { - int32_t size = sizeof(SStbObj) + (pStb->numOfColumns + pStb->numOfTags) * sizeof(SSchema); + int32_t size = sizeof(SStbObj) + (pStb->numOfColumns + pStb->numOfTags) * sizeof(SSchema) + TSDB_STB_RESERVE_SIZE; SSdbRaw *pRaw = sdbAllocRaw(SDB_STB, TSDB_STB_VER_NUM, size); if (pRaw == NULL) return NULL; diff --git a/source/dnode/mnode/impl/src/mndVgroup.c b/source/dnode/mnode/impl/src/mndVgroup.c index ca244fed9f..5d73f6083a 100644 --- a/source/dnode/mnode/impl/src/mndVgroup.c +++ b/source/dnode/mnode/impl/src/mndVgroup.c @@ -71,7 +71,7 @@ int32_t mndInitVgroup(SMnode *pMnode) { void mndCleanupVgroup(SMnode *pMnode) {} static SSdbRaw *mndVgroupActionEncode(SVgObj *pVgroup) { - SSdbRaw *pRaw = sdbAllocRaw(SDB_DB, TSDB_VGROUP_VER_NUM, sizeof(SDbObj)); + SSdbRaw *pRaw = sdbAllocRaw(SDB_DB, TSDB_VGROUP_VER_NUM, sizeof(SVgObj) + TSDB_VGROUP_RESERVE_SIZE); if (pRaw == NULL) return NULL; int32_t dataPos = 0; diff --git a/source/dnode/vnode/impl/CMakeLists.txt b/source/dnode/vnode/impl/CMakeLists.txt index 6972605afd..3623516624 100644 --- a/source/dnode/vnode/impl/CMakeLists.txt +++ b/source/dnode/vnode/impl/CMakeLists.txt @@ -19,5 +19,5 @@ target_link_libraries( # test if(${BUILD_TEST}) - add_subdirectory(test) + #add_subdirectory(test) endif(${BUILD_TEST}) \ No newline at end of file diff --git a/source/libs/executor/src/executorimpl.c b/source/libs/executor/src/executorimpl.c index 0999c44fab..f37c7727f7 100644 --- a/source/libs/executor/src/executorimpl.c +++ b/source/libs/executor/src/executorimpl.c @@ -4831,8 +4831,8 @@ static SSDataBlock* doBlockInfoScan(void* param, bool* newgroup) { STableBlockDist tableBlockDist = {0}; tableBlockDist.numOfTables = (int32_t)pOperator->pRuntimeEnv->tableqinfoGroupInfo.numOfTables; - int32_t numRowSteps = tsMaxRowsInFileBlock / TSDB_BLOCK_DIST_STEP_ROWS; - if (tsMaxRowsInFileBlock % TSDB_BLOCK_DIST_STEP_ROWS != 0) { + int32_t numRowSteps = TSDB_DEFAULT_MAX_ROW_FBLOCK / TSDB_BLOCK_DIST_STEP_ROWS; + if (TSDB_DEFAULT_MAX_ROW_FBLOCK % TSDB_BLOCK_DIST_STEP_ROWS != 0) { ++numRowSteps; } tableBlockDist.dataBlockInfos = taosArrayInit(numRowSteps, sizeof(SFileBlockInfo)); diff --git a/source/util/src/tlog.c b/source/util/src/tlog.c index 2d7179c0d3..23a923a315 100644 --- a/source/util/src/tlog.c +++ b/source/util/src/tlog.c @@ -81,15 +81,11 @@ int32_t writeInterval = DEFAULT_LOG_INTERVAL; // log int32_t tsNumOfLogLines = 10000000; int32_t mDebugFlag = 131; -int32_t sdbDebugFlag = 131; int32_t dDebugFlag = 135; int32_t vDebugFlag = 135; int32_t cDebugFlag = 131; int32_t jniDebugFlag = 131; int32_t odbcDebugFlag = 131; -int32_t httpDebugFlag = 131; -int32_t mqttDebugFlag = 131; -int32_t monDebugFlag = 131; int32_t qDebugFlag = 131; int32_t rpcDebugFlag = 131; int32_t uDebugFlag = 131; diff --git a/src/balance/CMakeLists.txt b/src/balance/CMakeLists.txt deleted file mode 100644 index bffa415deb..0000000000 --- a/src/balance/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8...3.20) -PROJECT(TDengine) - -INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/mnode/inc) -INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/dnode/inc) -INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/tsdb/inc) -INCLUDE_DIRECTORIES(${TD_ENTERPRISE_DIR}/src/inc) -INCLUDE_DIRECTORIES(inc) -AUX_SOURCE_DIRECTORY(src SRC) - -ADD_LIBRARY(balance ${SRC}) diff --git a/src/balance/inc/bnInt.h b/src/balance/inc/bnInt.h deleted file mode 100644 index e924776ff1..0000000000 --- a/src/balance/inc/bnInt.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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_BALANCE_INT_H -#define TDENGINE_BALANCE_INT_H - -#ifdef __cplusplus -extern "C" { -#endif -#include "mnodeInt.h" -#include "mnodeDef.h" -#include "mnodeDnode.h" - -typedef struct { - int32_t size; - int32_t maxSize; - SDnodeObj **list; -} SBnDnodes; - -typedef struct { - void * timer; - bool stop; - pthread_mutex_t mutex; - pthread_cond_t cond; - pthread_t thread; -} SBnThread; - -typedef struct { - pthread_mutex_t mutex; -} SBnMgmt; - -int32_t bnInit(); -void bnCleanUp(); -bool bnStart(); -void bnCheckStatus(); -void bnCheckModules(); - -extern SBnDnodes tsBnDnodes; -extern void *tsMnodeTmr; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/balance/inc/bnScore.h b/src/balance/inc/bnScore.h deleted file mode 100644 index a28c4459dd..0000000000 --- a/src/balance/inc/bnScore.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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_BALANCE_SCORE_H -#define TDENGINE_BALANCE_SCORE_H - -#ifdef __cplusplus -extern "C" { -#endif -#include "bnInt.h" - -void bnInitDnodes(); -void bnCleanupDnodes(); -void bnAccquireDnodes(); -void bnReleaseDnodes(); -float bnTryCalcDnodeScore(SDnodeObj *pDnode, int32_t extraVnode); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/balance/inc/bnThread.h b/src/balance/inc/bnThread.h deleted file mode 100644 index 74a761299d..0000000000 --- a/src/balance/inc/bnThread.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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_BALANCE_THREAD_H -#define TDENGINE_BALANCE_THREAD_H - -#ifdef __cplusplus -extern "C" { -#endif -#include "bnInt.h" - -int32_t bnInitThread(); -void bnCleanupThread(); -void bnNotify(); -void bnStartTimer(int32_t mseconds); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/balance/src/bnMain.c b/src/balance/src/bnMain.c deleted file mode 100644 index 9997d44ca5..0000000000 --- a/src/balance/src/bnMain.c +++ /dev/null @@ -1,728 +0,0 @@ -/* - * 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 . - */ - -#define _DEFAULT_SOURCE -#include "os.h" -#include "tref.h" -#include "tsync.h" -#include "tglobal.h" -#include "dnode.h" -#include "bnInt.h" -#include "bnScore.h" -#include "bnThread.h" -#include "mnodeDb.h" -#include "mnodeMnode.h" -#include "mnodeSdb.h" -#include "mnodeShow.h" -#include "mnodeUser.h" -#include "mnodeVgroup.h" - -extern int64_t tsDnodeRid; -extern int32_t tsSdbRid; -static SBnMgmt tsBnMgmt; -static void bnMonitorDnodeModule(); - -static void bnLock() { - pthread_mutex_lock(&tsBnMgmt.mutex); -} - -static void bnUnLock() { - pthread_mutex_unlock(&tsBnMgmt.mutex); -} - -static bool bnCheckFree(SDnodeObj *pDnode) { - if (pDnode->status == TAOS_DN_STATUS_DROPPING || pDnode->status == TAOS_DN_STATUS_OFFLINE) { - mError("dnode:%d, status:%s not available", pDnode->dnodeId, dnodeStatus[pDnode->status]); - return false; - } - - if (pDnode->openVnodes >= TSDB_MAX_VNODES) { - mError("dnode:%d, openVnodes:%d maxVnodes:%d not available", pDnode->dnodeId, pDnode->openVnodes, TSDB_MAX_VNODES); - return false; - } - - if (pDnode->diskAvailable <= tsMinimalDataDirGB) { - mError("dnode:%d, disk space:%fGB, not available", pDnode->dnodeId, pDnode->diskAvailable); - return false; - } - - if (pDnode->alternativeRole == TAOS_DN_ALTERNATIVE_ROLE_MNODE) { - mDebug("dnode:%d, alternative role is master, can't alloc vnodes in this dnode", pDnode->dnodeId); - return false; - } - - return true; -} - -static void bnSwapVnodeGid(SVnodeGid *pVnodeGid1, SVnodeGid *pVnodeGid2) { - SVnodeGid tmp = *pVnodeGid1; - *pVnodeGid1 = *pVnodeGid2; - *pVnodeGid2 = tmp; -} - -static void bnAdjustVnodeIndex(SVgObj *pInVg) { - int32_t d0Id = pInVg->vnodeGid[0].dnodeId; - int32_t d1Id = pInVg->vnodeGid[1].dnodeId; - int32_t d2Id = pInVg->vnodeGid[2].dnodeId; - - int32_t vgId = pInVg->vgId; - int32_t d0Num = 0; - int32_t d1Num = 0; - int32_t d2Num = 0; - - void *pIter = NULL; - while (1) { - SVgObj *pVgroup = NULL; - pIter = mnodeGetNextVgroup(pIter, &pVgroup); - if (pVgroup == NULL) break; - - if (pVgroup->vgId != vgId) { - if (pVgroup->vnodeGid[0].dnodeId == d0Id) d0Num++; - if (pVgroup->vnodeGid[0].dnodeId == d1Id) d1Num++; - if (pVgroup->vnodeGid[0].dnodeId == d2Id) d2Num++; - } - - mnodeDecVgroupRef(pVgroup); - } - - if (pInVg->numOfVnodes == 1) { - } - - if (pInVg->numOfVnodes == 2) { - mDebug("vgId:%d, dnode:%d num:%d dnode:%d num:%d", pInVg->vgId, d0Id, d0Num, d1Id, d1Num); - if (d0Num > d1Num) { - mDebug("vgId:%d, adjust vnode index 0 to 1", pInVg->vgId); - bnSwapVnodeGid(&pInVg->vnodeGid[0], &pInVg->vnodeGid[1]); - } - } - - if (pInVg->numOfVnodes >= 3) { - mDebug("vgId:%d, dnode:%d num:%d dnode:%d num:%d dnode:%d num:%d", pInVg->vgId, d0Id, d0Num, d1Id, d1Num, d2Id, d2Num); - if (d0Num <= d1Num && d0Num <= d2Num) { - if (d1Num > d2Num) { - mDebug("vgId:%d, adjust vnode index 1 to 2", pInVg->vgId); - bnSwapVnodeGid(&pInVg->vnodeGid[1], &pInVg->vnodeGid[2]); - } - } else if (d1Num <= d2Num && d1Num <= d0Num) { - mDebug("vgId:%d, adjust vnode index 0 to 1", pInVg->vgId); - bnSwapVnodeGid(&pInVg->vnodeGid[0], &pInVg->vnodeGid[1]); - if (d0Num > d2Num) { - mDebug("vgId:%d, adjust vnode index 1 to 2", pInVg->vgId); - bnSwapVnodeGid(&pInVg->vnodeGid[1], &pInVg->vnodeGid[2]); - } - } else { - mDebug("vgId:%d, adjust vnode index 0 to 2", pInVg->vgId); - bnSwapVnodeGid(&pInVg->vnodeGid[0], &pInVg->vnodeGid[2]); - if (d1Num > d0Num) { - mDebug("vgId:%d, adjust vnode index 1 to 2", pInVg->vgId); - bnSwapVnodeGid(&pInVg->vnodeGid[1], &pInVg->vnodeGid[2]); - } - } - } - - for (int i = 0; i < pInVg->numOfVnodes; ++i) { - mDebug("vgId:%d index:%d dnodeId:%d", pInVg->vgId, i, pInVg->vnodeGid[i].dnodeId); - } -} - -static void bnDiscardVnode(SVgObj *pVgroup, SVnodeGid *pVnodeGid) { - mDebug("vgId:%d, dnode:%d is dropping", pVgroup->vgId, pVnodeGid->dnodeId); - - SDnodeObj *pDnode = mnodeGetDnode(pVnodeGid->dnodeId); - if (pDnode != NULL) { - atomic_sub_fetch_32(&pDnode->openVnodes, 1); - mnodeDecDnodeRef(pDnode); - } - - SVnodeGid vnodeGid[TSDB_MAX_REPLICA]; memset(vnodeGid, 0, sizeof(vnodeGid)); /* = {0}; */ - int32_t numOfVnodes = 0; - for (int32_t i = 0; i < pVgroup->numOfVnodes; ++i) { - SVnodeGid *pTmpVodeGid = pVgroup->vnodeGid + i; - if (pTmpVodeGid == pVnodeGid) { - continue; - } - vnodeGid[numOfVnodes] = *pTmpVodeGid; - ++numOfVnodes; - } - memcpy(pVgroup->vnodeGid, vnodeGid, TSDB_MAX_REPLICA * sizeof(SVnodeGid)); - pVgroup->numOfVnodes = numOfVnodes; - - bnAdjustVnodeIndex(pVgroup); - mnodeUpdateVgroup(pVgroup); -} - -int32_t bnAllocVnodes(SVgObj *pVgroup) { - int32_t dnode = 0; - int32_t vnodes = 0; - - bnLock(); - bnAccquireDnodes(); - - mDebug("db:%s, try alloc %d vnodes to vgroup, dnodes total:%d, avail:%d", pVgroup->dbName, pVgroup->numOfVnodes, - mnodeGetDnodesNum(), tsBnDnodes.size); - for (int32_t i = 0; i < pVgroup->numOfVnodes; ++i) { - for (; dnode < tsBnDnodes.size; ++dnode) { - SDnodeObj *pDnode = tsBnDnodes.list[dnode]; - if (bnCheckFree(pDnode)) { - SVnodeGid *pVnodeGid = pVgroup->vnodeGid + i; - pVnodeGid->dnodeId = pDnode->dnodeId; - pVnodeGid->pDnode = pDnode; - dnode++; - vnodes++; - mDebug("dnode:%d, is selected, vnodeIndex:%d", pDnode->dnodeId, i); - break; - } else { - mDebug("dnode:%d, is not selected, status:%s vnodes:%d disk:%fGB role:%d", pDnode->dnodeId, - dnodeStatus[pDnode->status], pDnode->openVnodes, pDnode->diskAvailable, pDnode->alternativeRole); - } - } - } - - if (vnodes != pVgroup->numOfVnodes) { - bnReleaseDnodes(); - bnUnLock(); - - mDebug("db:%s, need vnodes:%d, but alloc:%d", pVgroup->dbName, pVgroup->numOfVnodes, vnodes); - - void * pIter = NULL; - SDnodeObj *pDnode = NULL; - while (1) { - pIter = mnodeGetNextDnode(pIter, &pDnode); - if (pDnode == NULL) break; - mDebug("dnode:%d, status:%s vnodes:%d disk:%fGB role:%d", pDnode->dnodeId, dnodeStatus[pDnode->status], - pDnode->openVnodes, pDnode->diskAvailable, pDnode->alternativeRole); - mnodeDecDnodeRef(pDnode); - } - - if (mnodeGetOnlineDnodesNum() == 0) { - return TSDB_CODE_MND_NOT_READY; - } else { - return TSDB_CODE_MND_NO_ENOUGH_DNODES; - } - } - - bnAdjustVnodeIndex(pVgroup); - bnReleaseDnodes(); - bnUnLock(); - return TSDB_CODE_SUCCESS; -} - -static bool bnCheckVgroupReady(SVgObj *pVgroup, SVnodeGid *pRmVnode) { - int32_t rmVnodeVer = 0; - for (int32_t i = 0; i < pVgroup->numOfVnodes; ++i) { - SVnodeGid *pVnode = pVgroup->vnodeGid + i; - if (pVnode == pRmVnode) { - rmVnodeVer = mnodeGetVgidVer(pVnode->vver); - mTrace("vgId:%d, check vgroup status, vindex:%d dnode:%d status:%s role:%s vver:%d is watching", pVgroup->vgId, i, - pVnode->dnodeId, dnodeStatus[pVnode->pDnode->status], syncRole[pVnode->role], rmVnodeVer); - } - } - - bool isReady = false; - for (int32_t i = 0; i < pVgroup->numOfVnodes; ++i) { - SVnodeGid *pVnode = pVgroup->vnodeGid + i; - SDnodeObj *pDnode = pVnode->pDnode; - if (pVnode == pRmVnode) continue; - int32_t vver = mnodeGetVgidVer(pVnode->vver); - - mTrace("vgId:%d, check vgroup status, vindex:%d dnode:%d status:%s role:%s vver:%d, rmvver:%d", pVgroup->vgId, i, - pVnode->dnodeId, dnodeStatus[pDnode->status], syncRole[pVnode->role], vver, rmVnodeVer); - if (pDnode->status == TAOS_DN_STATUS_DROPPING) continue; - if (pDnode->status == TAOS_DN_STATUS_OFFLINE) continue; - if (pVnode->role != TAOS_SYNC_ROLE_SLAVE && pVnode->role != TAOS_SYNC_ROLE_MASTER) continue; - - if (rmVnodeVer == 0 || vver >= rmVnodeVer) { - mInfo("vgId:%d, is ready for vindex:%d in dnode:%d status:%s role:%s vver:%d larger than rmvver:%d", - pVgroup->vgId, i, pVnode->dnodeId, dnodeStatus[pDnode->status], syncRole[pVnode->role], vver, rmVnodeVer); - isReady = true; - } - } - - return isReady; -} - -/** - * desc: remove one vnode from vgroup - * all vnodes in vgroup should in ready state, except the balancing one - **/ -static int32_t bnRemoveVnode(SVgObj *pVgroup) { - if (pVgroup->numOfVnodes <= 1) return -1; - - SVnodeGid *pSelVnode = &pVgroup->vnodeGid[pVgroup->numOfVnodes - 1]; - mDebug("vgId:%d, vnode in dnode:%d will be dropped", pVgroup->vgId, pSelVnode->dnodeId); - - if (!bnCheckVgroupReady(pVgroup, pSelVnode)) { - mDebug("vgId:%d, is not ready", pVgroup->vgId); - return -1; - } else { - mInfo("vgId:%d, is ready, discard dnode:%d", pVgroup->vgId, pSelVnode->dnodeId); - bnDiscardVnode(pVgroup, pSelVnode); - return TSDB_CODE_SUCCESS; - } -} - -static bool bnCheckDnodeInVgroup(SDnodeObj *pDnode, SVgObj *pVgroup) { - for (int32_t i = 0; i < pVgroup->numOfVnodes; ++i) { - SVnodeGid *pGid = &pVgroup->vnodeGid[i]; - if (pGid->dnodeId == 0) break; - if (pGid->dnodeId == pDnode->dnodeId) { - return true; - } - } - - return false; -} - -static SDnodeObj *bnGetAvailDnode(SVgObj *pVgroup) { - for (int32_t i = 0; i < tsBnDnodes.size; ++i) { - SDnodeObj *pDnode = tsBnDnodes.list[i]; - if (bnCheckDnodeInVgroup(pDnode, pVgroup)) continue; - if (!bnCheckFree(pDnode)) continue; - - mDebug("vgId:%d, add vnode to dnode:%d", pVgroup->vgId, pDnode->dnodeId); - return pDnode; - } - - return NULL; -} - -static int32_t bnAddVnode(SVgObj *pVgroup, SDnodeObj *pSrcDnode, SDnodeObj *pDestDnode) { - if (pDestDnode == NULL || pSrcDnode == pDestDnode) { - return TSDB_CODE_MND_DNODE_NOT_EXIST; - } - - SVnodeGid vnodeGids[TSDB_MAX_REPLICA]; - memcpy(&vnodeGids, &pVgroup->vnodeGid, sizeof(SVnodeGid) * TSDB_MAX_REPLICA); - - int32_t numOfVnodes = pVgroup->numOfVnodes; - vnodeGids[numOfVnodes].dnodeId = pDestDnode->dnodeId; - vnodeGids[numOfVnodes].pDnode = pDestDnode; - numOfVnodes++; - - // move the src vnode to the end - for (int32_t v = 0; v < numOfVnodes; ++v) { - if (pSrcDnode != NULL && pSrcDnode->dnodeId == vnodeGids[v].dnodeId) { - bnSwapVnodeGid(&vnodeGids[v], &vnodeGids[numOfVnodes - 1]); - pVgroup->lbDnodeId = pSrcDnode->dnodeId; - break; - } - } - - // adjust the vgroup postion - if (pSrcDnode == NULL) { - bnAdjustVnodeIndex(pVgroup); - } - - memcpy(&pVgroup->vnodeGid, &vnodeGids, sizeof(SVnodeGid) * TSDB_MAX_REPLICA); - pVgroup->numOfVnodes = numOfVnodes; - atomic_add_fetch_32(&pDestDnode->openVnodes, 1); - - mnodeUpdateVgroup(pVgroup); - - return TSDB_CODE_SUCCESS; -} - -static bool bnMonitorBalance() { - if (tsBnDnodes.size < 2) return false; - - mDebug("monitor dnodes for balance, avail:%d", tsBnDnodes.size); - for (int32_t src = tsBnDnodes.size - 1; src >= 0; --src) { - SDnodeObj *pDnode = tsBnDnodes.list[src]; - mDebug("%d-dnode:%d, state:%s, score:%.1f, cores:%d, vnodes:%d", tsBnDnodes.size - src - 1, pDnode->dnodeId, - dnodeStatus[pDnode->status], pDnode->score, pDnode->numOfCores, pDnode->openVnodes); - } - - float scoresDiff = tsBnDnodes.list[tsBnDnodes.size - 1]->score - tsBnDnodes.list[0]->score; - if (scoresDiff < 0.01) { - mDebug("all dnodes:%d is already balanced, scoreDiff:%.1f", tsBnDnodes.size, scoresDiff); - return false; - } - - for (int32_t src = tsBnDnodes.size - 1; src > 0; --src) { - SDnodeObj *pSrcDnode = tsBnDnodes.list[src]; - float srcScore = bnTryCalcDnodeScore(pSrcDnode, -1); - if (tsEnableBalance == 0 && pSrcDnode->status != TAOS_DN_STATUS_DROPPING) { - continue; - } - - void *pIter = NULL; - while (1) { - SVgObj *pVgroup; - pIter = mnodeGetNextVgroup(pIter, &pVgroup); - if (pVgroup == NULL) break; - - if (bnCheckDnodeInVgroup(pSrcDnode, pVgroup)) { - for (int32_t dest = 0; dest < src; dest++) { - SDnodeObj *pDestDnode = tsBnDnodes.list[dest]; - if (bnCheckDnodeInVgroup(pDestDnode, pVgroup)) continue; - if (taosGetTimestampMs() - pDestDnode->createdTime < 2000) continue; - - float destScore = bnTryCalcDnodeScore(pDestDnode, 1); - if (srcScore + 0.0001 < destScore) continue; - if (!bnCheckFree(pDestDnode)) continue; - - mDebug("vgId:%d, balance from dnode:%d to dnode:%d, srcScore:%.1f:%.1f, destScore:%.1f:%.1f", - pVgroup->vgId, pSrcDnode->dnodeId, pDestDnode->dnodeId, pSrcDnode->score, - srcScore, pDestDnode->score, destScore); - bnAddVnode(pVgroup, pSrcDnode, pDestDnode); - mnodeDecVgroupRef(pVgroup); - mnodeCancelGetNextVgroup(pIter); - return true; - } - } - - mnodeDecVgroupRef(pVgroup); - } - } - - return false; -} - -// if mgmt changed to master -// 1. reset balanceAccessSquence to zero -// 2. reset state of dnodes to offline -// 3. reset lastAccess of dnodes to zero -void bnReset() { - void * pIter = NULL; - SDnodeObj *pDnode = NULL; - while (1) { - pIter = mnodeGetNextDnode(pIter, &pDnode); - if (pDnode == NULL) break; - - // while master change, should reset dnode to offline - mInfo("dnode:%d set access:%" PRId64 " to 0", pDnode->dnodeId, pDnode->lastAccess); - pDnode->lastAccess = 0; - if (pDnode->status != TAOS_DN_STATUS_DROPPING) { - pDnode->status = TAOS_DN_STATUS_OFFLINE; - pDnode->offlineReason = TAOS_DN_OFF_STATUS_NOT_RECEIVED; - } - - mnodeDecDnodeRef(pDnode); - } - - tsAccessSquence = 0; -} - -static bool bnMonitorVgroups() { - void * pIter = NULL; - SVgObj *pVgroup = NULL; - bool hasUpdatingVgroup = false; - - while (1) { - pIter = mnodeGetNextVgroup(pIter, &pVgroup); - if (pVgroup == NULL || pVgroup->pDb == NULL) break; - - int32_t dbReplica = pVgroup->pDb->cfg.replications; - int32_t vgReplica = pVgroup->numOfVnodes; - int32_t code = -1; - - if (vgReplica > dbReplica) { - mInfo("vgId:%d, replica:%d numOfVnodes:%d, try remove one vnode", pVgroup->vgId, dbReplica, vgReplica); - hasUpdatingVgroup = true; - code = bnRemoveVnode(pVgroup); - } else if (vgReplica < dbReplica) { - mInfo("vgId:%d, replica:%d numOfVnodes:%d, try add one vnode", pVgroup->vgId, dbReplica, vgReplica); - hasUpdatingVgroup = true; - - SDnodeObj *pAvailDnode = bnGetAvailDnode(pVgroup); - if (pAvailDnode == NULL) { - code = TSDB_CODE_MND_DNODE_NOT_EXIST; - } else { - code = bnAddVnode(pVgroup, NULL, pAvailDnode); - } - } - - mnodeDecVgroupRef(pVgroup); - if (code == TSDB_CODE_SUCCESS) { - mnodeCancelGetNextVgroup(pIter); - break; - } - } - - return hasUpdatingVgroup; -} - -static bool bnMonitorDnodeDropping(SDnodeObj *pDnode) { - mDebug("dnode:%d, in dropping state", pDnode->dnodeId); - - void * pIter = NULL; - bool hasThisDnode = false; - while (1) { - SVgObj *pVgroup = NULL; - pIter = mnodeGetNextVgroup(pIter, &pVgroup); - if (pVgroup == NULL) break; - - hasThisDnode = bnCheckDnodeInVgroup(pDnode, pVgroup); - mnodeDecVgroupRef(pVgroup); - - if (hasThisDnode) { - mnodeCancelGetNextVgroup(pIter); - break; - } - } - - if (!hasThisDnode) { - mInfo("dnode:%d, dropped for all vnodes are moving to other dnodes", pDnode->dnodeId); - mnodeDropDnode(pDnode, NULL); - return true; - } - - return false; -} - -static bool bnMontiorDropping() { - void *pIter = NULL; - SDnodeObj *pDnode = NULL; - - while (1) { - mnodeDecDnodeRef(pDnode); - pIter = mnodeGetNextDnode(pIter, &pDnode); - if (pDnode == NULL) break; - - if (pDnode->status == TAOS_DN_STATUS_OFFLINE) { - if (pDnode->lastAccess + tsOfflineThreshold > tsAccessSquence) continue; - if (dnodeIsMasterEp(pDnode->dnodeEp)) continue; - if (mnodeGetDnodesNum() <= 1) continue; - - mLInfo("dnode:%d, set to removing state for it offline:%" PRId64 " seconds", pDnode->dnodeId, - tsAccessSquence - pDnode->lastAccess); - - pDnode->status = TAOS_DN_STATUS_DROPPING; - mnodeUpdateDnode(pDnode); - mnodeDecDnodeRef(pDnode); - mnodeCancelGetNextDnode(pIter); - return true; - } - - if (pDnode->status == TAOS_DN_STATUS_DROPPING) { - bool ret = bnMonitorDnodeDropping(pDnode); - mnodeDecDnodeRef(pDnode); - mnodeCancelGetNextDnode(pIter); - return ret; - } - } - - return false; -} - -bool bnStart() { - if (!sdbIsMaster()) return false; - - bnLock(); - bnAccquireDnodes(); - - bnMonitorDnodeModule(); - - bool updateSoon = bnMontiorDropping(); - - if (!updateSoon) { - updateSoon = bnMonitorVgroups(); - } - - if (!updateSoon) { - updateSoon = bnMonitorBalance(); - } - - bnReleaseDnodes(); - bnUnLock(); - - return updateSoon; -} - -static void bnSetVgroupOffline(SDnodeObj* pDnode) { - void *pIter = NULL; - while (1) { - SVgObj *pVgroup; - pIter = mnodeGetNextVgroup(pIter, &pVgroup); - if (pVgroup == NULL) break; - - for (int32_t i = 0; i < pVgroup->numOfVnodes; ++i) { - if (pVgroup->vnodeGid[i].pDnode == pDnode) { - pVgroup->vnodeGid[i].role = TAOS_SYNC_ROLE_OFFLINE; - } - } - mnodeDecVgroupRef(pVgroup); - } -} - -void bnCheckStatus() { - void * pIter = NULL; - SDnodeObj *pDnode = NULL; - - void *dnodeSdb = taosAcquireRef(tsSdbRid, tsDnodeRid); - if (dnodeSdb == NULL) return; - - while (1) { - pIter = mnodeGetNextDnode(pIter, &pDnode); - if (pDnode == NULL) break; - if (tsAccessSquence - pDnode->lastAccess > 3) { - if (pDnode->status != TAOS_DN_STATUS_DROPPING && pDnode->status != TAOS_DN_STATUS_OFFLINE) { - pDnode->status = TAOS_DN_STATUS_OFFLINE; - pDnode->offlineReason = TAOS_DN_OFF_STATUS_MSG_TIMEOUT; - mInfo("dnode:%d, set to offline state, access seq:%" PRId64 " last seq:%" PRId64 " laststat:%d", pDnode->dnodeId, - tsAccessSquence, pDnode->lastAccess, pDnode->status); - bnSetVgroupOffline(pDnode); - bnStartTimer(3000); - } - } - mnodeDecDnodeRef(pDnode); - } - - taosReleaseRef(tsSdbRid, tsDnodeRid); -} - -void bnCheckModules() { - if (sdbIsMaster()) { - bnLock(); - bnAccquireDnodes(); - bnMonitorDnodeModule(); - bnReleaseDnodes(); - bnUnLock(); - } -} - -int32_t bnInit() { - pthread_mutex_init(&tsBnMgmt.mutex, NULL); - bnInitDnodes(); - bnInitThread(); - bnReset(); - - return 0; -} - -void bnCleanUp() { - bnCleanupThread(); - bnCleanupDnodes(); - pthread_mutex_destroy(&tsBnMgmt.mutex); -} - -int32_t bnDropDnode(SDnodeObj *pDnode) { - int32_t totalFreeVnodes = 0; - void * pIter = NULL; - SDnodeObj *pTempDnode = NULL; - - while (1) { - pIter = mnodeGetNextDnode(pIter, &pTempDnode); - if (pTempDnode == NULL) break; - - if (pTempDnode != pDnode && bnCheckFree(pTempDnode)) { - totalFreeVnodes += (TSDB_MAX_VNODES - pTempDnode->openVnodes); - } - - mnodeDecDnodeRef(pTempDnode); - } - - if (pDnode->openVnodes > totalFreeVnodes) { - mError("dnode:%d, openVnodes:%d totalFreeVnodes:%d no enough dnodes", pDnode->dnodeId, pDnode->openVnodes, totalFreeVnodes); - return TSDB_CODE_MND_NO_ENOUGH_DNODES; - } - - pDnode->status = TAOS_DN_STATUS_DROPPING; - mnodeUpdateDnode(pDnode); - - bnStartTimer(1100); - - return TSDB_CODE_SUCCESS; -} - -int32_t bnDnodeCanCreateMnode(struct SDnodeObj *pDnode) { - if (pDnode == NULL) - return 0; - - if (pDnode->isMgmt || pDnode->alternativeRole == TAOS_DN_ALTERNATIVE_ROLE_VNODE - || pDnode->status == TAOS_DN_STATUS_DROPPING - || pDnode->status == TAOS_DN_STATUS_OFFLINE) { - return 0; - } else { - return 1; - } -} - -static void bnMonitorDnodeModule() { - int32_t numOfMnodes = mnodeGetMnodesNum(); - if (numOfMnodes >= tsNumOfMnodes) return; - - for (int32_t i = 0; i < tsBnDnodes.size; ++i) { - SDnodeObj *pDnode = tsBnDnodes.list[i]; - if (pDnode == NULL) break; - - if (!bnDnodeCanCreateMnode(pDnode)) continue; - - mLInfo("dnode:%d, numOfMnodes:%d expect:%d, create mnode in this dnode", pDnode->dnodeId, numOfMnodes, tsNumOfMnodes); - mnodeCreateMnode(pDnode->dnodeId, pDnode->dnodeEp, true); - -#if 0 - // Only create one mnode each time - return; -#else - numOfMnodes = mnodeGetMnodesNum(); - if (numOfMnodes >= tsNumOfMnodes) return; -#endif - } -} - -int32_t bnAlterDnode(struct SDnodeObj *pSrcDnode, int32_t vnodeId, int32_t dnodeId) { - if (!sdbIsMaster()) { - mError("dnode:%d, failed to alter vgId:%d to dnode:%d, for self not master", pSrcDnode->dnodeId, vnodeId, dnodeId); - return TSDB_CODE_MND_DNODE_NOT_EXIST; - } - - if (tsEnableBalance != 0) { - mError("dnode:%d, failed to alter vgId:%d to dnode:%d, for balance enabled", pSrcDnode->dnodeId, vnodeId, dnodeId); - return TSDB_CODE_MND_BALANCE_ENABLED; - } - - SVgObj *pVgroup = mnodeGetVgroup(vnodeId); - if (pVgroup == NULL) { - mError("dnode:%d, failed to alter vgId:%d to dnode:%d, for vgroup not exist", pSrcDnode->dnodeId, vnodeId, dnodeId); - return TSDB_CODE_MND_VGROUP_NOT_EXIST; - } - - SDnodeObj *pDestDnode = mnodeGetDnode(dnodeId); - if (pDestDnode == NULL) { - mnodeDecVgroupRef(pVgroup); - mError("dnode:%d, failed to alter vgId:%d to dnode:%d, for dnode not exist", pSrcDnode->dnodeId, vnodeId, dnodeId); - return TSDB_CODE_MND_DNODE_NOT_EXIST; - } - - bnLock(); - bnAccquireDnodes(); - - int32_t code = TSDB_CODE_SUCCESS; - if (!bnCheckDnodeInVgroup(pSrcDnode, pVgroup)) { - mError("dnode:%d, failed to alter vgId:%d to dnode:%d, vgroup not in dnode:%d", pSrcDnode->dnodeId, vnodeId, - dnodeId, pSrcDnode->dnodeId); - code = TSDB_CODE_MND_VGROUP_NOT_IN_DNODE; - } else if (bnCheckDnodeInVgroup(pDestDnode, pVgroup)) { - mError("dnode:%d, failed to alter vgId:%d to dnode:%d, vgroup already in dnode:%d", pSrcDnode->dnodeId, vnodeId, - dnodeId, dnodeId); - code = TSDB_CODE_MND_VGROUP_ALREADY_IN_DNODE; - } else if (!bnCheckFree(pDestDnode)) { - mError("dnode:%d, failed to alter vgId:%d to dnode:%d, for dnode:%d not free", pSrcDnode->dnodeId, vnodeId, dnodeId, - dnodeId); - code = TSDB_CODE_MND_DNODE_NOT_FREE; - } else { - code = bnAddVnode(pVgroup, pSrcDnode, pDestDnode); - mInfo("dnode:%d, alter vgId:%d to dnode:%d, result:%s", pSrcDnode->dnodeId, vnodeId, dnodeId, tstrerror(code)); - } - - bnReleaseDnodes(); - bnUnLock(); - - mnodeDecVgroupRef(pVgroup); - mnodeDecDnodeRef(pDestDnode); - - return code; -} diff --git a/src/balance/src/bnScore.c b/src/balance/src/bnScore.c deleted file mode 100644 index 04a14357c9..0000000000 --- a/src/balance/src/bnScore.c +++ /dev/null @@ -1,321 +0,0 @@ -/* - * 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 . - */ - -#define _DEFAULT_SOURCE -#include "os.h" -#include "tglobal.h" -#include "mnodeShow.h" -#include "mnodeUser.h" -#include "bnScore.h" - -SBnDnodes tsBnDnodes; - -static int32_t bnGetScoresMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pConn); -static int32_t bnRetrieveScores(SShowObj *pShow, char *data, int32_t rows, void *pConn); - -static int32_t bnCalcCpuScore(SDnodeObj *pDnode) { - if (pDnode->cpuAvgUsage < 80) - return 0; - else if (pDnode->cpuAvgUsage < 90) - return 10; - else - return 50; -} - -static int32_t bnCalcMemoryScore(SDnodeObj *pDnode) { - if (pDnode->memoryAvgUsage < 80) - return 0; - else if (pDnode->memoryAvgUsage < 90) - return 10; - else - return 50; -} - -static int32_t bnCalcDiskScore(SDnodeObj *pDnode) { - if (pDnode->diskAvgUsage < 80) - return 0; - else if (pDnode->diskAvgUsage < 90) - return 10; - else - return 50; -} - -static int32_t bnCalcBandScore(SDnodeObj *pDnode) { - if (pDnode->bandwidthUsage < 30) - return 0; - else if (pDnode->bandwidthUsage < 80) - return 10; - else - return 50; -} - -static float bnCalcModuleScore(SDnodeObj *pDnode) { - if (pDnode->numOfCores <= 0) return 0; - if (pDnode->isMgmt) { - return (float)tsMnodeEqualVnodeNum / pDnode->numOfCores; - } - return 0; -} - -static float bnCalcVnodeScore(SDnodeObj *pDnode, int32_t extra) { - if (pDnode->status == TAOS_DN_STATUS_DROPPING || pDnode->status == TAOS_DN_STATUS_OFFLINE) return 100000000; - if (pDnode->numOfCores <= 0) return 0; - return (float)(pDnode->openVnodes + extra) / pDnode->numOfCores; -} - -/** - * calc singe score, such as cpu/memory/disk/bandwitdh/vnode - * 1. get the score config - * 2. if the value is out of range, use border data - * 3. otherwise use interpolation method - **/ -static void bnCalcDnodeScore(SDnodeObj *pDnode) { - pDnode->score = bnCalcCpuScore(pDnode) + bnCalcMemoryScore(pDnode) + bnCalcDiskScore(pDnode) + - bnCalcBandScore(pDnode) + bnCalcModuleScore(pDnode) + bnCalcVnodeScore(pDnode, 0) + - pDnode->customScore; -} - -float bnTryCalcDnodeScore(SDnodeObj *pDnode, int32_t extra) { - int32_t systemScore = bnCalcCpuScore(pDnode) + bnCalcMemoryScore(pDnode) + bnCalcDiskScore(pDnode) + - bnCalcBandScore(pDnode); - float moduleScore = bnCalcModuleScore(pDnode); - float vnodeScore = bnCalcVnodeScore(pDnode, extra); - - float score = systemScore + moduleScore + vnodeScore + pDnode->customScore; - return score; -} - -void bnInitDnodes() { - mnodeAddShowMetaHandle(TSDB_MGMT_TABLE_SCORES, bnGetScoresMeta); - mnodeAddShowRetrieveHandle(TSDB_MGMT_TABLE_SCORES, bnRetrieveScores); - mnodeAddShowFreeIterHandle(TSDB_MGMT_TABLE_SCORES, mnodeCancelGetNextDnode); - - memset(&tsBnDnodes, 0, sizeof(SBnDnodes)); - tsBnDnodes.maxSize = 16; - tsBnDnodes.list = calloc(tsBnDnodes.maxSize, sizeof(SDnodeObj *)); -} - -void bnCleanupDnodes() { - if (tsBnDnodes.list != NULL) { - free(tsBnDnodes.list); - tsBnDnodes.list = NULL; - } -} - -static void bnCheckDnodesSize(int32_t dnodesNum) { - if (tsBnDnodes.maxSize <= dnodesNum) { - int32_t maxSize = dnodesNum * 2; - SDnodeObj** list1 = NULL; - int32_t retry = 0; - - while(list1 == NULL && retry++ < 3) { - list1 = realloc(tsBnDnodes.list, maxSize * sizeof(SDnodeObj *)); - } - if(list1) { - tsBnDnodes.list = list1; - tsBnDnodes.maxSize = maxSize; - } - } -} - -void bnAccquireDnodes() { - int32_t dnodesNum = mnodeGetDnodesNum(); - bnCheckDnodesSize(dnodesNum); - - void * pIter = NULL; - SDnodeObj *pDnode = NULL; - int32_t dnodeIndex = 0; - - while (1) { - if (dnodeIndex >= dnodesNum) { - mnodeCancelGetNextDnode(pIter); - break; - } - - pIter = mnodeGetNextDnode(pIter, &pDnode); - if (pDnode == NULL) break; - if (pDnode->status == TAOS_DN_STATUS_OFFLINE) { - mnodeDecDnodeRef(pDnode); - continue; - } - - bnCalcDnodeScore(pDnode); - - int32_t orderIndex = dnodeIndex; - for (; orderIndex > 0; --orderIndex) { - if (pDnode->score > tsBnDnodes.list[orderIndex - 1]->score) { - break; - } - tsBnDnodes.list[orderIndex] = tsBnDnodes.list[orderIndex - 1]; - } - tsBnDnodes.list[orderIndex] = pDnode; - dnodeIndex++; - } - - tsBnDnodes.size = dnodeIndex; -} - -void bnReleaseDnodes() { - for (int32_t i = 0; i < tsBnDnodes.size; ++i) { - SDnodeObj *pDnode = tsBnDnodes.list[i]; - if (pDnode != NULL) { - mnodeDecDnodeRef(pDnode); - } - } -} - -static int32_t bnGetScoresMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pConn) { - SUserObj *pUser = mnodeGetUserFromConn(pConn); - if (pUser == NULL) return 0; - - if (strcmp(pUser->pAcct->user, "root") != 0) { - mnodeDecUserRef(pUser); - return TSDB_CODE_MND_NO_RIGHTS; - } - - int32_t cols = 0; - SSchema *pSchema = pMeta->schema; - - pShow->bytes[cols] = 2; - pSchema[cols].type = TSDB_DATA_TYPE_SMALLINT; - strcpy(pSchema[cols].name, "id"); - pSchema[cols].bytes = htons(pShow->bytes[cols]); - cols++; - - pShow->bytes[cols] = 4; - pSchema[cols].type = TSDB_DATA_TYPE_FLOAT; - strcpy(pSchema[cols].name, "system scores"); - pSchema[cols].bytes = htons(pShow->bytes[cols]); - cols++; - - pShow->bytes[cols] = 4; - pSchema[cols].type = TSDB_DATA_TYPE_FLOAT; - strcpy(pSchema[cols].name, "custom scores"); - pSchema[cols].bytes = htons(pShow->bytes[cols]); - cols++; - - pShow->bytes[cols] = 4; - pSchema[cols].type = TSDB_DATA_TYPE_FLOAT; - strcpy(pSchema[cols].name, "module scores"); - pSchema[cols].bytes = htons(pShow->bytes[cols]); - cols++; - - pShow->bytes[cols] = 4; - pSchema[cols].type = TSDB_DATA_TYPE_FLOAT; - strcpy(pSchema[cols].name, "vnode scores"); - pSchema[cols].bytes = htons(pShow->bytes[cols]); - cols++; - - pShow->bytes[cols] = 4; - pSchema[cols].type = TSDB_DATA_TYPE_FLOAT; - strcpy(pSchema[cols].name, "total scores"); - pSchema[cols].bytes = htons(pShow->bytes[cols]); - cols++; - - pShow->bytes[cols] = 4; - pSchema[cols].type = TSDB_DATA_TYPE_INT; - strcpy(pSchema[cols].name, "open vnodes"); - pSchema[cols].bytes = htons(pShow->bytes[cols]); - cols++; - - pShow->bytes[cols] = 4; - pSchema[cols].type = TSDB_DATA_TYPE_INT; - strcpy(pSchema[cols].name, "cpu cores"); - pSchema[cols].bytes = htons(pShow->bytes[cols]); - cols++; - - pShow->bytes[cols] = 18 + VARSTR_HEADER_SIZE; - pSchema[cols].type = TSDB_DATA_TYPE_BINARY; - strcpy(pSchema[cols].name, "balance state"); - pSchema[cols].bytes = htons(pShow->bytes[cols]); - cols++; - - pMeta->numOfColumns = htons(cols); - pShow->numOfColumns = cols; - - pShow->offset[0] = 0; - for (int32_t i = 1; i < cols; ++i) { - pShow->offset[i] = pShow->offset[i - 1] + pShow->bytes[i - 1]; - } - - pShow->numOfRows = mnodeGetDnodesNum(); - pShow->rowSize = pShow->offset[cols - 1] + pShow->bytes[cols - 1]; - pShow->pIter = NULL; - - mnodeDecUserRef(pUser); - - return 0; -} - -static int32_t bnRetrieveScores(SShowObj *pShow, char *data, int32_t rows, void *pConn) { - int32_t numOfRows = 0; - SDnodeObj *pDnode = NULL; - char * pWrite; - int32_t cols = 0; - - while (numOfRows < rows) { - pShow->pIter = mnodeGetNextDnode(pShow->pIter, &pDnode); - if (pDnode == NULL) break; - - int32_t systemScore = bnCalcCpuScore(pDnode) + bnCalcMemoryScore(pDnode) + bnCalcDiskScore(pDnode) + bnCalcBandScore(pDnode); - float moduleScore = bnCalcModuleScore(pDnode); - float vnodeScore = bnCalcVnodeScore(pDnode, 0); - - cols = 0; - - pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - *(int16_t *)pWrite = pDnode->dnodeId; - cols++; - - pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - *(float *)pWrite = (float)systemScore; - cols++; - - pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - *(float *)pWrite = (float)pDnode->customScore; - cols++; - - pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - *(float *)pWrite = (float)moduleScore; - cols++; - - pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - *(float *)pWrite = (float)vnodeScore; - cols++; - - pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - *(float *)pWrite = (float)(vnodeScore + moduleScore + pDnode->customScore + systemScore); - cols++; - - pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - *(int32_t *)pWrite = pDnode->openVnodes; - cols++; - - pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - *(int32_t *)pWrite = pDnode->numOfCores; - cols++; - - pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - STR_TO_VARSTR(pWrite, dnodeStatus[pDnode->status]); - cols++; - - numOfRows++; - mnodeDecDnodeRef(pDnode); - } - - mnodeVacuumResult(data, pShow->numOfColumns, numOfRows, rows, pShow); - pShow->numOfReads += numOfRows; - return numOfRows; -} diff --git a/src/balance/src/bnThread.c b/src/balance/src/bnThread.c deleted file mode 100644 index 20da83ccba..0000000000 --- a/src/balance/src/bnThread.c +++ /dev/null @@ -1,137 +0,0 @@ -/* - * 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 . - */ - -#define _DEFAULT_SOURCE -#include "os.h" -#include "ttimer.h" -#include "tglobal.h" -#include "mnodeSdb.h" -#include "bnThread.h" - -static SBnThread tsBnThread; - -static void *bnThreadFunc(void *arg) { - setThreadName("balance"); - - while (1) { - pthread_mutex_lock(&tsBnThread.mutex); - if (tsBnThread.stop) { - pthread_mutex_unlock(&tsBnThread.mutex); - break; - } - - pthread_cond_wait(&tsBnThread.cond, &tsBnThread.mutex); - mDebug("balance thread wakes up to work"); - bool updateSoon = bnStart(); - mDebug("balance thread finished this poll, updateSoon:%d", updateSoon); - - bnStartTimer(updateSoon ? 1000 : -1); - pthread_mutex_unlock(&(tsBnThread.mutex)); - } - - mDebug("balance thread is stopped"); - return NULL; -} - -int32_t bnInitThread() { - memset(&tsBnThread, 0, sizeof(SBnThread)); - tsBnThread.stop = false; - pthread_mutex_init(&tsBnThread.mutex, NULL); - pthread_cond_init(&tsBnThread.cond, NULL); - - pthread_attr_t thattr; - pthread_attr_init(&thattr); - pthread_attr_setdetachstate(&thattr, PTHREAD_CREATE_JOINABLE); - int32_t ret = pthread_create(&tsBnThread.thread, &thattr, bnThreadFunc, NULL); - pthread_attr_destroy(&thattr); - - if (ret != 0) { - mError("failed to create balance thread since %s", strerror(ret)); - return -1; - } - - bnStartTimer(2000); - mDebug("balance thread is created"); - return 0; -} - -void bnCleanupThread() { - mDebug("balance thread will be cleanup"); - - if (tsBnThread.timer != NULL) { - taosTmrStopA(&tsBnThread.timer); - tsBnThread.timer = NULL; - mDebug("stop balance timer"); - } - - pthread_mutex_lock(&tsBnThread.mutex); - tsBnThread.stop = true; - pthread_cond_signal(&tsBnThread.cond); - pthread_mutex_unlock(&(tsBnThread.mutex)); - pthread_join(tsBnThread.thread, NULL); - - pthread_cond_destroy(&tsBnThread.cond); - pthread_mutex_destroy(&tsBnThread.mutex); -} - -static void bnPostSignal() { - if (tsBnThread.stop) return; - - pthread_mutex_lock(&tsBnThread.mutex); - pthread_cond_signal(&tsBnThread.cond); - pthread_mutex_unlock(&(tsBnThread.mutex)); -} - -/* - * once sdb work as mater, then tsAccessSquence reset to zero - * increase tsAccessSquence every balance interval - */ - -static void bnProcessTimer(void *handle, void *tmrId) { - if (!sdbIsMaster()) return; - if (tsBnThread.stop) return; - - tsBnThread.timer = NULL; - bnStartTimer(-1); - bnCheckStatus(); - - if (handle == NULL) { - ++tsAccessSquence; - - if (tsAccessSquence % tsBalanceInterval == 0) { - mDebug("balance function is scheduled by timer"); - bnPostSignal(); - } - } else { - int64_t mseconds = (int64_t)handle; - mDebug("balance function is scheduled by event for %" PRId64 " mseconds arrived", mseconds); - bnPostSignal(); - } -} - -void bnStartTimer(int32_t mseconds) { - if (tsBnThread.stop) return; - - if (mseconds != -1) { - mTrace("balance function will be called after %d ms", mseconds); - taosTmrReset(bnProcessTimer, mseconds, (void *)(int64_t)mseconds, tsMnodeTmr, &tsBnThread.timer); - } else { - taosTmrReset(bnProcessTimer, tsStatusInterval * 1000, NULL, tsMnodeTmr, &tsBnThread.timer); - } -} - -void bnNotify() { - bnStartTimer(500); -} diff --git a/src/inc/http.h b/src/inc/http.h deleted file mode 100644 index 0d4c386cbf..0000000000 --- a/src/inc/http.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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_HTTP_H -#define TDENGINE_HTTP_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -int32_t httpGetReqCount(); -int32_t httpInitSystem(); -int32_t httpStartSystem(); -void httpStopSystem(); -void httpCleanUpSystem(); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/inc/monitor.h b/src/inc/monitor.h deleted file mode 100644 index d2e5e06487..0000000000 --- a/src/inc/monitor.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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_MONITOR_H -#define TDENGINE_MONITOR_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -typedef struct { - char * acctId; - int64_t currentPointsPerSecond; - int64_t maxPointsPerSecond; - int64_t totalTimeSeries; - int64_t maxTimeSeries; - int64_t totalStorage; - int64_t maxStorage; - int64_t totalQueryTime; - int64_t maxQueryTime; - int64_t totalInbound; - int64_t maxInbound; - int64_t totalOutbound; - int64_t maxOutbound; - int64_t totalDbs; - int64_t maxDbs; - int64_t totalUsers; - int64_t maxUsers; - int64_t totalStreams; - int64_t maxStreams; - int64_t totalConns; - int64_t maxConns; - int8_t accessState; -} SAcctMonitorObj; - -int32_t monInitSystem(); -int32_t monStartSystem(); -void monStopSystem(); -void monCleanupSystem(); -void monSaveAcctLog(SAcctMonitorObj *pMonObj); -void monSaveLog(int32_t level, const char *const format, ...); -void monExecuteSQL(char *sql); -typedef void (*MonExecuteSQLCbFP)(void *param, TAOS_RES *, int code); -void monExecuteSQLWithResultCallback(char *sql, MonExecuteSQLCbFP callback, void* param); -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/inc/tacct.h b/src/inc/tacct.h deleted file mode 100644 index 52215fac52..0000000000 --- a/src/inc/tacct.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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_ACCT_H -#define TDENGINE_ACCT_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum { - ACCT_GRANT_USER, - ACCT_GRANT_DB, - ACCT_GRANT_TABLE -} EAcctGrantType; - -int32_t acctInit(); -void acctCleanUp(); -int32_t acctCheck(void *pAcct, EAcctGrantType type); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/inc/tadmin.h b/src/inc/tadmin.h deleted file mode 100644 index b7de33576a..0000000000 --- a/src/inc/tadmin.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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_ADMIN_H -#define TDENGINE_ADMIN_H - -#ifdef __cplusplus -extern "C" { -#endif - -struct HttpServer; - -void adminInitHandle(struct HttpServer* pServer); -void opInitHandle(struct HttpServer* pServer); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/inc/tbn.h b/src/inc/tbn.h deleted file mode 100644 index b35f90eb15..0000000000 --- a/src/inc/tbn.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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_BALANCE_H -#define TDENGINE_BALANCE_H - -#ifdef __cplusplus -extern "C" { -#endif - -struct SVgObj; -struct SDnodeObj; - -int32_t bnInit(); -void bnCleanUp(); -void bnNotify(); -void bnCheckModules(); -void bnReset(); -int32_t bnAllocVnodes(struct SVgObj *pVgroup); -int32_t bnAlterDnode(struct SDnodeObj *pDnode, int32_t vnodeId, int32_t dnodeId); -int32_t bnDropDnode(struct SDnodeObj *pDnode); -int32_t bnDnodeCanCreateMnode(struct SDnodeObj *pDnode); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/inc/tgrant.h b/src/inc/tgrant.h deleted file mode 100644 index f62a521b6c..0000000000 --- a/src/inc/tgrant.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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_GTANT_H -#define TDENGINE_GTANT_H - -#ifdef __cplusplus -"C" { -#endif - -typedef enum { - TSDB_GRANT_ALL, - TSDB_GRANT_TIME, - TSDB_GRANT_USER, - TSDB_GRANT_DB, - TSDB_GRANT_TIMESERIES, - TSDB_GRANT_DNODE, - TSDB_GRANT_ACCT, - TSDB_GRANT_STORAGE, - TSDB_GRANT_SPEED, - TSDB_GRANT_QUERY_TIME, - TSDB_GRANT_CONNS, - TSDB_GRANT_STREAMS, - TSDB_GRANT_CPU_CORES, -} EGrantType; - -int32_t grantInit(); -void grantCleanUp(); -void grantParseParameter(); -int32_t grantCheck(EGrantType grant); -void grantReset(EGrantType grant, uint64_t value); -void grantAdd(EGrantType grant, uint64_t value); -void grantRestore(EGrantType grant, uint64_t value); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/inc/tmqtt.h b/src/inc/tmqtt.h deleted file mode 100644 index 256e61fbae..0000000000 --- a/src/inc/tmqtt.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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_MQTT_H -#define TDENGINE_MQTT_H - -#ifdef __cplusplus -extern "C" { -#endif - -int32_t mqttInitSystem(); -int32_t mqttStartSystem(); -void mqttStopSystem(); -void mqttCleanUpSystem(); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/inc/tp.h b/src/inc/tp.h deleted file mode 100644 index 1d6570898e..0000000000 --- a/src/inc/tp.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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_TP -#define TDENGINE_TP - -#ifdef __cplusplus -extern "C" { -#endif - -int32_t tpInit(); -void tpCleanUp(); -void tpUpdateTs(int32_t vgId, int64_t *seq, void *pMsg); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/inc/tsync.h b/src/inc/tsync.h deleted file mode 100644 index d1b68e3f5a..0000000000 --- a/src/inc/tsync.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * 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_SYNC_H -#define TDENGINE_SYNC_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define TAOS_SYNC_MAX_REPLICA 5 -#define TAOS_SYNC_MAX_INDEX 0x7FFFFFFF - -typedef enum { - TAOS_SYNC_ROLE_OFFLINE = 0, - TAOS_SYNC_ROLE_UNSYNCED = 1, - TAOS_SYNC_ROLE_SYNCING = 2, - TAOS_SYNC_ROLE_SLAVE = 3, - TAOS_SYNC_ROLE_MASTER = 4 -} ESyncRole; - -typedef enum { - TAOS_SYNC_STATUS_INIT = 0, - TAOS_SYNC_STATUS_START = 1, - TAOS_SYNC_STATUS_FILE = 2, - TAOS_SYNC_STATUS_CACHE = 3 -} ESyncStatus; - -typedef struct { - uint32_t nodeId; // node ID assigned by TDengine - uint16_t nodePort; // node sync Port - char nodeFqdn[TSDB_FQDN_LEN]; // node FQDN -} SNodeInfo; - -typedef struct { - int8_t quorum; // number of confirms required, >=1 - int8_t replica; // number of replications, >=1 - SNodeInfo nodeInfo[TAOS_SYNC_MAX_REPLICA]; -} SSyncCfg; - -typedef struct { - int32_t selfIndex; - uint32_t nodeId[TAOS_SYNC_MAX_REPLICA]; - int32_t role[TAOS_SYNC_MAX_REPLICA]; -} SNodesRole; - -// get the wal file from index or after -// return value, -1: error, 1:more wal files, 0:last WAL. if name[0]==0, no WAL file -typedef int32_t (*FGetWalInfo)(int32_t vgId, char *fileName, int64_t *fileId); - -// when a forward pkt is received, call this to handle data -typedef int32_t (*FWriteToCache)(int32_t vgId, void *pHead, int32_t qtype, void *pMsg); - -// when forward is confirmed by peer, master call this API to notify app -typedef void (*FConfirmForward)(int32_t vgId, void *mhandle, int32_t code); - -// when role is changed, call this to notify app -typedef void (*FNotifyRole)(int32_t vgId, int8_t role); - -// if a number of retrieving data failed, call this to start flow control -typedef void (*FNotifyFlowCtrl)(int32_t vgId, int32_t level); - -// when data file is synced successfully, notity app -typedef void (*FStartSyncFile)(int32_t vgId); -typedef void (*FStopSyncFile)(int32_t vgId, uint64_t fversion); - -// get file version -typedef int32_t (*FGetVersion)(int32_t vgId, uint64_t *fver, uint64_t *vver); - -typedef int32_t (*FSendFile)(void *tsdb, SOCKET socketFd); -typedef int32_t (*FRecvFile)(void *tsdb, SOCKET socketFd); - -typedef struct { - int32_t vgId; // vgroup ID - uint64_t version; // initial version - SSyncCfg syncCfg; // configuration from mgmt - char path[TSDB_FILENAME_LEN]; // path to the file - void * pTsdb; - FGetWalInfo getWalInfoFp; - FWriteToCache writeToCacheFp; - FConfirmForward confirmForward; - FNotifyRole notifyRoleFp; - FNotifyFlowCtrl notifyFlowCtrlFp; - FStartSyncFile startSyncFileFp; - FStopSyncFile stopSyncFileFp; - FGetVersion getVersionFp; - FSendFile sendFileFp; - FRecvFile recvFileFp; -} SSyncInfo; - -typedef void *tsync_h; - -int32_t syncInit(); -void syncCleanUp(); - -int64_t syncStart(const SSyncInfo *); -void syncStop(int64_t rid); -int32_t syncReconfig(int64_t rid, const SSyncCfg *); -int32_t syncForwardToPeer(int64_t rid, void *pHead, void *mhandle, int32_t qtype, bool force); -void syncConfirmForward(int64_t rid, uint64_t version, int32_t code, bool force); -void syncRecover(int64_t rid); // recover from other nodes: -int32_t syncGetNodesRole(int64_t rid, SNodesRole *); - -extern char *syncRole[]; - -//global configurable parameters -extern int32_t sDebugFlag; -extern char tsArbitrator[]; -extern uint16_t tsSyncPort; - -#ifdef __cplusplus -} -#endif - -#endif // TDENGINE_SYNC_H diff --git a/src/plugins/monitor/CMakeLists.txt b/src/plugins/monitor/CMakeLists.txt deleted file mode 100644 index 8a05d63e14..0000000000 --- a/src/plugins/monitor/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8...3.20) -PROJECT(TDengine) - -INCLUDE_DIRECTORIES(inc) -INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) -INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/query/inc) -AUX_SOURCE_DIRECTORY(./src SRC) - -ADD_LIBRARY(monitor ${SRC}) - -IF (TD_SOMODE_STATIC) - TARGET_LINK_LIBRARIES(monitor taos_static) -ELSE () - TARGET_LINK_LIBRARIES(monitor taos) -ENDIF () diff --git a/src/plugins/monitor/src/monMain.c b/src/plugins/monitor/src/monMain.c deleted file mode 100644 index fea793fa86..0000000000 --- a/src/plugins/monitor/src/monMain.c +++ /dev/null @@ -1,436 +0,0 @@ -/* - * 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 . - */ - -#define _DEFAULT_SOURCE -#include "os.h" -#include "taosdef.h" -#include "taoserror.h" -#include "tlog.h" -#include "ttimer.h" -#include "tutil.h" -#include "tscUtil.h" -#include "tsclient.h" -#include "dnode.h" -#include "monitor.h" -#include "taoserror.h" - -#define monFatal(...) { if (monDebugFlag & DEBUG_FATAL) { taosPrintLog("MON FATAL ", 255, __VA_ARGS__); }} -#define monError(...) { if (monDebugFlag & DEBUG_ERROR) { taosPrintLog("MON ERROR ", 255, __VA_ARGS__); }} -#define monWarn(...) { if (monDebugFlag & DEBUG_WARN) { taosPrintLog("MON WARN ", 255, __VA_ARGS__); }} -#define monInfo(...) { if (monDebugFlag & DEBUG_INFO) { taosPrintLog("MON ", 255, __VA_ARGS__); }} -#define monDebug(...) { if (monDebugFlag & DEBUG_DEBUG) { taosPrintLog("MON ", monDebugFlag, __VA_ARGS__); }} -#define monTrace(...) { if (monDebugFlag & DEBUG_TRACE) { taosPrintLog("MON ", monDebugFlag, __VA_ARGS__); }} - -#define SQL_LENGTH 1030 -#define LOG_LEN_STR 512 -#define IP_LEN_STR TSDB_EP_LEN -#define CHECK_INTERVAL 1000 - -typedef enum { - MON_CMD_CREATE_DB, - MON_CMD_CREATE_TB_LOG, - MON_CMD_CREATE_MT_DN, - MON_CMD_CREATE_MT_ACCT, - MON_CMD_CREATE_TB_DN, - MON_CMD_CREATE_TB_ACCT_ROOT, - MON_CMD_CREATE_TB_SLOWQUERY, - MON_CMD_MAX -} EMonCmd; - -typedef enum { - MON_STATE_NOT_INIT, - MON_STATE_INITED -} EMonState; - -typedef struct { - pthread_t thread; - void * conn; - char ep[TSDB_EP_LEN]; - int8_t cmdIndex; - int8_t state; - int8_t start; // enable/disable by mnode - int8_t quiting; // taosd is quiting - char sql[SQL_LENGTH + 1]; -} SMonConn; - -static SMonConn tsMonitor = {0}; -static void monSaveSystemInfo(); -static void *monThreadFunc(void *param); -static void monBuildMonitorSql(char *sql, int32_t cmd); -extern int32_t (*monStartSystemFp)(); -extern void (*monStopSystemFp)(); -extern void (*monExecuteSQLFp)(char *sql); - -int32_t monInitSystem() { - if (tsMonitor.ep[0] == 0) { - strcpy(tsMonitor.ep, tsLocalEp); - } - - int32_t len = (int32_t)strlen(tsMonitor.ep); - for (int32_t i = 0; i < len; ++i) { - if (tsMonitor.ep[i] == ':' || tsMonitor.ep[i] == '-' || tsMonitor.ep[i] == '.') { - tsMonitor.ep[i] = '_'; - } - } - - pthread_attr_t thAttr; - pthread_attr_init(&thAttr); - pthread_attr_setdetachstate(&thAttr, PTHREAD_CREATE_JOINABLE); - - if (pthread_create(&tsMonitor.thread, &thAttr, monThreadFunc, NULL)) { - monError("failed to create thread to for monitor module, reason:%s", strerror(errno)); - return -1; - } - - pthread_attr_destroy(&thAttr); - monDebug("monitor thread is launched"); - - monStartSystemFp = monStartSystem; - monStopSystemFp = monStopSystem; - return 0; -} - -int32_t monStartSystem() { - if (taos_init()) { - return -1; - } - tsMonitor.start = 1; - monExecuteSQLFp = monExecuteSQL; - monInfo("monitor module start"); - return 0; -} - -static void *monThreadFunc(void *param) { - monDebug("starting to initialize monitor module ..."); - setThreadName("monitor"); - - while (1) { - static int32_t accessTimes = 0; - accessTimes++; - taosMsleep(1000); - - if (tsMonitor.quiting) { - tsMonitor.state = MON_STATE_NOT_INIT; - monInfo("monitor thread will quit, for taosd is quiting"); - break; - } else { - taosGetDisk(); - } - - if (tsMonitor.start == 0) { - continue; - } - - if (dnodeGetDnodeId() <= 0) { - monDebug("dnode not initialized, waiting for 3000 ms to start monitor module"); - continue; - } - - if (tsMonitor.conn == NULL) { - tsMonitor.state = MON_STATE_NOT_INIT; - tsMonitor.conn = taos_connect(NULL, "monitor", tsInternalPass, "", 0); - if (tsMonitor.conn == NULL) { - monError("failed to connect to database, reason:%s", tstrerror(terrno)); - continue; - } else { - monDebug("connect to database success"); - } - } - - if (tsMonitor.state == MON_STATE_NOT_INIT) { - int32_t code = 0; - - for (; tsMonitor.cmdIndex < MON_CMD_MAX; ++tsMonitor.cmdIndex) { - monBuildMonitorSql(tsMonitor.sql, tsMonitor.cmdIndex); - void *res = taos_query(tsMonitor.conn, tsMonitor.sql); - code = taos_errno(res); - taos_free_result(res); - - if (code != 0) { - monError("failed to exec sql:%s, reason:%s", tsMonitor.sql, tstrerror(code)); - break; - } else { - monDebug("successfully to exec sql:%s", tsMonitor.sql); - } - } - - if (tsMonitor.start && code == 0) { - tsMonitor.state = MON_STATE_INITED; - } - } - - if (tsMonitor.state == MON_STATE_INITED) { - if (accessTimes % tsMonitorInterval == 0) { - monSaveSystemInfo(); - } - } - } - - monInfo("monitor thread is stopped"); - return NULL; -} - -static void monBuildMonitorSql(char *sql, int32_t cmd) { - memset(sql, 0, SQL_LENGTH); - -#ifdef _STORAGE - char *keepValue = "30,30,30"; -#else - char *keepValue = "30"; -#endif - - if (cmd == MON_CMD_CREATE_DB) { - snprintf(sql, SQL_LENGTH, - "create database if not exists %s replica 1 days 10 keep %s cache %d " - "blocks %d precision 'us'", - tsMonitorDbName, keepValue, TSDB_MIN_CACHE_BLOCK_SIZE, TSDB_MIN_TOTAL_BLOCKS); - } else if (cmd == MON_CMD_CREATE_MT_DN) { - snprintf(sql, SQL_LENGTH, - "create table if not exists %s.dn(ts timestamp" - ", cpu_taosd float, cpu_system float, cpu_cores int" - ", mem_taosd float, mem_system float, mem_total int" - ", disk_used float, disk_total int" - ", band_speed float" - ", io_read float, io_write float" - ", req_http int, req_select int, req_insert int" - ") tags (dnodeid int, fqdn binary(%d))", - tsMonitorDbName, TSDB_FQDN_LEN); - } else if (cmd == MON_CMD_CREATE_TB_DN) { - snprintf(sql, SQL_LENGTH, "create table if not exists %s.dn%d using %s.dn tags(%d, '%s')", tsMonitorDbName, - dnodeGetDnodeId(), tsMonitorDbName, dnodeGetDnodeId(), tsLocalEp); - } else if (cmd == MON_CMD_CREATE_MT_ACCT) { - snprintf(sql, SQL_LENGTH, - "create table if not exists %s.acct(ts timestamp " - ", currentPointsPerSecond bigint, maxPointsPerSecond bigint" - ", totalTimeSeries bigint, maxTimeSeries bigint" - ", totalStorage bigint, maxStorage bigint" - ", totalQueryTime bigint, maxQueryTime bigint" - ", totalInbound bigint, maxInbound bigint" - ", totalOutbound bigint, maxOutbound bigint" - ", totalDbs smallint, maxDbs smallint" - ", totalUsers smallint, maxUsers smallint" - ", totalStreams smallint, maxStreams smallint" - ", totalConns smallint, maxConns smallint" - ", accessState smallint" - ") tags (acctId binary(%d))", - tsMonitorDbName, TSDB_USER_LEN); - } else if (cmd == MON_CMD_CREATE_TB_ACCT_ROOT) { - snprintf(sql, SQL_LENGTH, "create table if not exists %s.acct_%s using %s.acct tags('%s')", tsMonitorDbName, TSDB_DEFAULT_USER, - tsMonitorDbName, TSDB_DEFAULT_USER); - } else if (cmd == MON_CMD_CREATE_TB_SLOWQUERY) { - snprintf(sql, SQL_LENGTH, - "create table if not exists %s.slowquery(ts timestamp, username " - "binary(%d), created_time timestamp, time bigint, sql binary(%d))", - tsMonitorDbName, TSDB_TABLE_FNAME_LEN - 1, TSDB_SLOW_QUERY_SQL_LEN); - } else if (cmd == MON_CMD_CREATE_TB_LOG) { - snprintf(sql, SQL_LENGTH, - "create table if not exists %s.log(ts timestamp, level tinyint, " - "content binary(%d), ipaddr binary(%d))", - tsMonitorDbName, LOG_LEN_STR, IP_LEN_STR); - } - - sql[SQL_LENGTH] = 0; -} - -void monStopSystem() { - tsMonitor.start = 0; - tsMonitor.state = MON_STATE_NOT_INIT; - monExecuteSQLFp = NULL; - monInfo("monitor module stopped"); -} - -void monCleanupSystem() { - tsMonitor.quiting = 1; - monStopSystem(); - if (taosCheckPthreadValid(tsMonitor.thread)) { - pthread_join(tsMonitor.thread, NULL); - } - - if (tsMonitor.conn != NULL) { - taos_close(tsMonitor.conn); - tsMonitor.conn = NULL; - } - monInfo("monitor module is cleaned up"); -} - -// unit is MB -static int32_t monBuildMemorySql(char *sql) { - float sysMemoryUsedMB = 0; - bool suc = taosGetSysMemory(&sysMemoryUsedMB); - if (!suc) { - monDebug("failed to get sys memory info"); - } - - float procMemoryUsedMB = 0; - suc = taosGetProcMemory(&procMemoryUsedMB); - if (!suc) { - monDebug("failed to get proc memory info"); - } - - return sprintf(sql, ", %f, %f, %d", procMemoryUsedMB, sysMemoryUsedMB, tsTotalMemoryMB); -} - -// unit is % -static int32_t monBuildCpuSql(char *sql) { - float sysCpuUsage = 0, procCpuUsage = 0; - bool suc = taosGetCpuUsage(&sysCpuUsage, &procCpuUsage); - if (!suc) { - monDebug("failed to get cpu usage"); - } - - if (sysCpuUsage <= procCpuUsage) { - sysCpuUsage = procCpuUsage + 0.1f; - } - - return sprintf(sql, ", %f, %f, %d", procCpuUsage, sysCpuUsage, tsNumOfCores); -} - -// unit is GB -static int32_t monBuildDiskSql(char *sql) { - return sprintf(sql, ", %f, %d", tsUsedDataDirGB, (int32_t)tsTotalDataDirGB); -} - -// unit is Kb -static int32_t monBuildBandSql(char *sql) { - float bandSpeedKb = 0; - bool suc = taosGetBandSpeed(&bandSpeedKb); - if (!suc) { - monDebug("failed to get bandwidth speed"); - } - - return sprintf(sql, ", %f", bandSpeedKb); -} - -static int32_t monBuildReqSql(char *sql) { - SStatisInfo info = dnodeGetStatisInfo(); - return sprintf(sql, ", %d, %d, %d)", info.httpReqNum, info.queryReqNum, info.submitReqNum); -} - -static int32_t monBuildIoSql(char *sql) { - float readKB = 0, writeKB = 0; - bool suc = taosGetProcIO(&readKB, &writeKB); - if (!suc) { - monDebug("failed to get io info"); - } - - return sprintf(sql, ", %f, %f", readKB, writeKB); -} - -static void monSaveSystemInfo() { - int64_t ts = taosGetTimestampUs(); - char * sql = tsMonitor.sql; - int32_t pos = snprintf(sql, SQL_LENGTH, "insert into %s.dn%d values(%" PRId64, tsMonitorDbName, dnodeGetDnodeId(), ts); - - pos += monBuildCpuSql(sql + pos); - pos += monBuildMemorySql(sql + pos); - pos += monBuildDiskSql(sql + pos); - pos += monBuildBandSql(sql + pos); - pos += monBuildIoSql(sql + pos); - pos += monBuildReqSql(sql + pos); - - void *res = taos_query(tsMonitor.conn, tsMonitor.sql); - int32_t code = taos_errno(res); - taos_free_result(res); - - if (code != 0) { - monError("failed to save system info, reason:%s, sql:%s", tstrerror(code), tsMonitor.sql); - } else { - monDebug("successfully to save system info, sql:%s", tsMonitor.sql); - } -} - -static void monExecSqlCb(void *param, TAOS_RES *result, int32_t code) { - int32_t c = taos_errno(result); - if (c != TSDB_CODE_SUCCESS) { - monError("save %s failed, reason:%s", (char *)param, tstrerror(c)); - } else { - int32_t rows = taos_affected_rows(result); - monDebug("save %s succ, rows:%d", (char *)param, rows); - } - - taos_free_result(result); -} - -void monSaveAcctLog(SAcctMonitorObj *pMon) { - if (tsMonitor.state != MON_STATE_INITED) return; - - char sql[1024] = {0}; - sprintf(sql, - "insert into %s.acct_%s using %s.acct tags('%s') values(now" - ", %" PRId64 ", %" PRId64 - ", %" PRId64 ", %" PRId64 - ", %" PRId64 ", %" PRId64 - ", %" PRId64 ", %" PRId64 - ", %" PRId64 ", %" PRId64 - ", %" PRId64 ", %" PRId64 - ", %" PRId64 ", %" PRId64 - ", %" PRId64 ", %" PRId64 - ", %" PRId64 ", %" PRId64 - ", %" PRId64 ", %" PRId64 - ", %d)", - tsMonitorDbName, pMon->acctId, tsMonitorDbName, pMon->acctId, - pMon->currentPointsPerSecond, pMon->maxPointsPerSecond, - pMon->totalTimeSeries, pMon->maxTimeSeries, - pMon->totalStorage, pMon->maxStorage, - pMon->totalQueryTime, pMon->maxQueryTime, - pMon->totalInbound, pMon->maxInbound, - pMon->totalOutbound, pMon->maxOutbound, - pMon->totalDbs, pMon->maxDbs, - pMon->totalUsers, pMon->maxUsers, - pMon->totalStreams, pMon->maxStreams, - pMon->totalConns, pMon->maxConns, - pMon->accessState); - - monDebug("save account info, sql:%s", sql); - taos_query_a(tsMonitor.conn, sql, monExecSqlCb, "account info"); -} - -void monSaveLog(int32_t level, const char *const format, ...) { - if (tsMonitor.state != MON_STATE_INITED) return; - - va_list argpointer; - char sql[SQL_LENGTH] = {0}; - int32_t max_length = SQL_LENGTH - 30; - int32_t len = snprintf(sql, (size_t)max_length, "insert into %s.log values(%" PRId64 ", %d,'", tsMonitorDbName, - taosGetTimestampUs(), level); - - va_start(argpointer, format); - len += vsnprintf(sql + len, (size_t)(max_length - len), format, argpointer); - va_end(argpointer); - if (len > max_length) len = max_length; - - len += sprintf(sql + len, "', '%s')", tsLocalEp); - sql[len++] = 0; - - monDebug("save log, sql: %s", sql); - taos_query_a(tsMonitor.conn, sql, monExecSqlCb, "log"); -} - -void monExecuteSQL(char *sql) { - if (tsMonitor.state != MON_STATE_INITED) return; - - monDebug("execute sql:%s", sql); - taos_query_a(tsMonitor.conn, sql, monExecSqlCb, "sql"); -} - -void monExecuteSQLWithResultCallback(char *sql, MonExecuteSQLCbFP callback, void* param) { - if (tsMonitor.conn == NULL) { - callback(param, NULL, TSDB_CODE_MON_CONNECTION_INVALID); - return; - } - - monDebug("execute sql:%s", sql); - taos_query_a(tsMonitor.conn, sql, callback, param); -} diff --git a/src/wal/CMakeLists.txt b/src/wal/CMakeLists.txt deleted file mode 100644 index 0d9be42bd5..0000000000 --- a/src/wal/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8...3.20) -PROJECT(TDengine) - -ADD_DEFINITIONS(-DWAL_CHECKSUM_WHOLE) - -INCLUDE_DIRECTORIES(inc) -AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src SRC) - -ADD_LIBRARY(twal ${SRC}) -TARGET_LINK_LIBRARIES(twal tutil common) -ADD_SUBDIRECTORY(test) diff --git a/src/wal/test/CMakeLists.txt b/src/wal/test/CMakeLists.txt deleted file mode 100644 index c5bc4198f1..0000000000 --- a/src/wal/test/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8...3.20) -PROJECT(TDengine) - -IF (TD_LINUX) - INCLUDE_DIRECTORIES(../inc) - - LIST(APPEND WALTEST_SRC ./waltest.c) - ADD_EXECUTABLE(waltest ${WALTEST_SRC}) - TARGET_LINK_LIBRARIES(waltest twal os tutil) - -ENDIF () - -IF (TD_DARWIN) - INCLUDE_DIRECTORIES(../inc) - - LIST(APPEND WALTEST_SRC ./waltest.c) - ADD_EXECUTABLE(waltest ${WALTEST_SRC}) - TARGET_LINK_LIBRARIES(waltest twal os tutil) - -ENDIF () -