tglobal.c 53.1 KB
Newer Older
S
slguan 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/*
 * 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"
S
Shengliang Guan 已提交
20
#include "ulog.h"
S
Shengliang Guan 已提交
21
#include "tlog.h"
S
slguan 已提交
22 23
#include "tconfig.h"
#include "tglobal.h"
S
Shengliang Guan 已提交
24
#include "tcompare.h"
S
slguan 已提交
25 26
#include "tutil.h"
#include "ttimezone.h"
S
Shengliang Guan 已提交
27
#include "tlocale.h"
S
slguan 已提交
28

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

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

82 83 84 85 86
/*
 * denote if 3.0 query pattern compatible for 2.0
 */
int32_t tsCompatibleModel = 1;

S
Shengliang Guan 已提交
87
// client
88
int32_t tsMaxSQLStringLen = TSDB_MAX_ALLOWED_SQL_LEN;
89
int32_t tsMaxWildCardsLen = TSDB_PATTERN_STRING_DEFAULT_LEN;
90 91
int32_t tsMaxRegexStringLen = TSDB_REGEX_STRING_DEFAULT_LEN;

S
Shengliang Guan 已提交
92
int8_t  tsTscEnableRecordSql = 0;
S
slguan 已提交
93

S
Shengliang Guan 已提交
94 95 96 97 98 99 100
// 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;

101
// the maxinum number of distict query result
102 103
int32_t tsMaxNumOfDistinctResults  = 1000 * 10000;

104 105
// 1 us for interval time range, changed accordingly
int32_t tsMinIntervalTime = 1;
S
Shengliang Guan 已提交
106 107 108 109 110 111 112 113

// 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
114
int32_t tsRetryStreamCompDelay = 10*1000;
S
Shengliang Guan 已提交
115 116

// The delayed computing ration. 10% of the whole computing time window by default.
117
float tsStreamComputDelayRatio = 0.1f;
S
Shengliang Guan 已提交
118 119 120 121

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

H
Haojun Liao 已提交
122 123 124 125 126
// 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;
127
int64_t tsQueryBufferSizeBytes = -1;
H
Haojun Liao 已提交
128

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

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

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

Y
yihaoDeng 已提交
158 159 160 161
// tsdb config 
// For backward compatibility
bool tsdbForceKeepFile = false;

S
Shengliang Guan 已提交
162
// balance
S
Shengliang Guan 已提交
163 164 165
int8_t  tsEnableBalance = 1;
int8_t  tsAlternativeRole = 0;
int32_t tsBalanceInterval = 300;           // seconds
166
int32_t tsOfflineThreshold = 86400 * 10;  // seconds of 10 days
167
int32_t tsMnodeEqualVnodeNum = 4;
S
Shengliang Guan 已提交
168 169 170
int8_t  tsEnableFlowCtrl = 1;
int8_t  tsEnableSlaveQuery = 1;
int8_t  tsEnableAdjustMaster = 1;
S
slguan 已提交
171

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

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

// monitor
S
Shengliang Guan 已提交
194
int8_t  tsEnableMonitorModule = 1;
S
Shengliang Guan 已提交
195 196 197
char    tsMonitorDbName[TSDB_DB_NAME_LEN] = "log";
char    tsInternalPass[] = "secretkey";
int32_t tsMonitorInterval = 30;  // seconds
S
slguan 已提交
198

199
// stream
S
Shengliang Guan 已提交
200
int8_t  tsEnableStream = 1;
201

S
Shengliang Guan 已提交
202
// internal
203
int8_t tsCompactMnodeWal = 0;
S
Shengliang Guan 已提交
204 205
int8_t tsPrintAuth = 0;
int8_t tscEmbedded = 0;
T
tickduan 已提交
206 207 208
char   tsVnodeDir[PATH_MAX] = {0};
char   tsDnodeDir[PATH_MAX] = {0};
char   tsMnodeDir[PATH_MAX] = {0};
209

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

#ifndef _STORAGE
SDiskCfg tsDiskCfg[1];
#else
SDiskCfg tsDiskCfg[TSDB_MAX_DISKS];
#endif
S
Shengliang Guan 已提交
218 219 220 221 222 223 224

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

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

T
tickduan 已提交
238
#ifdef TD_TSZ
T
tickduan 已提交
239 240 241 242 243 244 245
//
// 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 已提交
246 247
uint32_t maxRange     = 500;    // max range
uint32_t curRange     = 100;    // range
T
tickduan 已提交
248
char     Compressor[32] = "ZSTD_COMPRESSOR"; // ZSTD_COMPRESSOR or GZIP_COMPRESSOR 
249
#endif
T
tickduan 已提交
250

