tglobal.c 53.4 KB
Newer Older
S
slguan 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/*
 * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
 *
 * 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 <http://www.gnu.org/licenses/>.
 */

#define _DEFAULT_SOURCE
#include "os.h"
#include "taosdef.h"
#include "taoserror.h"
#include "tulog.h"
S
Shengliang Guan 已提交
21
#include "tlog.h"
S
slguan 已提交
22 23 24
#include "tconfig.h"
#include "tglobal.h"
#include "tsocket.h"
S
Shengliang Guan 已提交
25
#include "tcompare.h"
S
slguan 已提交
26 27
#include "tutil.h"
#include "ttimezone.h"
S
Shengliang Guan 已提交
28
#include "tlocale.h"
S
slguan 已提交
29

S
Shengliang Guan 已提交
30 31 32 33 34 35
// 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
J
jtao1735 已提交
36
uint16_t tsServerPort = 6030;
J
jtao1735 已提交
37
uint16_t tsDnodeShellPort = 6030;  // udp[6035-6039] tcp[6035]
S
Shengliang Guan 已提交
38
uint16_t tsDnodeDnodePort = 6035;  // udp/tcp
J
jtao1735 已提交
39
uint16_t tsSyncPort = 6040;
H
Hui Li 已提交
40
uint16_t tsArbitratorPort = 6042;
S
Shengliang Guan 已提交
41
int32_t  tsStatusInterval = 1;  // second
42
int32_t  tsNumOfMnodes = 1;
S
Shengliang Guan 已提交
43 44
int8_t   tsEnableVnodeBak = 1;
int8_t   tsEnableTelemetryReporting = 1;
S
TD-2680  
Shengliang Guan 已提交
45
int8_t   tsArbOnline = 0;
46
int64_t  tsArbOnlineTimestamp = TSDB_ARB_DUMMY_TIME;
H
Hui Li 已提交
47
char     tsEmail[TSDB_FQDN_LEN] = {0};
D
dapan1121 已提交
48
int32_t  tsDnodeId = 0;
49
int64_t  tsDnodeStartTime = 0;
H
Hui Li 已提交
50

S
Shengliang Guan 已提交
51
// common
Y
yihaoDeng 已提交
52
int32_t tsRpcTimer       = 300;
H
Haojun Liao 已提交
53
int32_t tsRpcMaxTime     = 600;  // seconds;
张宏权 已提交
54
int32_t tsRpcForceTcp    = 0;  //disable this, means query, show command use udp protocol as default
Y
TD-3138  
yihaoDeng 已提交
55
int32_t tsMaxShellConns  = 50000;
S
Shengliang Guan 已提交
56
int32_t tsMaxConnections = 5000;
H
Haojun Liao 已提交
57 58
int32_t tsShellActivityTimer  = 3;  // second
float   tsNumOfThreadsPerCore = 1.0f;
59
int32_t tsNumOfCommitThreads = 4;
60
float   tsRatioOfQueryCores = 1.0f;
H
Haojun Liao 已提交
61
int8_t  tsDaylight       = 0;
S
Shengliang Guan 已提交
62
int8_t  tsEnableCoreFile = 0;
S
Shengliang Guan 已提交
63
int32_t tsMaxBinaryDisplayWidth = 30;
S
slguan 已提交
64

S
Shengliang Guan 已提交
65 66 67 68 69 70 71 72
/*
 * denote if the server needs to compress response message at the application layer to client, including query rsp,
 * metricmeta rsp, and multi-meter query rsp message body. The client compress the submit message to server.
 *
 * 0: all data are compressed
 * -1: all data are not compressed
 * other values: if the message payload size is greater than the tsCompressMsgSize, the message will be compressed.
 */
D
dapan1121 已提交
73
int32_t tsCompressMsgSize = -1;
S
Shengliang Guan 已提交
74

75
/* denote if server needs to compress the retrieved column data before adding to the rpc response message body.
76 77
 * 0: all data are compressed
 * -1: all data are not compressed
78
 * other values: if any retrieved column size is greater than the tsCompressColData, all data will be compressed.
79
 */
80
int32_t tsCompressColData = -1;
81

S
Shengliang Guan 已提交
82
// client
83
int32_t tsMaxSQLStringLen = TSDB_MAX_ALLOWED_SQL_LEN;
84
int32_t tsMaxWildCardsLen = TSDB_PATTERN_STRING_DEFAULT_LEN;
85 86
int32_t tsMaxRegexStringLen = TSDB_REGEX_STRING_DEFAULT_LEN;

S
Shengliang Guan 已提交
87
int8_t  tsTscEnableRecordSql = 0;
S
slguan 已提交
88

S
Shengliang Guan 已提交
89 90 91 92 93 94 95
// the maximum number of results for projection query on super table that are returned from
// one virtual node, to order according to timestamp
int32_t tsMaxNumOfOrderedResults = 100000;

// 10 ms for sliding time, the value will changed in case of time precision changed
int32_t tsMinSlidingTime = 10;

96
// the maxinum number of distict query result
97 98
int32_t tsMaxNumOfDistinctResults  = 1000 * 10000;

99 100
// 1 us for interval time range, changed accordingly
int32_t tsMinIntervalTime = 1;
S
Shengliang Guan 已提交
101 102 103 104 105 106 107 108

// 20sec, the maximum value of stream computing delay, changed accordingly
int32_t tsMaxStreamComputDelay = 20000;

// 10sec, the first stream computing delay time after system launched successfully, changed accordingly
int32_t tsStreamCompStartDelay = 10000;

// the stream computing delay time after executing failed, change accordingly
109
int32_t tsRetryStreamCompDelay = 10*1000;
S
Shengliang Guan 已提交
110 111

// The delayed computing ration. 10% of the whole computing time window by default.
112
float tsStreamComputDelayRatio = 0.1f;
S
Shengliang Guan 已提交
113 114 115 116

int32_t tsProjectExecInterval = 10000;   // every 10sec, the projection will be executed once
int64_t tsMaxRetentWindow = 24 * 3600L;  // maximum time window tolerance

H
Haojun Liao 已提交
117 118 119 120 121
// the maximum allowed query buffer size during query processing for each data node.
// -1 no limit (default)
// 0  no query allowed, queries are disabled
// positive value (in MB)
int32_t tsQueryBufferSize = -1;
122
int64_t tsQueryBufferSizeBytes = -1;
H
Haojun Liao 已提交
123

H
Haojun Liao 已提交
124 125
// in retrieve blocking model, the retrieve threads will wait for the completion of the query processing.
int32_t tsRetrieveBlockingModel = 0;
126

127
// last_row(*), first(*), last_row(ts, col1, col2) query, the result fields will be the original column name
S
Shengliang Guan 已提交
128
int8_t  tsKeepOriginalColumnName = 0;
129