251
// long query death-lock
252
int8_t tsDeadLockKillQuery = 0;
253

S
Shengliang Guan 已提交
254 255 256
int32_t (*monStartSystemFp)() = NULL;
void (*monStopSystemFp)() = NULL;
void (*monExecuteSQLFp)(char *sql) = NULL;
257

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

S
slguan 已提交
260 261 262
static pthread_once_t tsInitGlobalCfgOnce = PTHREAD_ONCE_INIT;

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

S
Shengliang Guan 已提交
285
int32_t taosCfgDynamicOptions(char *msg) {
S
slguan 已提交
286 287 288 289 290
  char *option, *value;
  int32_t   olen, vlen;
  int32_t   vint = 0;

  paGetToken(msg, &option, &olen);
S
Shengliang Guan 已提交
291
  if (olen == 0) return -1;;
S
slguan 已提交
292 293 294 295 296 297 298 299

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

300
  uInfo("change dynamic option: %s, value: %d", option, vint);
S
slguan 已提交
301 302 303

  for (int32_t i = 0; i < tsGlobalConfigNum; ++i) {
    SGlobalCfg *cfg = tsGlobalConfig + i;
304
    //if (!(cfg->cfgType & TSDB_CFG_CTYPE_B_LOG)) continue;
S
Shengliang Guan 已提交
305
    if (cfg->valType != TAOS_CFG_VTYPE_INT32 && cfg->valType != TAOS_CFG_VTYPE_INT8) continue;
306
    
S
Shengliang Guan 已提交
307
    int32_t cfgLen = (int32_t)strlen(cfg->option);
308
    if (cfgLen != olen) continue;
T
tickduan 已提交
309 310 311 312 313 314
    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 已提交
315

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

  if (strncasecmp(option, "resetlog", 8) == 0) {
    taosResetLog();
    taosPrintGlobalCfg();
S
Shengliang Guan 已提交
343
    return 0;
S
slguan 已提交
344 345 346
  }

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

  return false;
}

S
TD-1767  
Shengliang Guan 已提交
358 359 360 361 362 363 364 365 366
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 已提交
367 368 369 370 371 372
  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 已提交
373 374 375 376 377
}

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

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

391
static void doInitGlobalConfig(void) {
S
TD-1057  
Shengliang Guan 已提交
392
  osInit();
S
TD-1652  
Shengliang Guan 已提交
393 394
  srand(taosSafeRand());

S
slguan 已提交
395 396 397
  SGlobalCfg cfg = {0};
  
  // ip address
H
Hui Li 已提交
398
  cfg.option = "firstEp";
S
slguan 已提交
399 400
  cfg.ptr = tsFirst;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
S
slguan 已提交
401 402 403
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
404
  cfg.ptrLength = TSDB_EP_LEN;
S
slguan 已提交
405 406 407
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

H
Hui Li 已提交
408
  cfg.option = "secondEp";
J
jtao1735 已提交
409
  cfg.ptr = tsSecond;
S
slguan 已提交
410
  cfg.valType = TAOS_CFG_VTYPE_STRING;
S
slguan 已提交
411 412 413
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 0;
  cfg.maxValue = 0;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
414
  cfg.ptrLength = TSDB_EP_LEN;
S
slguan 已提交
415 416 417
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

418 419 420 421 422 423 424 425 426 427
  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 已提交
428
  // port
J
jtao1735 已提交
429 430
  cfg.option = "serverPort";
  cfg.ptr = &tsServerPort;
431
  cfg.valType = TAOS_CFG_VTYPE_UINT16;
S
slguan 已提交
432 433
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
  cfg.minValue = 1;
434
  cfg.maxValue = 65056;
S
slguan 已提交
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450
  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 已提交
451
  cfg.ptr = tsLogDir;
S
slguan 已提交
452 453
  cfg.valType = TAOS_CFG_VTYPE_DIRECTORY;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT | TSDB_CFG_CTYPE_B_LOG;
454 455 456 457 458 459
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = TSDB_FILENAME_LEN;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
460
  cfg.option = "scriptDir";
S
slguan 已提交
461
  cfg.ptr = tsScriptDir;
S
slguan 已提交
462 463 464 465 466 467 468 469 470
  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 已提交
471
  cfg.ptr = tsDataDir;
S
TD-1767  
Shengliang Guan 已提交
472
  cfg.valType = TAOS_CFG_VTYPE_DATA_DIRCTORY;
S
slguan 已提交
473 474 475 476 477 478 479
  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 已提交
480 481
  cfg.option = "arbitrator";
  cfg.ptr = tsArbitrator;
S
slguan 已提交
482
  cfg.valType = TAOS_CFG_VTYPE_STRING;
483
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
J
jtao1735 已提交
484 485
  cfg.minValue = 0;
  cfg.maxValue = 0;
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
486
  cfg.ptrLength = TSDB_EP_LEN;
J
jtao1735 已提交
487 488 489
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
490 491 492 493 494 495 496 497 498 499 500
  // 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 已提交
501 502 503 504 505 506 507 508 509 510
  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);

511 512
  cfg.option = "ratioOfQueryCores";
  cfg.ptr = &tsRatioOfQueryCores;
S
slguan 已提交
513 514
  cfg.valType = TAOS_CFG_VTYPE_FLOAT;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
515 516
  cfg.minValue = 0.0f;
  cfg.maxValue = 2.0f;
S
slguan 已提交
517 518 519 520
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

521 522 523 524 525 526 527 528 529 530
  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);
  
531 532
  cfg.option = "numOfMnodes";
  cfg.ptr = &tsNumOfMnodes;
S
slguan 已提交
533 534 535 536 537 538 539 540
  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 已提交
541 542
  cfg.option = "vnodeBak";
  cfg.ptr = &tsEnableVnodeBak;
S
Shengliang Guan 已提交
543
  cfg.valType = TAOS_CFG_VTYPE_INT8;
H
Hui Li 已提交
544 545 546 547 548 549 550
  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 已提交
551 552
  cfg.option = "telemetryReporting";
  cfg.ptr = &tsEnableTelemetryReporting;
S
Shengliang Guan 已提交
553
  cfg.valType = TAOS_CFG_VTYPE_INT8;
B
Bomin Zhang 已提交
554 555 556 557 558 559 560
  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 已提交
561 562
  cfg.option = "balance";
  cfg.ptr = &tsEnableBalance;
S
Shengliang Guan 已提交
563
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
Shengliang Guan 已提交
564 565 566 567 568 569 570
  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 已提交
571
  cfg.option = "balanceInterval";
S
slguan 已提交
572
  cfg.ptr = &tsBalanceInterval;
S
slguan 已提交
573 574 575 576 577 578 579 580
  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);

581
  // 0-any; 1-mnode; 2-vnode
S
Shengliang Guan 已提交
582
  cfg.option = "role";
S
slguan 已提交
583
  cfg.ptr = &tsAlternativeRole;
S
Shengliang Guan 已提交
584
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
585 586 587 588 589 590 591 592 593
  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 已提交
594
  cfg.ptr = &tsMaxTmrCtrl;
S
slguan 已提交
595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616
  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 已提交
617
  cfg.minValue = 3;
618
  cfg.maxValue = 86400 * 365;
S
slguan 已提交
619 620 621 622 623 624 625 626 627 628 629 630 631 632
  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);

张宏权 已提交
633 634 635 636 637 638 639 640 641 642
  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 已提交
643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 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
  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 已提交
687
  cfg.minValue = 1;
S
slguan 已提交
688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713
  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";
714
  cfg.ptr = &tsRetryStreamCompDelay;
S
slguan 已提交
715 716 717 718 719 720 721 722 723 724 725 726
  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;
727 728
  cfg.minValue = 0.1f;
  cfg.maxValue = 0.9f;
S
slguan 已提交
729 730 731 732
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

733 734 735 736 737 738 739 740 741 742
  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 已提交
743
  // database configs
S
Shengliang Guan 已提交
744
  cfg.option = "maxTablesPerVnode";
H
hjxilinx 已提交
745
  cfg.ptr = &tsMaxTablePerVnode;
S
slguan 已提交
746
  cfg.valType = TAOS_CFG_VTYPE_INT32;
S
slguan 已提交
747
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
S
slguan 已提交
748 749
  cfg.minValue = TSDB_MIN_TABLES;
  cfg.maxValue = TSDB_MAX_TABLES;
S
slguan 已提交
750 751 752 753
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773
  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 已提交
774 775 776
  cfg.option = "cache";
  cfg.ptr = &tsCacheBlockSize;
  cfg.valType = TAOS_CFG_VTYPE_INT32;
S
slguan 已提交
777
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
S
slguan 已提交
778 779
  cfg.minValue = TSDB_MIN_CACHE_BLOCK_SIZE;
  cfg.maxValue = TSDB_MAX_CACHE_BLOCK_SIZE;