S
Shengliang Guan 已提交
130
// db parameters
S
slguan 已提交
131
int32_t tsCacheBlockSize = TSDB_DEFAULT_CACHE_BLOCK_SIZE;
H
hjxilinx 已提交
132 133 134
int32_t tsBlocksPerVnode = TSDB_DEFAULT_TOTAL_BLOCKS;
int16_t tsDaysPerFile    = TSDB_DEFAULT_DAYS_PER_FILE;
int32_t tsDaysToKeep     = TSDB_DEFAULT_KEEP;
S
slguan 已提交
135 136
int32_t tsMinRowsInFileBlock = TSDB_DEFAULT_MIN_ROW_FBLOCK;
int32_t tsMaxRowsInFileBlock = TSDB_DEFAULT_MAX_ROW_FBLOCK;
H
hjxilinx 已提交
137
int16_t tsCommitTime    = TSDB_DEFAULT_COMMIT_TIME;  // seconds
S
slguan 已提交
138
int32_t tsTimePrecision = TSDB_DEFAULT_PRECISION;
S
TD-1207  
Shengliang Guan 已提交
139 140
int8_t  tsCompression   = TSDB_DEFAULT_COMP_LEVEL;
int8_t  tsWAL           = TSDB_DEFAULT_WAL_LEVEL;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
141
int32_t tsFsyncPeriod   = TSDB_DEFAULT_FSYNC_PERIOD;
142
int32_t tsReplications  = TSDB_DEFAULT_DB_REPLICA_OPTION;
143
int32_t tsQuorum        = TSDB_DEFAULT_DB_QUORUM_OPTION;
S
TD-3130  
Shengliang Guan 已提交
144
int16_t tsPartitons     = TSDB_DEFAULT_DB_PARTITON_OPTION;
S
Shengliang Guan 已提交
145
int8_t  tsUpdate        = TSDB_DEFAULT_DB_UPDATE_OPTION;
S
TD-3220  
Shengliang Guan 已提交
146
int8_t  tsCacheLastRow  = TSDB_DEFAULT_CACHE_LAST_ROW;
147
int32_t tsMaxVgroupsPerDb  = 0;
S
slguan 已提交
148
int32_t tsMinTablePerVnode = TSDB_TABLES_STEP;
149
int32_t tsMaxTablePerVnode = TSDB_DEFAULT_TABLES;
150
int32_t tsTableIncStepPerVnode = TSDB_TABLES_STEP;
151
int32_t tsTsdbMetaCompactRatio = TSDB_META_COMPACT_RATIO;
152

Y
yihaoDeng 已提交
153 154 155 156
// tsdb config 
// For backward compatibility
bool tsdbForceKeepFile = false;

S
Shengliang Guan 已提交
157
// balance
S
Shengliang Guan 已提交
158 159 160
int8_t  tsEnableBalance = 1;
int8_t  tsAlternativeRole = 0;
int32_t tsBalanceInterval = 300;           // seconds
161
int32_t tsOfflineThreshold = 86400 * 10;  // seconds of 10 days
162
int32_t tsMnodeEqualVnodeNum = 4;
S
Shengliang Guan 已提交
163 164 165
int8_t  tsEnableFlowCtrl = 1;
int8_t  tsEnableSlaveQuery = 1;
int8_t  tsEnableAdjustMaster = 1;
S
slguan 已提交
166

S
Shengliang Guan 已提交
167
// restful
S
Shengliang Guan 已提交
168
int8_t   tsEnableHttpModule = 1;
S
Shengliang Guan 已提交
169
int32_t  tsRestRowLimit = 10240;
H
Hui Li 已提交
170
uint16_t tsHttpPort = 6041;  // only tcp, range tcp[6041]
S
Shengliang Guan 已提交
171
int32_t  tsHttpCacheSessions = 1000;
S
Shengliang Guan 已提交
172 173
int32_t  tsHttpSessionExpire = 36000;
int32_t  tsHttpMaxThreads = 2;
S
Shengliang Guan 已提交
174 175 176
int8_t   tsHttpEnableCompress = 1;
int8_t   tsHttpEnableRecordSql = 0;
int8_t   tsTelegrafUseFieldNum = 0;
177
int8_t   tsHttpDbNameMandatory = 0;
S
Shengliang Guan 已提交
178 179

// mqtt
S
Shengliang Guan 已提交
180
int8_t tsEnableMqttModule = 0;  // not finished yet, not started it by default
S
TD-1310  
Shengliang Guan 已提交
181 182 183 184 185
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";
186
char    tsMqttTopic[TSDB_MQTT_TOPIC_LEN] = "/test"; // #
S
Shengliang Guan 已提交
187 188

// monitor
S
Shengliang Guan 已提交
189
int8_t  tsEnableMonitorModule = 1;
S
Shengliang Guan 已提交
190 191 192
char    tsMonitorDbName[TSDB_DB_NAME_LEN] = "log";
char    tsInternalPass[] = "secretkey";
int32_t tsMonitorInterval = 30;  // seconds
S
slguan 已提交
193

194
// stream
S
Shengliang Guan 已提交
195
int8_t  tsEnableStream = 1;
196

S
Shengliang Guan 已提交
197
// internal
198
int8_t tsCompactMnodeWal = 0;
S
Shengliang Guan 已提交
199 200
int8_t tsPrintAuth = 0;
int8_t tscEmbedded = 0;
T
tickduan 已提交
201 202 203 204 205
char   tsVnodeDir[PATH_MAX] = {0};
char   tsDnodeDir[PATH_MAX] = {0};
char   tsMnodeDir[PATH_MAX] = {0};
char   tsMnodeTmpDir[PATH_MAX] = {0};
char   tsMnodeBakDir[PATH_MAX] = {0};
206

H
Hongze Cheng 已提交
207
int32_t  tsDiskCfgNum = 0;
208
int32_t tsTopicBianryLen = 16000;
S
TD-1767  
Shengliang Guan 已提交
209 210 211 212 213 214

#ifndef _STORAGE
SDiskCfg tsDiskCfg[1];
#else
SDiskCfg tsDiskCfg[TSDB_MAX_DISKS];
#endif
S
Shengliang Guan 已提交
215 216 217 218 219 220 221

/*
 * minimum scale for whole system, millisecond by default
 * for TSDB_TIME_PRECISION_MILLI: 86400000L
 *     TSDB_TIME_PRECISION_MICRO: 86400000000L
 *     TSDB_TIME_PRECISION_NANO:  86400000000000L
 */
222
int64_t tsTickPerDay[] = {86400000L, 86400000000L, 86400000000000L};
S
Shengliang Guan 已提交
223 224 225 226

// system info
float   tsTotalTmpDirGB = 0;
float   tsTotalDataDirGB = 0;
H
Haojun Liao 已提交
227
float   tsAvailTmpDirectorySpace = 0;
S
Shengliang Guan 已提交
228
float   tsAvailDataDirGB = 0;
229
float   tsUsedDataDirGB = 0;
S
Shengliang Guan 已提交
230
float   tsReservedTmpDirectorySpace = 1.0f;
231
float   tsMinimalDataDirGB = 2.0f;
S
Shengliang Guan 已提交
232
int32_t tsTotalMemoryMB = 0;
233
uint32_t tsVersion = 0;
S
slguan 已提交
234

T
tickduan 已提交
235
#ifdef TD_TSZ
T
tickduan 已提交
236 237 238 239 240 241 242
//
// lossy compress 6
//
char lossyColumns[32] = "";  // "float|double" means all float and double columns can be lossy compressed.  set empty can close lossy compress.
// below option can take effect when tsLossyColumns not empty 
double   fPrecision   = 1E-8;   // float column precision
double   dPrecision   = 1E-16;  // double column precision
T
tickduan 已提交
243 244
uint32_t maxRange     = 500;    // max range
uint32_t curRange     = 100;    // range
T
tickduan 已提交
245
char     Compressor[32] = "ZSTD_COMPRESSOR"; // ZSTD_COMPRESSOR or GZIP_COMPRESSOR 
246
#endif
T
tickduan 已提交
247

248
// long query death-lock
249
int8_t tsDeadLockKillQuery = 0;
250

S
Shengliang Guan 已提交
251 252 253
int32_t (*monStartSystemFp)() = NULL;
void (*monStopSystemFp)() = NULL;
void (*monExecuteSQLFp)(char *sql) = NULL;
254

S
Shengliang Guan 已提交
255 256
char *qtypeStr[] = {"rpc", "fwd", "wal", "cq", "query"};

S
slguan 已提交
257 258 259
static pthread_once_t tsInitGlobalCfgOnce = PTHREAD_ONCE_INIT;