S
slguan 已提交
780
  cfg.ptrLength = 0;
H
Haojun Liao 已提交
781
  cfg.unitType = TAOS_CFG_UTYPE_MB;
S
slguan 已提交
782 783 784
  taosInitConfigOption(cfg);

  cfg.option = "blocks";
H
hjxilinx 已提交
785
  cfg.ptr = &tsBlocksPerVnode;
S
slguan 已提交
786 787 788 789 790
  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 已提交
791
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
S
slguan 已提交
792 793 794 795 796 797
  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 已提交
798 799
  cfg.minValue = TSDB_MIN_DAYS_PER_FILE;
  cfg.maxValue = TSDB_MAX_DAYS_PER_FILE;
S
slguan 已提交
800 801 802 803 804 805 806 807
  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 已提交
808 809
  cfg.minValue = TSDB_MIN_KEEP;
  cfg.maxValue = TSDB_MAX_KEEP;
S
slguan 已提交
810 811 812 813
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
814 815
  cfg.option = "minRows";
  cfg.ptr = &tsMinRowsInFileBlock;
S
slguan 已提交
816 817
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
S
slguan 已提交
818 819
  cfg.minValue = TSDB_MIN_MIN_ROW_FBLOCK;
  cfg.maxValue = TSDB_MAX_MIN_ROW_FBLOCK;
S
slguan 已提交
820 821 822 823
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
824 825
  cfg.option = "maxRows";
  cfg.ptr = &tsMaxRowsInFileBlock;
S
slguan 已提交
826 827
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
S
slguan 已提交
828 829
  cfg.minValue = TSDB_MIN_MAX_ROW_FBLOCK;
  cfg.maxValue = TSDB_MAX_MAX_ROW_FBLOCK;
S
slguan 已提交
830 831 832 833
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

834 835 836 837 838 839 840 841 842 843
  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 已提交
844 845
  cfg.option = "comp";
  cfg.ptr = &tsCompression;
S
TD-1207  
Shengliang Guan 已提交
846
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
847 848 849 850 851 852 853
  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);

854
  cfg.option = "walLevel";
H
hjxilinx 已提交
855
  cfg.ptr = &tsWAL;
S
TD-1207  
Shengliang Guan 已提交
856
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
857
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
H
hjxilinx 已提交
858 859
  cfg.minValue = TSDB_MIN_WAL_LEVEL;
  cfg.maxValue = TSDB_MAX_WAL_LEVEL;
S
slguan 已提交
860 861 862 863
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

864
  cfg.option = "fsync";
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
865 866 867 868 869 870 871 872 873
  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 已提交
874 875
  cfg.option = "replica";
  cfg.ptr = &tsReplications;
S
slguan 已提交
876 877
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
878 879
  cfg.minValue = TSDB_MIN_DB_REPLICA_OPTION;
  cfg.maxValue = TSDB_MAX_DB_REPLICA_OPTION;
S
slguan 已提交
880 881 882 883
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
Shengliang Guan 已提交
884 885 886 887 888 889 890 891 892 893
  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);

894 895 896 897
  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 已提交
898 899
  cfg.minValue = TSDB_MIN_DB_QUORUM_OPTION;
  cfg.maxValue = TSDB_MAX_DB_QUORUM_OPTION;
900 901 902 903
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
Shengliang Guan 已提交
904 905
  cfg.option = "update";
  cfg.ptr = &tsUpdate;
S
Shengliang Guan 已提交
906
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
Shengliang Guan 已提交
907 908 909 910
  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;
911 912 913 914 915 916 917 918 919 920
  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 已提交
921 922 923
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
TD-1310  
Shengliang Guan 已提交
924 925
  cfg.option = "mqttHostName";
  cfg.ptr = tsMqttHostName;
926
  cfg.valType = TAOS_CFG_VTYPE_STRING;
927
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_NOT_PRINT;
928 929
  cfg.minValue = 0;
  cfg.maxValue = 0;
S
TD-1310  
Shengliang Guan 已提交
930
  cfg.ptrLength = TSDB_MQTT_HOSTNAME_LEN;
931 932
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);
933

S
TD-1310  
Shengliang Guan 已提交
934 935
  cfg.option = "mqttPort";
  cfg.ptr = tsMqttPort;
936
  cfg.valType = TAOS_CFG_VTYPE_STRING;
937
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_NOT_PRINT;
938 939
  cfg.minValue = 0;
  cfg.maxValue = 0;