void taosSetAllDebugFlag() {
S
Shengliang Guan 已提交
260
  if (debugFlag != 0) { 
guanshengliang's avatar
guanshengliang 已提交
261
    mDebugFlag = debugFlag;
guanshengliang's avatar
guanshengliang 已提交
262 263 264
    sdbDebugFlag = debugFlag;
    dDebugFlag = debugFlag;
    vDebugFlag = debugFlag;
guanshengliang's avatar
guanshengliang 已提交
265 266 267
    cDebugFlag = debugFlag;
    jniDebugFlag = debugFlag;
    odbcDebugFlag = debugFlag;
guanshengliang's avatar
guanshengliang 已提交
268
    httpDebugFlag = debugFlag;
269
    mqttDebugFlag = debugFlag;
S
Shengliang Guan 已提交
270
    monDebugFlag = debugFlag;
S
TD-1520  
Shengliang Guan 已提交
271
    qDebugFlag = debugFlag;    
guanshengliang's avatar
guanshengliang 已提交
272 273 274
    rpcDebugFlag = debugFlag;
    uDebugFlag = debugFlag;
    sDebugFlag = debugFlag;
S
Shengliang Guan 已提交
275
    wDebugFlag = debugFlag;
276
    tsdbDebugFlag = debugFlag;
S
TD-1520  
Shengliang Guan 已提交
277
    cqDebugFlag = debugFlag;
S
Shengliang Guan 已提交
278
    uInfo("all debug flag are set to %d", debugFlag);
S
slguan 已提交
279 280 281 282 283 284 285 286 287
  }
}

bool taosCfgDynamicOptions(char *msg) {
  char *option, *value;
  int32_t   olen, vlen;
  int32_t   vint = 0;

  paGetToken(msg, &option, &olen);
Y
TD-2568  
yihaoDeng 已提交
288
  if (olen == 0) return false;;
S
slguan 已提交
289 290 291 292 293 294 295 296

  paGetToken(option + olen + 1, &value, &vlen);
  if (vlen == 0)
    vint = 135;
  else {
    vint = atoi(value);
  }

297
  uInfo("change dynamic option: %s, value: %d", option, vint);
S
slguan 已提交
298 299 300

  for (int32_t i = 0; i < tsGlobalConfigNum; ++i) {
    SGlobalCfg *cfg = tsGlobalConfig + i;
301
    //if (!(cfg->cfgType & TSDB_CFG_CTYPE_B_LOG)) continue;
S
Shengliang Guan 已提交
302
    if (cfg->valType != TAOS_CFG_VTYPE_INT32 && cfg->valType != TAOS_CFG_VTYPE_INT8) continue;
303
    
S
Shengliang Guan 已提交
304
    int32_t cfgLen = (int32_t)strlen(cfg->option);
305
    if (cfgLen != olen) continue;
T
tickduan 已提交
306 307 308 309 310 311
    if (strncasecmp(option, cfg->option, olen) != 0) continue;
    if (cfg->valType == TAOS_CFG_VTYPE_INT32) {
      *((int32_t *)cfg->ptr) = vint;
    } else {
      *((int8_t *)cfg->ptr) = (int8_t)vint;
    }
T
tickduan 已提交
312

S
slguan 已提交
313
    if (strncasecmp(cfg->option, "monitor", olen) == 0) {
314
      if (1 == vint) {
S
Shengliang Guan 已提交
315 316
        if (monStartSystemFp) {
          (*monStartSystemFp)();
317
          uInfo("monitor is enabled");
318 319
        } else {
          uError("monitor can't be updated, for monitor not initialized");
320 321
        }
      } else {
S
Shengliang Guan 已提交
322 323
        if (monStopSystemFp) {
          (*monStopSystemFp)();
324
          uInfo("monitor is disabled");
325 326
        } else {
          uError("monitor can't be updated, for monitor not initialized");
327 328
        }
      }
S
slguan 已提交
329 330
      return true;
    }
Y
yihaoDeng 已提交
331 332 333 334
    if (strncasecmp(cfg->option, "debugFlag", olen) == 0) {
       taosSetAllDebugFlag(); 
    }
    return true;
S
slguan 已提交
335 336 337 338 339 340 341 342 343
  }

  if (strncasecmp(option, "resetlog", 8) == 0) {
    taosResetLog();
    taosPrintGlobalCfg();
    return true;
  }

  if (strncasecmp(option, "resetQueryCache", 15) == 0) {
S
Shengliang Guan 已提交
344 345
    if (monExecuteSQLFp) {
      (*monExecuteSQLFp)("resetQueryCache");
346 347 348 349
      uInfo("resetquerycache is executed");
    } else {
      uError("resetquerycache can't be executed, for monitor not started");
    }
S
slguan 已提交
350 351 352 353 354
  }

  return false;
}

S
TD-1767  
Shengliang Guan 已提交
355 356 357 358 359 360 361 362 363
void taosAddDataDir(int index, char *v1, int level, int primary) {
  tstrncpy(tsDiskCfg[index].dir, v1, TSDB_FILENAME_LEN);
  tsDiskCfg[index].level = level;
  tsDiskCfg[index].primary = primary;
  uTrace("dataDir:%s, level:%d primary:%d is configured", v1, level, primary);
}

#ifndef _STORAGE
void taosReadDataDirCfg(char *v1, char *v2, char *v3) {
S
TD-1767  
Shengliang Guan 已提交
364 365 366 367 368 369
  if (tsDiskCfgNum == 1) {
    SDiskCfg *cfg = &tsDiskCfg[0];
    uInfo("dataDir:%s, level:%d primary:%d is replaced by %s", cfg->dir, cfg->level, cfg->primary, v1);
  }
  taosAddDataDir(0, v1, 0, 1);
  tsDiskCfgNum = 1;
S
TD-1767  
Shengliang Guan 已提交
370 371 372 373 374
}

void taosPrintDataDirCfg() {
  for (int i = 0; i < tsDiskCfgNum; ++i) {
    SDiskCfg *cfg = &tsDiskCfg[i];
S
TD-1767  
Shengliang Guan 已提交
375
    uInfo(" dataDir: %s", cfg->dir);
S
TD-1767  
Shengliang Guan 已提交
376 377
  }
}
S
TD-1767  
Shengliang Guan 已提交
378
#endif
S
TD-1767  
Shengliang Guan 已提交
379 380 381 382 383

static void taosCheckDataDirCfg() {
  if (tsDiskCfgNum <= 0) {
    taosAddDataDir(0, tsDataDir, 0, 1);
    tsDiskCfgNum = 1;
S
TD-1767  
Shengliang Guan 已提交
384
    uTrace("dataDir:%s, level:0 primary:1 is configured by default", tsDataDir);
S
TD-1767  
Shengliang Guan 已提交
385 386 387
  }
}

D
fix bug  
dapan1121 已提交
388
static int32_t taosCheckTmpDir(void) {
S
Shengliang Guan 已提交
389
#if 0
D
fix bug  
dapan1121 已提交
390 391 392 393 394 395 396 397 398 399 400 401
  if (strlen(tsTempDir) <= 0){
    uError("tempDir is not set");
    return -1;
  }

  DIR *dir = opendir(tsTempDir);
  if (dir == NULL) {
    uError("can not open tempDir:%s, error:%s", tsTempDir, strerror(errno));
    return -1;
  }

  closedir(dir);
S
Shengliang Guan 已提交
402
#endif
D
fix bug  
dapan1121 已提交
403 404 405
  return 0;
}

S
Shengliang Guan 已提交
406