S
TD-1310  
Shengliang Guan 已提交
940
  cfg.ptrLength = TSDB_MQTT_PORT_LEN;
941 942
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);
S
TD-1310  
Shengliang Guan 已提交
943 944 945 946

  cfg.option = "mqttTopic";
  cfg.ptr = tsMqttTopic;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
947
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_NOT_PRINT;
S
TD-1310  
Shengliang Guan 已提交
948 949 950 951 952 953
  cfg.minValue = 0;
  cfg.maxValue = 0;
  cfg.ptrLength = TSDB_MQTT_TOPIC_LEN;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
954 955 956 957 958
  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 已提交
959
  cfg.maxValue = 100000000.0f;
S
slguan 已提交
960 961 962 963
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

964 965
  cfg.option = "compressColData";
  cfg.ptr = &tsCompressColData;
966 967 968 969
  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;
970 971 972 973
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
974 975 976 977 978 979 980 981 982 983
  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);

984 985
  cfg.option = "maxWildCardsLength";
  cfg.ptr = &tsMaxWildCardsLen;
986 987 988
  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;
989
  cfg.maxValue = TSDB_MAX_FIELD_LEN;
990 991 992 993
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_BYTE;
  taosInitConfigOption(cfg);

994 995 996 997 998 999 1000 1001 1002 1003
  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 已提交
1004 1005 1006 1007 1008 1009 1010 1011 1012 1013
  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 已提交
1014 1015 1016 1017 1018
  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 已提交
1019
  cfg.maxValue = 500000000000.0f;
H
Haojun Liao 已提交
1020 1021 1022 1023
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_BYTE;
  taosInitConfigOption(cfg);

H
Haojun Liao 已提交
1024 1025
  cfg.option = "retrieveBlockingModel";
  cfg.ptr = &tsRetrieveBlockingModel;
1026 1027 1028 1029 1030 1031 1032 1033
  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);

1034 1035
  cfg.option = "keepColumnName";
  cfg.ptr = &tsKeepOriginalColumnName;
S
Shengliang Guan 已提交
1036
  cfg.valType = TAOS_CFG_VTYPE_INT8;
1037 1038 1039 1040 1041 1042 1043
  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 已提交
1044 1045 1046 1047
  // locale & charset
  cfg.option = "timezone";
  cfg.ptr = tsTimezone;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
1048
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
S
slguan 已提交
1049 1050
  cfg.minValue = 0;
  cfg.maxValue = 0;
S
Shengliang Guan 已提交
1051
  cfg.ptrLength = TSDB_TIMEZONE_LEN;
S
slguan 已提交
1052 1053 1054 1055 1056 1057
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "locale";
  cfg.ptr = tsLocale;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
1058
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
S
slguan 已提交
1059 1060
  cfg.minValue = 0;
  cfg.maxValue = 0;
S
Shengliang Guan 已提交
1061
  cfg.ptrLength = TSDB_LOCALE_LEN;
S
slguan 已提交
1062 1063 1064 1065 1066 1067
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

  cfg.option = "charset";
  cfg.ptr = tsCharset;
  cfg.valType = TAOS_CFG_VTYPE_STRING;
1068
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW | TSDB_CFG_CTYPE_B_CLIENT;
S
slguan 已提交
1069 1070
  cfg.minValue = 0;
  cfg.maxValue = 0;
S
Shengliang Guan 已提交
1071
  cfg.ptrLength = TSDB_LOCALE_LEN;
S
slguan 已提交
1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085
  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);

1086 1087
  cfg.option = "maxConnections";
  cfg.ptr = &tsMaxConnections;
S
slguan 已提交
1088 1089
  cfg.valType = TAOS_CFG_VTYPE_INT32;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
1090
  cfg.minValue = 1;
1091
  cfg.maxValue = 100000;
S
slguan 已提交
1092 1093 1094 1095 1096 1097 1098 1099
  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;
1100
  cfg.minValue = 0.001f;
S
slguan 已提交
1101 1102 1103 1104 1105 1106
  cfg.maxValue = 10000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_GB;
  taosInitConfigOption(cfg);

  cfg.option = "minimalTmpDirGB";
H
Haojun Liao 已提交
1107
  cfg.ptr = &tsReservedTmpDirectorySpace;
S
slguan 已提交
1108 1109
  cfg.valType = TAOS_CFG_VTYPE_FLOAT;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
1110
  cfg.minValue = 0.001f;
S
slguan 已提交
1111 1112 1113 1114 1115 1116 1117 1118 1119
  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;
1120
  cfg.minValue = 0.001f;
S
slguan 已提交
1121 1122 1123 1124 1125 1126
  cfg.maxValue = 10000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_GB;
  taosInitConfigOption(cfg);

  // module configs
S
Shengliang Guan 已提交
1127
  cfg.option = "mnodeEqualVnodeNum";
1128
  cfg.ptr = &tsMnodeEqualVnodeNum;
S
slguan 已提交
1129 1130 1131 1132 1133 1134
  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 已提交
1135 1136 1137 1138
  taosInitConfigOption(cfg);

    // module configs
  cfg.option = "flowctrl";
S
TD-2498  
Shengliang Guan 已提交
1139
  cfg.ptr = &tsEnableFlowCtrl;
S
Shengliang Guan 已提交
1140
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
TD-2498  
Shengliang Guan 已提交
1141 1142 1143 1144 1145 1146 1147 1148 1149
  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 已提交
1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160
  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 已提交
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;
S
slguan 已提交
1166 1167 1168 1169
  taosInitConfigOption(cfg);

  cfg.option = "http";
  cfg.ptr = &tsEnableHttpModule;
S
Shengliang Guan 已提交
1170
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1171 1172 1173 1174 1175 1176 1177
  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);

1178 1179
  cfg.option = "mqtt";
  cfg.ptr = &tsEnableMqttModule;
S
Shengliang Guan 已提交
1180
  cfg.valType = TAOS_CFG_VTYPE_INT8;
1181 1182 1183 1184 1185 1186 1187
  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 已提交
1188 1189
  cfg.option = "monitor";
  cfg.ptr = &tsEnableMonitorModule;
S
Shengliang Guan 已提交
1190
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1191 1192 1193 1194 1195 1196 1197
  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);

1198 1199
  cfg.option = "stream";
  cfg.ptr = &tsEnableStream;
S
Shengliang Guan 已提交
1200
  cfg.valType = TAOS_CFG_VTYPE_INT8;
1201 1202 1203 1204 1205 1206 1207
  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);

1208 1209 1210 1211 1212 1213 1214 1215 1216 1217
  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 已提交
1218 1219
  cfg.option = "httpEnableRecordSql";
  cfg.ptr = &tsHttpEnableRecordSql;
S
Shengliang Guan 已提交
1220
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1221 1222 1223 1224 1225 1226 1227 1228 1229
  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 已提交
1230
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241
  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;
1242
  cfg.minValue = 2;
S
slguan 已提交
1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257
  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);

1258 1259 1260 1261 1262 1263 1264 1265 1266 1267
  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 已提交
1268 1269 1270 1271 1272
  // 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 已提交
1273
  cfg.minValue = 1000;
S
slguan 已提交
1274 1275 1276 1277 1278
  cfg.maxValue = 2000000000;
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

1279
  cfg.option = "logKeepDays";
S
TD-1263  
Shengliang Guan 已提交
1280
  cfg.ptr = &tsLogKeepDays;
1281 1282
  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 已提交
1283
  cfg.minValue = -365000;
S
TD-1263  
Shengliang Guan 已提交
1284
  cfg.maxValue = 365000;
1285 1286 1287 1288
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

S
slguan 已提交
1289 1290
  cfg.option = "asyncLog";
  cfg.ptr = &tsAsyncLog;
S
Shengliang Guan 已提交
1291
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309
  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 已提交
1310
  cfg.ptr = &mDebugFlag;
S
slguan 已提交
1311 1312 1313 1314 1315 1316 1317 1318 1319
  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";
1320
  cfg.ptr = &dDebugFlag;
S
slguan 已提交
1321 1322 1323 1324 1325 1326 1327 1328
  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 已提交
1329 1330 1331 1332 1333 1334 1335 1336 1337 1338
  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 已提交
1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349
  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 已提交
1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380
  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 已提交
1381
  cfg.ptr = &cDebugFlag;
S
slguan 已提交
1382 1383 1384 1385 1386 1387 1388 1389 1390
  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 已提交
1391
  cfg.ptr = &jniDebugFlag;
S
slguan 已提交
1392 1393 1394 1395 1396 1397 1398 1399 1400
  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 已提交
1401
  cfg.ptr = &odbcDebugFlag;
S
slguan 已提交
1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429
  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);

1430 1431 1432 1433 1434 1435 1436 1437 1438 1439
  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 已提交
1440 1441
  cfg.option = "monDebugFlag";
  cfg.ptr = &monDebugFlag;