407
static void doInitGlobalConfig(void) {
S
TD-1057  
Shengliang Guan 已提交
408
  osInit();
S
TD-1652  
Shengliang Guan 已提交
409 410
  srand(taosSafeRand());

S
slguan 已提交
411 412 413
  SGlobalCfg cfg = {0};
  
  // ip address
H
Hui Li 已提交
414
  cfg.option = "firstEp";
S
slguan 已提交
415 416
  cfg.ptr = tsFirst;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
S
slguan 已提交
417 418 419
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
420
  cfg.ptrLength = TSDB_EP_LEN;
S
slguan 已提交
421 422 423
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

H
Hui Li 已提交
424
  cfg.option = "secondEp";
J
jtao1735 已提交
425
  cfg.ptr = tsSecond;
S
slguan 已提交
426
  cfg.valType = TAOS_CFG_VTYPE_STRING;
S
slguan 已提交
427 428 429
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
430
  cfg.ptrLength = TSDB_EP_LEN;
S
slguan 已提交
431 432 433
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

434 435 436 437 438 439 440 441 442 443
  cfg.option = "fqdn";
  cfg.ptr = tsLocalFqdn;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = TSDB_FQDN_LEN;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
444
  // port
J
jtao1735 已提交
445 446
  cfg.option = "serverPort";
  cfg.ptr = &tsServerPort;
447
  cfg.valType = TAOS_CFG_VTYPE_UINT16;
S
slguan 已提交
448 449
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 1;
450
  cfg.maxValue = 65056;
S
slguan 已提交
451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  // directory
  cfg.option = "configDir";
  cfg.ptr = configDir;
  cfg.valType = TAOS_CFG_VTYPE_DIRECTORY;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = TSDB_FILENAME_LEN;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "logDir";
S
slguan 已提交
467
  cfg.ptr = tsLogDir;
S
slguan 已提交
468 469
  cfg.valType = TAOS_CFG_VTYPE_DIRECTORY;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT | TSDB_CFG_CTYPE_B_LOG;
470 471 472 473 474 475
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = TSDB_FILENAME_LEN;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
476
  cfg.option = "scriptDir";
S
slguan 已提交
477
  cfg.ptr = tsScriptDir;
S
slguan 已提交
478 479 480 481 482 483 484 485 486
  cfg.valType = TAOS_CFG_VTYPE_DIRECTORY;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = TSDB_FILENAME_LEN;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "dataDir";
S
slguan 已提交
487
  cfg.ptr = tsDataDir;
S
TD-1767  
Shengliang Guan 已提交
488
  cfg.valType = TAOS_CFG_VTYPE_DATA_DIRCTORY;
S
slguan 已提交
489 490 491 492 493 494 495
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = TSDB_FILENAME_LEN;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

J
jtao1735 已提交
496 497
  cfg.option = "arbitrator";
  cfg.ptr = tsArbitrator;
S
slguan 已提交
498
  cfg.valType = TAOS_CFG_VTYPE_STRING;
499
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
J
jtao1735 已提交
500 501
  cfg.minValue = 0;
  cfg.maxValue = 0;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
502
  cfg.ptrLength = TSDB_EP_LEN;
J
jtao1735 已提交
503 504 505
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
506 507 508 509 510 511 512 513 514 515 516
  // dnode configs
  cfg.option = "numOfThreadsPerCore";
  cfg.ptr = &tsNumOfThreadsPerCore;
  cfg.valType = TAOS_CFG_VTYPE_FLOAT;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 10;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
TD-2067  
Shengliang Guan 已提交
517 518 519 520 521 522 523 524 525 526
  cfg.option = "numOfCommitThreads";
  cfg.ptr = &tsNumOfCommitThreads;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
  cfg.minValue = 1;
  cfg.maxValue = 100;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

527 528
  cfg.option = "ratioOfQueryCores";
  cfg.ptr = &tsRatioOfQueryCores;
S
slguan 已提交
529 530
  cfg.valType = TAOS_CFG_VTYPE_FLOAT;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
531 532
  cfg.minValue = 0.0f;
  cfg.maxValue = 2.0f;
S
slguan 已提交
533 534 535 536
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

537 538 539 540 541 542 543 544 545 546
  cfg.option = "maxNumOfDistinctRes";
  cfg.ptr = &tsMaxNumOfDistinctResults;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 10*10000;
  cfg.maxValue = 10000*10000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);
  
547 548
  cfg.option = "numOfMnodes";
  cfg.ptr = &tsNumOfMnodes;
S
slguan 已提交
549 550 551 552 553 554 555 556
  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;
  taosInitConfigOption(cfg);

H
Hui Li 已提交
557 558
  cfg.option = "vnodeBak";
  cfg.ptr = &tsEnableVnodeBak;
S
Shengliang Guan 已提交
559
  cfg.valType = TAOS_CFG_VTYPE_INT8;
H
Hui Li 已提交
560 561 562 563 564 565 566
  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;
  taosInitConfigOption(cfg);

B
Bomin Zhang 已提交
567 568
  cfg.option = "telemetryReporting";
  cfg.ptr = &tsEnableTelemetryReporting;
S
Shengliang Guan 已提交
569
  cfg.valType = TAOS_CFG_VTYPE_INT8;
B
Bomin Zhang 已提交
570 571 572 573 574 575 576
  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;
  taosInitConfigOption(cfg);

S
Shengliang Guan 已提交
577 578
  cfg.option = "balance";
  cfg.ptr = &tsEnableBalance;
S
Shengliang Guan 已提交
579
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
Shengliang Guan 已提交
580 581 582 583 584 585 586
  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;
  taosInitConfigOption(cfg);

S
slguan 已提交
587
  cfg.option = "balanceInterval";
S
slguan 已提交
588
  cfg.ptr = &tsBalanceInterval;
S
slguan 已提交
589 590 591 592 593 594 595 596
  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;
  taosInitConfigOption(cfg);

597
  // 0-any; 1-mnode; 2-vnode
S
Shengliang Guan 已提交
598
  cfg.option = "role";
S
slguan 已提交
599
  cfg.ptr = &tsAlternativeRole;
S
Shengliang Guan 已提交
600
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
601 602 603 604 605 606 607 608 609
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
  cfg.minValue = 0;
  cfg.maxValue = 2;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  // timer
  cfg.option = "maxTmrCtrl";
S
Shengliang Guan 已提交
610
  cfg.ptr = &tsMaxTmrCtrl;