S
slguan 已提交
1442 1443 1444 1445 1446 1447 1448 1449 1450
  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 已提交
1451
  cfg.ptr = &qDebugFlag;
S
slguan 已提交
1452 1453 1454 1455 1456 1457 1458 1459
  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 已提交
1460 1461 1462 1463 1464 1465 1466 1467 1468 1469
  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);

1470 1471 1472 1473 1474 1475 1476 1477 1478 1479
  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 已提交
1480 1481 1482 1483 1484 1485 1486 1487 1488 1489
  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);

1490
  cfg.option = "enableRecordSql";
S
slguan 已提交
1491
  cfg.ptr = &tsTscEnableRecordSql;
S
Shengliang Guan 已提交
1492
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1493 1494 1495 1496 1497 1498 1499 1500 1501
  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 已提交
1502
  cfg.valType = TAOS_CFG_VTYPE_INT8;
S
slguan 已提交
1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 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
  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);
1550 1551 1552 1553 1554 1555

  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;
1556
  cfg.maxValue = 65536;
1557 1558 1559
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);
1560 1561 1562 1563 1564 1565 1566

  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 已提交
1567
  cfg.ptrLength = PATH_MAX;
1568 1569
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);
T
tickduan 已提交
1570

1571 1572 1573 1574 1575 1576 1577 1578 1579 1580
  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);

1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591
   // 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 已提交
1592
#ifdef TD_TSZ
T
tickduan 已提交
1593
  // lossy compress
T
tickduan 已提交
1594
  cfg.option = "lossyColumns";
T
tickduan 已提交
1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607
  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 已提交
1608 1609
  cfg.minValue = MIN_FLOAT;
  cfg.maxValue = MAX_FLOAT;
T
tickduan 已提交
1610 1611
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
T
tickduan 已提交
1612 1613

  
T
tickduan 已提交
1614 1615 1616 1617 1618 1619
  taosInitConfigOption(cfg);

  cfg.option = "dPrecision";
  cfg.ptr = &dPrecision;
  cfg.valType = TAOS_CFG_VTYPE_DOUBLE;
  cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG;
T
tickduan 已提交
1620 1621
  cfg.minValue = MIN_FLOAT;
  cfg.maxValue = MAX_FLOAT;
T
tickduan 已提交
1622 1623 1624 1625
  cfg.ptrLength = 0;
  cfg.unitType = TAOS_CFG_UTYPE_NONE;
  taosInitConfigOption(cfg);

T
tickduan 已提交
1626 1627
  cfg.option = "maxRange";
  cfg.ptr = &maxRange;
T
tickduan 已提交
1628 1629 1630 1631 1632 1633 1634 1635
  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 已提交
1636
  cfg.option = "range";
T
tickduan 已提交
1637
  cfg.ptr = &curRange;
T
tickduan 已提交
1638 1639 1640 1641 1642 1643 1644
  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);
1645 1646 1647
  assert(tsGlobalConfigNum == TSDB_CFG_MAX_NUM);
#else
  assert(tsGlobalConfigNum == TSDB_CFG_MAX_NUM - 5);
1648
#endif
T
tickduan 已提交
1649

S
slguan 已提交
1650 1651 1652 1653 1654 1655
}

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