S
slguan 已提交
611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = 8;
  cfg.maxValue = 2048;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(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;
  taosInitConfigOption(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;
S
TD-2513  
Shengliang Guan 已提交
633
  cfg.minValue = 3;
634
  cfg.maxValue = 86400 * 365;
S
slguan 已提交
635 636 637 638 639 640 641 642 643 644 645 646 647 648
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_SECOND;
  taosInitConfigOption(cfg);

  cfg.option = "rpcTimer";
  cfg.ptr = &tsRpcTimer;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 100;
  cfg.maxValue = 3000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_MS;
  taosInitConfigOption(cfg);

张宏权 已提交
649 650 651 652 653 654 655 656 657 658
  cfg.option = "rpcForceTcp";
  cfg.ptr = &tsRpcForceTcp;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 1;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702
  cfg.option = "rpcMaxTime";
  cfg.ptr = &tsRpcMaxTime;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 100;
  cfg.maxValue = 7200;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_SECOND;
  taosInitConfigOption(cfg);

  cfg.option = "statusInterval";
  cfg.ptr = &tsStatusInterval;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = 1;
  cfg.maxValue = 10;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_SECOND;
  taosInitConfigOption(cfg);

  cfg.option = "shellActivityTimer";
  cfg.ptr = &tsShellActivityTimer;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 1;
  cfg.maxValue = 120;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_SECOND;
  taosInitConfigOption(cfg);

  cfg.option = "minSlidingTime";
  cfg.ptr = &tsMinSlidingTime;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = 10;
  cfg.maxValue = 1000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_MS;
  taosInitConfigOption(cfg);

  cfg.option = "minIntervalTime";
  cfg.ptr = &tsMinIntervalTime;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
H
Haojun Liao 已提交
703
  cfg.minValue = 1;
S
slguan 已提交
704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729
  cfg.maxValue = 1000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_MS;
  taosInitConfigOption(cfg);

  cfg.option = "maxStreamCompDelay";
  cfg.ptr = &tsMaxStreamComputDelay;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = 10;
  cfg.maxValue = 1000000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_MS;
  taosInitConfigOption(cfg);

  cfg.option = "maxFirstStreamCompDelay";
  cfg.ptr = &tsStreamCompStartDelay;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = 1000;
  cfg.maxValue = 1000000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_MS;
  taosInitConfigOption(cfg);

  cfg.option = "retryStreamCompDelay";
730
  cfg.ptr = &tsRetryStreamCompDelay;
S
slguan 已提交
731 732 733 734 735 736 737 738 739 740 741 742
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = 10;
  cfg.maxValue = 1000000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_MS;

  taosInitConfigOption(cfg);
  cfg.option = "streamCompDelayRatio";
  cfg.ptr = &tsStreamComputDelayRatio;
  cfg.valType = TAOS_CFG_VTYPE_FLOAT;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
743 744
  cfg.minValue = 0.1f;
  cfg.maxValue = 0.9f;
S
slguan 已提交
745 746 747 748
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

749 750 751 752 753 754 755 756 757 758
  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;
  taosInitConfigOption(cfg);

S
slguan 已提交
759
  // database configs
S
Shengliang Guan 已提交
760
  cfg.option = "maxTablesPerVnode";
H
hjxilinx 已提交
761
  cfg.ptr = &tsMaxTablePerVnode;
S
slguan 已提交
762
  cfg.valType = TAOS_CFG_VTYPE_INT32;
S
slguan 已提交
763
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
S
slguan 已提交
764 765
  cfg.minValue = TSDB_MIN_TABLES;
  cfg.maxValue = TSDB_MAX_TABLES;
S
slguan 已提交
766 767 768 769
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789
  cfg.option = "minTablesPerVnode";
  cfg.ptr = &tsMinTablePerVnode;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = TSDB_MIN_TABLES;
  cfg.maxValue = TSDB_MAX_TABLES;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "tableIncStepPerVnode";
  cfg.ptr = &tsTableIncStepPerVnode;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = TSDB_MIN_TABLES;
  cfg.maxValue = TSDB_MAX_TABLES;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
790 791 792
  cfg.option = "cache";
  cfg.ptr = &tsCacheBlockSize;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
S
slguan 已提交
793
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
S
slguan 已提交
794 795
  cfg.minValue = TSDB_MIN_CACHE_BLOCK_SIZE;
  cfg.maxValue = TSDB_MAX_CACHE_BLOCK_SIZE;
S
slguan 已提交
796
  cfg.ptrLength = 0;
H
Haojun Liao 已提交
797
  cfg.unitType = TAOS_CFG_UTYPE_MB;
S
slguan 已提交
798 799 800
  taosInitConfigOption(cfg);

  cfg.option = "blocks";
H
hjxilinx 已提交
801
  cfg.ptr = &tsBlocksPerVnode;
S
slguan 已提交
802 803 804 805 806
  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;
H
Hongze Cheng 已提交
807
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
S
slguan 已提交
808 809 810 811 812 813
  taosInitConfigOption(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;
S
slguan 已提交
814 815
  cfg.minValue = TSDB_MIN_DAYS_PER_FILE;
  cfg.maxValue = TSDB_MAX_DAYS_PER_FILE;
S
slguan 已提交
816 817 818 819 820 821 822 823
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(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;
S
slguan 已提交
824 825
  cfg.minValue = TSDB_MIN_KEEP;
  cfg.maxValue = TSDB_MAX_KEEP;
S
slguan 已提交
826 827 828 829
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
830 831
  cfg.option = "minRows";
  cfg.ptr = &tsMinRowsInFileBlock;
S
slguan 已提交
832 833
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
S
slguan 已提交
834 835
  cfg.minValue = TSDB_MIN_MIN_ROW_FBLOCK;
  cfg.maxValue = TSDB_MAX_MIN_ROW_FBLOCK;
S
slguan 已提交
836 837 838 839
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
840 841
  cfg.option = "maxRows";
  cfg.ptr = &tsMaxRowsInFileBlock;
S
slguan 已提交
842 843
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
S
slguan 已提交
844 845
  cfg.minValue = TSDB_MIN_MAX_ROW_FBLOCK;
  cfg.maxValue = TSDB_MAX_MAX_ROW_FBLOCK;
S
slguan 已提交
846 847 848 849
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

850 851 852 853 854 855 856 857 858 859
  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;
  taosInitConfigOption(cfg);

S
slguan 已提交
860 861
  cfg.option = "comp";
  cfg.ptr = &tsCompression;
S
TD-1207  
Shengliang Guan 已提交
862
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
863 864 865 866 867 868 869
  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;
  taosInitConfigOption(cfg);

870
  cfg.option = "walLevel";
H
hjxilinx 已提交
871
  cfg.ptr = &tsWAL;
S
TD-1207  
Shengliang Guan 已提交
872
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
873
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
H
hjxilinx 已提交
874 875
  cfg.minValue = TSDB_MIN_WAL_LEVEL;
  cfg.maxValue = TSDB_MAX_WAL_LEVEL;
S
slguan 已提交
876 877 878 879
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

880
  cfg.option = "fsync";
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
881 882 883 884 885 886 887 888 889
  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;
  taosInitConfigOption(cfg);

S
slguan 已提交
890 891
  cfg.option = "replica";
  cfg.ptr = &tsReplications;
S
slguan 已提交
892 893
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
894 895
  cfg.minValue = TSDB_MIN_DB_REPLICA_OPTION;
  cfg.maxValue = TSDB_MAX_DB_REPLICA_OPTION;
S
slguan 已提交
896 897 898 899
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
Shengliang Guan 已提交
900 901 902 903 904 905 906 907 908 909
  cfg.option = "partitions";
  cfg.ptr = &tsPartitons;
  cfg.valType = TAOS_CFG_VTYPE_INT16;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = TSDB_MIN_DB_PARTITON_OPTION;
  cfg.maxValue = TSDB_MAX_DB_PARTITON_OPTION;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

910 911 912 913
  cfg.option = "quorum";
  cfg.ptr = &tsQuorum;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
S
TD-2677  
Shengliang Guan 已提交
914 915
  cfg.minValue = TSDB_MIN_DB_QUORUM_OPTION;
  cfg.maxValue = TSDB_MAX_DB_QUORUM_OPTION;
916 917 918 919
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
Shengliang Guan 已提交
920 921
  cfg.option = "update";
  cfg.ptr = &tsUpdate;
S
Shengliang Guan 已提交
922
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
Shengliang Guan 已提交
923 924 925 926
  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;
927 928 929 930 931 932 933 934 935 936
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(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;
S
Shengliang Guan 已提交
937 938 939
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
TD-1310  
Shengliang Guan 已提交
940 941
  cfg.option = "mqttHostName";
  cfg.ptr = tsMqttHostName;
942
  cfg.valType = TAOS_CFG_VTYPE_STRING;
943
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_NOT_PRINT;
944 945
  cfg.minValue = 0;
  cfg.maxValue = 0;
S
TD-1310  
Shengliang Guan 已提交
946
  cfg.ptrLength = TSDB_MQTT_HOSTNAME_LEN;
947 948
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);
949

S
TD-1310  
Shengliang Guan 已提交
950 951
  cfg.option = "mqttPort";
  cfg.ptr = tsMqttPort;
952
  cfg.valType = TAOS_CFG_VTYPE_STRING;
953
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_NOT_PRINT;
954 955
  cfg.minValue = 0;
  cfg.maxValue = 0;
S
TD-1310  
Shengliang Guan 已提交
956
  cfg.ptrLength = TSDB_MQTT_PORT_LEN;
957 958
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);
S
TD-1310  
Shengliang Guan 已提交
959 960 961 962

  cfg.option = "mqttTopic";
  cfg.ptr = tsMqttTopic;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
963
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_NOT_PRINT;
S
TD-1310  
Shengliang Guan 已提交
964 965 966 967 968 969
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = TSDB_MQTT_TOPIC_LEN;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
970 971 972 973 974
  cfg.option = "compressMsgSize";
  cfg.ptr = &tsCompressMsgSize;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = -1;
D
dapan1121 已提交
975
  cfg.maxValue = 100000000.0f;
S
slguan 已提交
976 977 978 979
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

980 981
  cfg.option = "compressColData";
  cfg.ptr = &tsCompressColData;
982 983 984 985
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = -1;
  cfg.maxValue = 100000000.0f;
986 987 988 989
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
990 991 992 993 994 995 996 997 998 999
  cfg.option = "maxSQLLength";
  cfg.ptr = &tsMaxSQLStringLen;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = TSDB_MAX_SQL_LEN;
  cfg.maxValue = TSDB_MAX_ALLOWED_SQL_LEN;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_BYTE;
  taosInitConfigOption(cfg);

1000 1001
  cfg.option = "maxWildCardsLength";
  cfg.ptr = &tsMaxWildCardsLen;
1002 1003 1004
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = 0;
1005
  cfg.maxValue = TSDB_MAX_FIELD_LEN;
1006 1007 1008 1009
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_BYTE;
  taosInitConfigOption(cfg);

1010 1011 1012 1013 1014 1015 1016 1017 1018 1019
  cfg.option = "maxRegexStringLen";
  cfg.ptr = &tsMaxRegexStringLen;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = 0;
  cfg.maxValue = TSDB_MAX_FIELD_LEN;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_BYTE;
  taosInitConfigOption(cfg);

S
slguan 已提交
1020 1021 1022 1023 1024 1025 1026 1027 1028 1029
  cfg.option = "maxNumOfOrderedRes";
  cfg.ptr = &tsMaxNumOfOrderedResults;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = TSDB_MAX_SQL_LEN;
  cfg.maxValue = TSDB_MAX_ALLOWED_SQL_LEN;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

H
Haojun Liao 已提交
1030 1031 1032 1033 1034
  cfg.option = "queryBufferSize";
  cfg.ptr = &tsQueryBufferSize;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = -1;
H
Haojun Liao 已提交
1035
  cfg.maxValue = 500000000000.0f;
H
Haojun Liao 已提交
1036 1037 1038 1039
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_BYTE;
  taosInitConfigOption(cfg);

H
Haojun Liao 已提交
1040 1041
  cfg.option = "retrieveBlockingModel";
  cfg.ptr = &tsRetrieveBlockingModel;
1042 1043 1044 1045 1046 1047 1048 1049
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  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;
  taosInitConfigOption(cfg);

1050 1051
  cfg.option = "keepColumnName";
  cfg.ptr = &tsKeepOriginalColumnName;
S
Shengliang Guan 已提交
1052
  cfg.valType = TAOS_CFG_VTYPE_INT8;
1053 1054 1055 1056 1057 1058 1059
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 1;
  cfg.ptrLength = 1;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
1060 1061 1062 1063
  // locale & charset
  cfg.option = "timezone";
  cfg.ptr = tsTimezone;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
1064
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
S
slguan 已提交
1065 1066
  cfg.minValue = 0;
  cfg.maxValue = 0;
S
Shengliang Guan 已提交
1067
  cfg.ptrLength = TSDB_TIMEZONE_LEN;
S
slguan 已提交
1068 1069 1070 1071 1072 1073
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "locale";
  cfg.ptr = tsLocale;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
1074
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
S
slguan 已提交
1075 1076
  cfg.minValue = 0;
  cfg.maxValue = 0;
S
Shengliang Guan 已提交
1077
  cfg.ptrLength = TSDB_LOCALE_LEN;
S
slguan 已提交
1078 1079 1080 1081 1082 1083
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "charset";
  cfg.ptr = tsCharset;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
1084
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
S
slguan 已提交
1085 1086
  cfg.minValue = 0;
  cfg.maxValue = 0;
S
Shengliang Guan 已提交
1087
  cfg.ptrLength = TSDB_LOCALE_LEN;
S
slguan 已提交
1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  // connect configs
  cfg.option = "maxShellConns";
  cfg.ptr = &tsMaxShellConns;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = 10;
  cfg.maxValue = 50000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

1102 1103
  cfg.option = "maxConnections";
  cfg.ptr = &tsMaxConnections;
S
slguan 已提交
1104 1105
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
1106
  cfg.minValue = 1;
1107
  cfg.maxValue = 100000;
S
slguan 已提交
1108 1109 1110 1111 1112 1113 1114 1115
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "minimalLogDirGB";
  cfg.ptr = &tsMinimalLogDirGB;
  cfg.valType = TAOS_CFG_VTYPE_FLOAT;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
1116
  cfg.minValue = 0.001f;
S
slguan 已提交
1117 1118 1119 1120 1121 1122
  cfg.maxValue = 10000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_GB;
  taosInitConfigOption(cfg);

  cfg.option = "minimalTmpDirGB";
H
Haojun Liao 已提交
1123
  cfg.ptr = &tsReservedTmpDirectorySpace;
S
slguan 已提交
1124 1125
  cfg.valType = TAOS_CFG_VTYPE_FLOAT;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
1126
  cfg.minValue = 0.001f;
S
slguan 已提交
1127 1128 1129 1130 1131 1132 1133 1134 1135
  cfg.maxValue = 10000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_GB;
  taosInitConfigOption(cfg);

  cfg.option = "minimalDataDirGB";
  cfg.ptr = &tsMinimalDataDirGB;
  cfg.valType = TAOS_CFG_VTYPE_FLOAT;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
1136
  cfg.minValue = 0.001f;
S
slguan 已提交
1137 1138 1139 1140 1141 1142
  cfg.maxValue = 10000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_GB;
  taosInitConfigOption(cfg);

  // module configs
S
Shengliang Guan 已提交
1143
  cfg.option = "mnodeEqualVnodeNum";
1144
  cfg.ptr = &tsMnodeEqualVnodeNum;
S
slguan 已提交
1145 1146 1147 1148 1149 1150
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
  cfg.minValue = 0;
  cfg.maxValue = 1000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
S
Shengliang Guan 已提交
1151 1152 1153 1154
  taosInitConfigOption(cfg);

    // module configs
  cfg.option = "flowctrl";
S
TD-2498  
Shengliang Guan 已提交
1155
  cfg.ptr = &tsEnableFlowCtrl;
S
Shengliang Guan 已提交
1156
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
TD-2498  
Shengliang Guan 已提交
1157 1158 1159 1160 1161 1162 1163 1164 1165
  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;
  taosInitConfigOption(cfg);

  cfg.option = "slaveQuery";
  cfg.ptr = &tsEnableSlaveQuery;
S
Shengliang Guan 已提交
1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176
  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;
  taosInitConfigOption(cfg);

  cfg.option = "adjustMaster";
  cfg.ptr = &tsEnableAdjustMaster;
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
Shengliang Guan 已提交
1177 1178 1179 1180 1181
  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;
S
slguan 已提交
1182 1183 1184 1185
  taosInitConfigOption(cfg);

  cfg.option = "http";
  cfg.ptr = &tsEnableHttpModule;
S
Shengliang Guan 已提交
1186
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1187 1188 1189 1190 1191 1192 1193
  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;
  taosInitConfigOption(cfg);

1194 1195
  cfg.option = "mqtt";
  cfg.ptr = &tsEnableMqttModule;
S
Shengliang Guan 已提交
1196
  cfg.valType = TAOS_CFG_VTYPE_INT8;
1197 1198 1199 1200 1201 1202 1203
  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;
  taosInitConfigOption(cfg);

S
slguan 已提交
1204 1205
  cfg.option = "monitor";
  cfg.ptr = &tsEnableMonitorModule;
S
Shengliang Guan 已提交
1206
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1207 1208 1209 1210 1211 1212 1213
  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;
  taosInitConfigOption(cfg);

1214 1215
  cfg.option = "stream";
  cfg.ptr = &tsEnableStream;
S
Shengliang Guan 已提交
1216
  cfg.valType = TAOS_CFG_VTYPE_INT8;
1217 1218 1219 1220 1221 1222 1223
  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;
  taosInitConfigOption(cfg);

1224 1225 1226 1227 1228 1229 1230 1231 1232 1233
  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;
  taosInitConfigOption(cfg);

S
slguan 已提交
1234 1235
  cfg.option = "httpEnableRecordSql";
  cfg.ptr = &tsHttpEnableRecordSql;
S
Shengliang Guan 已提交
1236
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1237 1238 1239 1240 1241 1242 1243 1244 1245
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
  cfg.minValue = 0;
  cfg.maxValue = 1;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "telegrafUseFieldNum";
  cfg.ptr = &tsTelegrafUseFieldNum;
S
Shengliang Guan 已提交
1246
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257
  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;
  taosInitConfigOption(cfg);

  cfg.option = "httpMaxThreads";
  cfg.ptr = &tsHttpMaxThreads;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
1258
  cfg.minValue = 2;
S
slguan 已提交
1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273
  cfg.maxValue = 1000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(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;
  taosInitConfigOption(cfg);

1274 1275 1276 1277 1278 1279 1280 1281 1282 1283
  cfg.option = "httpDbNameMandatory";
  cfg.ptr = &tsHttpDbNameMandatory;
  cfg.valType = TAOS_CFG_VTYPE_INT8;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
  cfg.minValue = 0;
  cfg.maxValue = 1;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
1284 1285 1286 1287 1288
  // debug flag
  cfg.option = "numOfLogLines";
  cfg.ptr = &tsNumOfLogLines;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
S
TD-1263  
Shengliang Guan 已提交
1289
  cfg.minValue = 1000;
S
slguan 已提交
1290 1291 1292 1293 1294
  cfg.maxValue = 2000000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

1295
  cfg.option = "logKeepDays";
S
TD-1263  
Shengliang Guan 已提交
1296
  cfg.ptr = &tsLogKeepDays;
1297 1298
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
S
TD-1574  
Shengliang Guan 已提交
1299
  cfg.minValue = -365000;
S
TD-1263  
Shengliang Guan 已提交
1300
  cfg.maxValue = 365000;
1301 1302 1303 1304
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
1305 1306
  cfg.option = "asyncLog";
  cfg.ptr = &tsAsyncLog;
S
Shengliang Guan 已提交
1307
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 1;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "debugFlag";
  cfg.ptr = &debugFlag;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 255;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "mDebugFlag";
guanshengliang's avatar
guanshengliang 已提交
1326
  cfg.ptr = &mDebugFlag;
S
slguan 已提交
1327 1328 1329 1330 1331 1332 1333 1334 1335
  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;
  taosInitConfigOption(cfg);

  cfg.option = "dDebugFlag";
1336
  cfg.ptr = &dDebugFlag;
S
slguan 已提交
1337 1338 1339 1340 1341 1342 1343 1344
  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;
  taosInitConfigOption(cfg);

J
jtao1735 已提交
1345 1346 1347 1348 1349 1350 1351 1352 1353 1354
  cfg.option = "sDebugFlag";
  cfg.ptr = &sDebugFlag;
  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;
  taosInitConfigOption(cfg);

S
Shengliang Guan 已提交
1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365
  cfg.option = "wDebugFlag";
  cfg.ptr = &wDebugFlag;
  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;
  taosInitConfigOption(cfg);


S
slguan 已提交
1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396
  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;
  taosInitConfigOption(cfg);

  cfg.option = "rpcDebugFlag";
  cfg.ptr = &rpcDebugFlag;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 255;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "tmrDebugFlag";
  cfg.ptr = &tmrDebugFlag;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 255;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "cDebugFlag";
guanshengliang's avatar
guanshengliang 已提交
1397
  cfg.ptr = &cDebugFlag;
S
slguan 已提交
1398 1399 1400 1401 1402 1403 1404 1405 1406
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 255;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "jniDebugFlag";
guanshengliang's avatar
guanshengliang 已提交
1407
  cfg.ptr = &jniDebugFlag;
S
slguan 已提交
1408 1409 1410 1411 1412 1413 1414 1415 1416
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 255;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "odbcDebugFlag";
guanshengliang's avatar
guanshengliang 已提交
1417
  cfg.ptr = &odbcDebugFlag;
S
slguan 已提交
1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 255;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "uDebugFlag";
  cfg.ptr = &uDebugFlag;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 255;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(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;
  taosInitConfigOption(cfg);

1446 1447 1448 1449 1450 1451 1452 1453 1454 1455
  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;
  taosInitConfigOption(cfg);

S
Shengliang Guan 已提交
1456 1457
  cfg.option = "monDebugFlag";
  cfg.ptr = &monDebugFlag;
S
slguan 已提交
1458 1459 1460 1461 1462 1463 1464 1465 1466
  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;
  taosInitConfigOption(cfg);

  cfg.option = "qDebugFlag";
guanshengliang's avatar
guanshengliang 已提交
1467
  cfg.ptr = &qDebugFlag;
S
slguan 已提交
1468 1469 1470 1471 1472 1473 1474 1475
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 255;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
Shengliang Guan 已提交
1476 1477 1478 1479 1480 1481 1482 1483 1484 1485
  cfg.option = "vDebugFlag";
  cfg.ptr = &vDebugFlag;
  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;
  taosInitConfigOption(cfg);

1486 1487 1488 1489 1490 1491 1492 1493 1494 1495
  cfg.option = "tsdbDebugFlag";
  cfg.ptr = &tsdbDebugFlag;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_LOG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 255;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
TD-1520  
Shengliang Guan 已提交
1496 1497 1498 1499 1500 1501 1502 1503 1504 1505
  cfg.option = "cqDebugFlag";
  cfg.ptr = &cqDebugFlag;
  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;
  taosInitConfigOption(cfg);

1506
  cfg.option = "enableRecordSql";
S
slguan 已提交
1507
  cfg.ptr = &tsTscEnableRecordSql;
S
Shengliang Guan 已提交
1508
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1509 1510 1511 1512 1513 1514 1515 1516 1517
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
  cfg.minValue = 0;
  cfg.maxValue = 1;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "enableCoreFile";
  cfg.ptr = &tsEnableCoreFile;
S
Shengliang Guan 已提交
1518
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
  cfg.minValue = 0;
  cfg.maxValue = 1;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  // version info
  cfg.option = "gitinfo";
  cfg.ptr = gitinfo;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
  cfg.cfgType = TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "gitinfoOfInternal";
  cfg.ptr = gitinfoOfInternal;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
  cfg.cfgType = TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "buildinfo";
  cfg.ptr = buildinfo;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
  cfg.cfgType = TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "version";
  cfg.ptr = version;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
  cfg.cfgType = TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);
1566 1567 1568 1569 1570 1571

  cfg.option = "maxBinaryDisplayWidth";
  cfg.ptr = &tsMaxBinaryDisplayWidth;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 1;
1572
  cfg.maxValue = 65536;
1573 1574 1575
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);
1576 1577 1578 1579 1580 1581 1582

  cfg.option = "tempDir";
  cfg.ptr = tsTempDir;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
S
Shengliang Guan 已提交
1583
  cfg.ptrLength = PATH_MAX;
1584 1585
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);
T
tickduan 已提交
1586

1587 1588 1589 1590 1591 1592 1593 1594 1595 1596
  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;
  taosInitConfigOption(cfg);

1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607
   // enable kill long query
  cfg.option = "deadLockKillQuery";
  cfg.ptr = &tsDeadLockKillQuery;
  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;
  taosInitConfigOption(cfg);

T
tickduan 已提交
1608
#ifdef TD_TSZ
T
tickduan 已提交
1609
  // lossy compress
T
tickduan 已提交
1610
  cfg.option = "lossyColumns";
T
tickduan 已提交
1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623
  cfg.ptr = lossyColumns;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = tListLen(lossyColumns);
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "fPrecision";
  cfg.ptr = &fPrecision;
  cfg.valType = TAOS_CFG_VTYPE_DOUBLE;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
T
tickduan 已提交
1624 1625
  cfg.minValue = MIN_FLOAT;
  cfg.maxValue = MAX_FLOAT;
T
tickduan 已提交
1626 1627
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
T
tickduan 已提交
1628 1629

  
T
tickduan 已提交
1630 1631 1632 1633 1634 1635
  taosInitConfigOption(cfg);

  cfg.option = "dPrecision";
  cfg.ptr = &dPrecision;
  cfg.valType = TAOS_CFG_VTYPE_DOUBLE;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
T
tickduan 已提交
1636 1637
  cfg.minValue = MIN_FLOAT;
  cfg.maxValue = MAX_FLOAT;
T
tickduan 已提交
1638 1639 1640 1641
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

T
tickduan 已提交
1642 1643
  cfg.option = "maxRange";
  cfg.ptr = &maxRange;
T
tickduan 已提交
1644 1645 1646 1647 1648 1649 1650 1651
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
  cfg.minValue = 0;
  cfg.maxValue = 65536;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

T
tickduan 已提交
1652
  cfg.option = "range";
T
tickduan 已提交
1653
  cfg.ptr = &curRange;
T
tickduan 已提交
1654 1655 1656 1657 1658 1659 1660
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
  cfg.minValue = 0;
  cfg.maxValue = 65536;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);
1661 1662 1663
  assert(tsGlobalConfigNum == TSDB_CFG_MAX_NUM);
#else
  assert(tsGlobalConfigNum == TSDB_CFG_MAX_NUM - 5);
1664
#endif
T
tickduan 已提交
1665

S
slguan 已提交
1666 1667 1668 1669 1670 1671
}

void taosInitGlobalCfg() {
  pthread_once(&tsInitGlobalCfgOnce, doInitGlobalConfig);
}

S
TD-1663  
Shengliang Guan 已提交
1672
int32_t taosCheckGlobalCfg() {
R
root 已提交
1673
  char fqdn[TSDB_FQDN_LEN];
1674 1675
  uint16_t port;

S
Shengliang Guan 已提交
1676
  if (debugFlag & DEBUG_TRACE || debugFlag & DEBUG_DEBUG || debugFlag & DEBUG_DUMP) {
guanshengliang's avatar
guanshengliang 已提交
1677 1678 1679
    taosSetAllDebugFlag();
  }
  
H
Hui Li 已提交
1680 1681 1682 1683
  if (tsLocalFqdn[0] == 0) {
    taosGetFqdn(tsLocalFqdn);
  }

R
root 已提交
1684
  snprintf(tsLocalEp, sizeof(tsLocalEp), "%s:%u", tsLocalFqdn, tsServerPort);
1685
  uInfo("localEp is: %s", tsLocalEp);
S
slguan 已提交
1686

S
slguan 已提交
1687 1688
  if (tsFirst[0] == 0) {
    strcpy(tsFirst, tsLocalEp);
1689 1690
  } else {
    taosGetFqdnPortFromEp(tsFirst, fqdn, &port);
R
root 已提交
1691
    snprintf(tsFirst, sizeof(tsFirst), "%s:%u", fqdn, port);
S
slguan 已提交
1692 1693
  }

J
jtao1735 已提交
1694 1695
  if (tsSecond[0] == 0) {
    strcpy(tsSecond, tsLocalEp);
1696 1697
  } else {
    taosGetFqdnPortFromEp(tsSecond, fqdn, &port);
R
root 已提交
1698
    snprintf(tsSecond, sizeof(tsSecond), "%s:%u", fqdn, port);
S
slguan 已提交
1699
  }
1700

S
TD-1767  
Shengliang Guan 已提交
1701
  taosCheckDataDirCfg();
D
fix bug  
dapan1121 已提交
1702 1703 1704 1705 1706

  if (taosCheckTmpDir()) {
    return -1;
  }
  
S
slguan 已提交
1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719
  taosGetSystemInfo();

  tsSetLocale();

  SGlobalCfg *cfg_timezone = taosGetConfigOption("timezone");
  if (cfg_timezone && cfg_timezone->cfgStatus == TAOS_CFG_CSTATUS_FILE) {
    tsSetTimeZone();
  }

  if (tsNumOfCores <= 0) {
    tsNumOfCores = 1;
  }

1720 1721 1722 1723 1724 1725 1726
  if (tsHttpMaxThreads == 2) {
    int32_t halfNumOfCores = tsNumOfCores >> 1;
    if (halfNumOfCores > 2) {
      tsHttpMaxThreads = halfNumOfCores;
    }
  }

1727 1728 1729 1730 1731 1732
  if (tsMaxTablePerVnode < tsMinTablePerVnode) {
    uError("maxTablesPerVnode(%d) < minTablesPerVnode(%d), reset to minTablesPerVnode(%d)",
	   tsMaxTablePerVnode, tsMinTablePerVnode, tsMinTablePerVnode);
    tsMaxTablePerVnode = tsMinTablePerVnode;
  }

S
slguan 已提交
1733 1734
  // todo refactor
  tsVersion = 0;
1735
  for (int ver = 0, i = 0; i < TSDB_VERSION_LEN; ++i) {
S
slguan 已提交
1736
    if (version[i] >= '0' && version[i] <= '9') {
1737 1738 1739 1740 1741 1742
      ver = ver * 10 + (version[i] - '0');
    } else if (version[i] == '.') {
      tsVersion |= ver & 0xFF;
      tsVersion <<= 8;

      ver = 0;
S
slguan 已提交
1743
    } else if (version[i] == 0) {
1744 1745
      tsVersion |= ver & 0xFF;

S
slguan 已提交
1746 1747 1748 1749
      break;
    }
  }

J
jtao1735 已提交
1750
  tsDnodeShellPort = tsServerPort + TSDB_PORT_DNODESHELL;  // udp[6035-6039] tcp[6035]
J
jtao1735 已提交
1751
  tsDnodeDnodePort = tsServerPort + TSDB_PORT_DNODEDNODE;   // udp/tcp
J
jtao1735 已提交
1752
  tsSyncPort = tsServerPort + TSDB_PORT_SYNC;
1753
  tsHttpPort = tsServerPort + TSDB_PORT_HTTP;
J
jtao1735 已提交
1754

1755
  if (tsQueryBufferSize >= 0) {
D
fix bug  
dapan1121 已提交
1756
    tsQueryBufferSizeBytes = tsQueryBufferSize * 1048576UL;
1757 1758
  }

1759 1760
  uInfo("   check global cfg completed");
  uInfo("==================================");
S
TD-1663  
Shengliang Guan 已提交
1761
  taosPrintGlobalCfg();
S
TD-1663  
Shengliang Guan 已提交
1762

S
TD-1663  
Shengliang Guan 已提交
1763
  return 0;
S
slguan 已提交
1764
}
J
jtao1735 已提交
1765