S
TD-1663  
Shengliang Guan 已提交
1656
int32_t taosCheckGlobalCfg() {
R
root 已提交
1657
  char fqdn[TSDB_FQDN_LEN];
1658 1659
  uint16_t port;

S
Shengliang Guan 已提交
1660
  if (debugFlag & DEBUG_TRACE || debugFlag & DEBUG_DEBUG || debugFlag & DEBUG_DUMP) {
guanshengliang's avatar
guanshengliang 已提交
1661 1662 1663
    taosSetAllDebugFlag();
  }
  
H
Hui Li 已提交
1664 1665 1666 1667
  if (tsLocalFqdn[0] == 0) {
    taosGetFqdn(tsLocalFqdn);
  }

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

S
slguan 已提交
1671 1672
  if (tsFirst[0] == 0) {
    strcpy(tsFirst, tsLocalEp);
1673 1674
  } else {
    taosGetFqdnPortFromEp(tsFirst, fqdn, &port);
R
root 已提交
1675
    snprintf(tsFirst, sizeof(tsFirst), "%s:%u", fqdn, port);
S
slguan 已提交
1676 1677
  }

J
jtao1735 已提交
1678 1679
  if (tsSecond[0] == 0) {
    strcpy(tsSecond, tsLocalEp);
1680 1681
  } else {
    taosGetFqdnPortFromEp(tsSecond, fqdn, &port);
R
root 已提交
1682
    snprintf(tsSecond, sizeof(tsSecond), "%s:%u", fqdn, port);
S
slguan 已提交
1683
  }
1684

S
TD-1767  
Shengliang Guan 已提交
1685
  taosCheckDataDirCfg();
D
fix bug  
dapan1121 已提交
1686

1687
  if (!taosDirExist(tsTempDir)) {
D
fix bug  
dapan1121 已提交
1688 1689 1690
    return -1;
  }
  
S
slguan 已提交
1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703
  taosGetSystemInfo();

  tsSetLocale();

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

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

1704 1705 1706 1707 1708 1709 1710
  if (tsHttpMaxThreads == 2) {
    int32_t halfNumOfCores = tsNumOfCores >> 1;
    if (halfNumOfCores > 2) {
      tsHttpMaxThreads = halfNumOfCores;
    }
  }

1711 1712 1713 1714 1715 1716
  if (tsMaxTablePerVnode < tsMinTablePerVnode) {
    uError("maxTablesPerVnode(%d) < minTablesPerVnode(%d), reset to minTablesPerVnode(%d)",
	   tsMaxTablePerVnode, tsMinTablePerVnode, tsMinTablePerVnode);
    tsMaxTablePerVnode = tsMinTablePerVnode;
  }

S
slguan 已提交
1717 1718
  // todo refactor
  tsVersion = 0;
1719
  for (int ver = 0, i = 0; i < TSDB_VERSION_LEN; ++i) {
S
slguan 已提交
1720
    if (version[i] >= '0' && version[i] <= '9') {
1721 1722 1723 1724 1725 1726
      ver = ver * 10 + (version[i] - '0');
    } else if (version[i] == '.') {
      tsVersion |= ver & 0xFF;
      tsVersion <<= 8;

      ver = 0;
S
slguan 已提交
1727
    } else if (version[i] == 0) {
1728 1729
      tsVersion |= ver & 0xFF;

S
slguan 已提交
1730 1731 1732 1733
      break;
    }
  }

J
jtao1735 已提交
1734
  tsDnodeShellPort = tsServerPort + TSDB_PORT_DNODESHELL;  // udp[6035-6039] tcp[6035]
J
jtao1735 已提交
1735
  tsDnodeDnodePort = tsServerPort + TSDB_PORT_DNODEDNODE;   // udp/tcp
J
jtao1735 已提交
1736
  tsSyncPort = tsServerPort + TSDB_PORT_SYNC;
1737
  tsHttpPort = tsServerPort + TSDB_PORT_HTTP;
J
jtao1735 已提交
1738

1739
  if (tsQueryBufferSize >= 0) {
D
fix bug  
dapan1121 已提交
1740
    tsQueryBufferSizeBytes = tsQueryBufferSize * 1048576UL;
1741 1742
  }

1743 1744
  uInfo("   check global cfg completed");
  uInfo("==================================");
S
TD-1663  
Shengliang Guan 已提交
1745
  taosPrintGlobalCfg();
S
TD-1663  
Shengliang Guan 已提交
1746

S
TD-1663  
Shengliang Guan 已提交
1747
  return 0;
S
slguan 已提交
1748
}
J
jtao1735 已提交
1749

1750
int taosGetFqdnPortFromEp(const char *ep, char *fqdn, uint16_t *port) {
J
jtao1735 已提交
1751 1752 1753 1754 1755 1756 1757 1758 1759
  *port = 0;
  strcpy(fqdn, ep);

  char *temp = strchr(fqdn, ':');
  if (temp) {   
    *temp = 0;
    *port = atoi(temp+1);
  } 
  
H
Hui Li 已提交
1760 1761 1762 1763
  if (*port == 0) {
    *port = tsServerPort;
    return -1;
  }
J
jtao1735 已提交
1764 1765 1766

  return 0; 
}
1767 1768 1769 1770 1771

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

S
Shengliang Guan 已提交
1772
bool taosCheckBalanceCfgOptions(const char *option, int32_t *vnodeId, int32_t *dnodeId) {
1773
  int len = (int)strlen(option);
1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787
  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 已提交
1788 1789 1790
  *vnodeId = strtol(option + 6, NULL, 10);
  *dnodeId = strtol(option + pos + 6, NULL, 10);
  if (*vnodeId <= 1 || *dnodeId <= 0) {
1791 1792 1793 1794
    return false;
  }

  return true;
1795
}