1766
int taosGetFqdnPortFromEp(const char *ep, char *fqdn, uint16_t *port) {
J
jtao1735 已提交
1767 1768 1769 1770 1771 1772 1773 1774 1775
  *port = 0;
  strcpy(fqdn, ep);

  char *temp = strchr(fqdn, ':');
  if (temp) {   
    *temp = 0;
    *port = atoi(temp+1);
  } 
  
H
Hui Li 已提交
1776 1777 1778 1779
  if (*port == 0) {
    *port = tsServerPort;
    return -1;
  }
J
jtao1735 已提交
1780 1781 1782

  return 0; 
}
1783 1784 1785 1786 1787

/*
 * alter dnode 1 balance "vnode:1-dnode:2"
 */

S
Shengliang Guan 已提交
1788
bool taosCheckBalanceCfgOptions(const char *option, int32_t *vnodeId, int32_t *dnodeId) {
1789
  int len = (int)strlen(option);
1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803
  if (strncasecmp(option, "vnode:", 6) != 0) {
    return false;
  }

  int pos = 0;
  for (; pos < len; ++pos) {
    if (option[pos] == '-') break;
  }

  if (++pos >= len) return false;
  if (strncasecmp(option + pos, "dnode:", 6) != 0) {
    return false;
  }

S
Shengliang Guan 已提交
1804 1805 1806
  *vnodeId = strtol(option + 6, NULL, 10);
  *dnodeId = strtol(option + pos + 6, NULL, 10);
  if (*vnodeId <= 1 || *dnodeId <= 0) {
1807 1808 1809 1810
    return false;
  }

  return true;
1811
}