refactor(tools): adjust client config parameters
This commit is contained in:
parent
0970d1e418
commit
bc65c92ee3
|
@ -34,13 +34,9 @@ extern int32_t tsVersion;
|
|||
extern int32_t tsStatusInterval;
|
||||
|
||||
// common
|
||||
extern int32_t tsRpcTimer;
|
||||
extern int32_t tsRpcMaxTime;
|
||||
extern bool tsRpcForceTcp; // all commands go to tcp protocol if this is enabled
|
||||
extern int32_t tsMaxConnections;
|
||||
extern int32_t tsMaxShellConns;
|
||||
extern int32_t tsShellActivityTimer;
|
||||
extern int32_t tsMaxTmrCtrl;
|
||||
extern int32_t tsCompressMsgSize;
|
||||
extern int32_t tsCompressColData;
|
||||
extern int32_t tsMaxNumOfDistinctResults;
|
||||
|
@ -95,9 +91,6 @@ extern bool tsKeepOriginalColumnName;
|
|||
extern bool tsDeadLockKillQuery;
|
||||
|
||||
// client
|
||||
extern int32_t tsMaxWildCardsLen;
|
||||
extern int32_t tsMaxRegexStringLen;
|
||||
extern int32_t tsMaxNumOfOrderedResults;
|
||||
extern int32_t tsMinSlidingTime;
|
||||
extern int32_t tsMinIntervalTime;
|
||||
extern int32_t tsMaxStreamComputDelay;
|
||||
|
|
|
@ -32,13 +32,9 @@ int32_t tsVersion = 30000000;
|
|||
int32_t tsStatusInterval = 1; // second
|
||||
|
||||
// common
|
||||
int32_t tsRpcTimer = 300;
|
||||
int32_t tsRpcMaxTime = 600; // seconds;
|
||||
bool tsRpcForceTcp = true; // disable this, means query, show command use udp protocol as default
|
||||
int32_t tsMaxShellConns = 50000;
|
||||
int32_t tsMaxConnections = 50000;
|
||||
int32_t tsShellActivityTimer = 3; // second
|
||||
int32_t tsMaxBinaryDisplayWidth = 30;
|
||||
bool tsEnableSlaveQuery = true;
|
||||
bool tsPrintAuth = false;
|
||||
|
||||
|
@ -102,14 +98,6 @@ int32_t tsCompressColData = -1;
|
|||
*/
|
||||
int32_t tsCompatibleModel = 1;
|
||||
|
||||
// client
|
||||
int32_t tsMaxWildCardsLen = TSDB_PATTERN_STRING_DEFAULT_LEN;
|
||||
int32_t tsMaxRegexStringLen = TSDB_REGEX_STRING_DEFAULT_LEN;
|
||||
|
||||
// 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;
|
||||
|
||||
|
@ -308,19 +296,10 @@ static int32_t taosAddClientCfg(SConfig *pCfg) {
|
|||
if (cfgAddInt32(pCfg, "serverPort", defaultServerPort, 1, 65056, 1) != 0) return -1;
|
||||
if (cfgAddDir(pCfg, "tempDir", tsTempDir, 1) != 0) return -1;
|
||||
if (cfgAddFloat(pCfg, "minimalTempDirGB", 1.0f, 0.001f, 10000000, 1) != 0) return -1;
|
||||
if (cfgAddInt32(pCfg, "maxTmrCtrl", tsMaxTmrCtrl, 8, 2048, 1) != 0) return -1;
|
||||
if (cfgAddInt32(pCfg, "rpcTimer", tsRpcTimer, 100, 3000, 1) != 0) return -1;
|
||||
if (cfgAddInt32(pCfg, "rpcMaxTime", tsRpcMaxTime, 100, 7200, 1) != 0) return -1;
|
||||
if (cfgAddBool(pCfg, "rpcForceTcp", tsRpcForceTcp, 1) != 0) return -1;
|
||||
if (cfgAddInt32(pCfg, "shellActivityTimer", tsShellActivityTimer, 1, 120, 1) != 0) return -1;
|
||||
if (cfgAddInt32(pCfg, "compressMsgSize", tsCompressMsgSize, -1, 100000000, 1) != 0) return -1;
|
||||
if (cfgAddInt32(pCfg, "compressColData", tsCompressColData, -1, 100000000, 1) != 0) return -1;
|
||||
if (cfgAddInt32(pCfg, "maxWildCardsLength", tsMaxWildCardsLen, 0, TSDB_MAX_FIELD_LEN, 1) != 0) return -1;
|
||||
if (cfgAddInt32(pCfg, "maxRegexStringLen", tsMaxRegexStringLen, 0, TSDB_MAX_FIELD_LEN, 1) != 0) return -1;
|
||||
if (cfgAddInt32(pCfg, "maxNumOfOrderedRes", tsMaxNumOfOrderedResults, 128, TSDB_MAX_ALLOWED_SQL_LEN, 1) != 0)
|
||||
return -1;
|
||||
if (cfgAddBool(pCfg, "keepColumnName", tsKeepOriginalColumnName, 1) != 0) return -1;
|
||||
if (cfgAddInt32(pCfg, "maxBinaryDisplayWidth", tsMaxBinaryDisplayWidth, 1, 65536, 1) != 0) return -1;
|
||||
|
||||
tsNumOfTaskQueueThreads = tsNumOfCores / 4;
|
||||
tsNumOfTaskQueueThreads = TRANGE(tsNumOfTaskQueueThreads, 1, 2);
|
||||
|
@ -500,18 +479,10 @@ static int32_t taosSetClientCfg(SConfig *pCfg) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
tsMaxTmrCtrl = cfgGetItem(pCfg, "maxTmrCtrl")->i32;
|
||||
tsRpcTimer = cfgGetItem(pCfg, "rpcTimer")->i32;
|
||||
tsRpcMaxTime = cfgGetItem(pCfg, "rpcMaxTime")->i32;
|
||||
tsRpcForceTcp = cfgGetItem(pCfg, "rpcForceTcp")->i32;
|
||||
tsShellActivityTimer = cfgGetItem(pCfg, "shellActivityTimer")->i32;
|
||||
tsCompressMsgSize = cfgGetItem(pCfg, "compressMsgSize")->i32;
|
||||
tsCompressColData = cfgGetItem(pCfg, "compressColData")->i32;
|
||||
tsMaxWildCardsLen = cfgGetItem(pCfg, "maxWildCardsLength")->i32;
|
||||
tsMaxRegexStringLen = cfgGetItem(pCfg, "maxRegexStringLen")->i32;
|
||||
tsMaxNumOfOrderedResults = cfgGetItem(pCfg, "maxNumOfOrderedRes")->i32;
|
||||
tsKeepOriginalColumnName = cfgGetItem(pCfg, "keepColumnName")->bval;
|
||||
tsMaxBinaryDisplayWidth = cfgGetItem(pCfg, "maxBinaryDisplayWidth")->i32;
|
||||
tsNumOfTaskQueueThreads = cfgGetItem(pCfg, "numOfTaskQueueThreads")->i32;
|
||||
return 0;
|
||||
}
|
||||
|
@ -701,6 +672,6 @@ void taosCfgDynamicOptions(const char *option, const char *value) {
|
|||
|
||||
if (strcasecmp(option, "resetlog") == 0) {
|
||||
taosResetLog();
|
||||
cfgDumpCfg(tsCfg, 1, false);
|
||||
cfgDumpCfg(tsCfg, 0, false);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@ static void dmPrintVersion() {
|
|||
|
||||
static void dmDumpCfg() {
|
||||
SConfig *pCfg = taosGetCfg();
|
||||
cfgDumpCfg(pCfg, 0, 1);
|
||||
cfgDumpCfg(pCfg, 0, true);
|
||||
}
|
||||
|
||||
static SDnodeOpt dmGetOpt() {
|
||||
|
|
|
@ -164,7 +164,6 @@ static int32_t syncIOStartInternal(SSyncIO *io) {
|
|||
taosBlockSIGPIPE();
|
||||
|
||||
rpcInit();
|
||||
tsRpcForceTcp = 1;
|
||||
|
||||
// cient rpc init
|
||||
{
|
||||
|
|
|
@ -524,6 +524,8 @@ void cfgDumpCfg(SConfig *pCfg, bool tsc, bool dump) {
|
|||
for (int32_t i = 0; i < size; ++i) {
|
||||
SConfigItem *pItem = taosArrayGet(pCfg->array, i);
|
||||
if (tsc && !pItem->tsc) continue;
|
||||
if (dump && strcmp(pItem->name, "scriptDir") == 0) continue;
|
||||
if (dump && strcmp(pItem->name, "simDebugFlag") == 0) continue;
|
||||
tstrncpy(src, cfgStypeStr(pItem->stype), CFG_SRC_PRINT_LEN);
|
||||
for (int32_t i = 0; i < CFG_SRC_PRINT_LEN; ++i) {
|
||||
if (src[i] == 0) src[i] = ' ';
|
||||
|
@ -562,10 +564,10 @@ void cfgDumpCfg(SConfig *pCfg, bool tsc, bool dump) {
|
|||
break;
|
||||
case CFG_DTYPE_FLOAT:
|
||||
if (dump) {
|
||||
printf("%s %s %f", src, name, pItem->fval);
|
||||
printf("%s %s %.2f", src, name, pItem->fval);
|
||||
printf("\n");
|
||||
} else {
|
||||
uInfo("%s %s %f", src, name, pItem->fval);
|
||||
uInfo("%s %s %.2f", src, name, pItem->fval);
|
||||
}
|
||||
break;
|
||||
case CFG_DTYPE_STRING:
|
||||
|
|
|
@ -110,7 +110,7 @@ typedef struct time_wheel_t {
|
|||
tmr_obj_t** slots;
|
||||
} time_wheel_t;
|
||||
|
||||
int32_t tsMaxTmrCtrl = 512;
|
||||
static int32_t tsMaxTmrCtrl = 512;
|
||||
|
||||
static TdThreadOnce tmrModuleInit = PTHREAD_ONCE_INIT;
|
||||
static TdThreadMutex tmrCtrlMutex;
|
||||
|
|
|
@ -59,7 +59,7 @@ void shellPrintHelp() {
|
|||
printf("%s%s%s\n", indent, indent, "Print program version.");
|
||||
}
|
||||
|
||||
void shellParseArgsInWindows(int argc, char *argv[]) {
|
||||
void shellParseArgsWithoutArgp(int argc, char *argv[]) {
|
||||
for (int i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "-h") == 0) {
|
||||
if (i < argc - 1) {
|
||||
|
@ -97,7 +97,7 @@ void shellParseArgsInWindows(int argc, char *argv[]) {
|
|||
if (i < argc - 1) {
|
||||
arguments->cfgdir = argv[++i];
|
||||
} else {
|
||||
fprintf(stderr, "Option -c requires an argument\n");
|
||||
fprintf(stderr, "option -c requires an argument\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
} else if (strcmp(argv[i], "-C") == 0) {
|
||||
|
@ -186,10 +186,10 @@ static struct argp_option shellOptions[] = {
|
|||
{"host", 'h', "HOST", 0, "TDengine server FQDN to connect. The default host is localhost."},
|
||||
{"port", 'P', "PORT", 0, "The TCP/IP port number to use for the connection."},
|
||||
{"user", 'u', "USER", 0, "The user name to use when connecting to the server."},
|
||||
{"password", 'p', "PASSWORD", 0, "The password to use when connecting to the server."},
|
||||
{"password", 'p', 0, 0, "The password to use when connecting to the server."},
|
||||
{"auth", 'a', "AUTH", 0, "The auth string to use when connecting to the server."},
|
||||
{"generate-auth", 'A', 0, 0, "Generate auth string from password."},
|
||||
{"config-dir", 'c', "CONFIG_DIR", 0, "Configuration directory."},
|
||||
{"config-dir", 'c', "DIR", 0, "Configuration directory."},
|
||||
{"dump-config", 'C', 0, 0, "Dump configuration."},
|
||||
{"commands", 's', "COMMANDS", 0, "Commands to run without enter the shell."},
|
||||
{"raw-time", 'r', 0, 0, "Output time as uint64_t."},
|
||||
|
@ -197,13 +197,11 @@ static struct argp_option shellOptions[] = {
|
|||
{"database", 'd', "DATABASE", 0, "Database to use when connecting to the server."},
|
||||
{"check", 'k', 0, 0, "Check the service status."},
|
||||
{"startup", 't', 0, 0, "Check the details of the service status."},
|
||||
{"display-width", 'w', 0, 0, "Set the default binary display width."},
|
||||
{"display-width", 'w', "WIDTH", 0, "Set the default binary display width."},
|
||||
{"netrole", 'n', "NETROLE", 0, "Net role when network connectivity test, options: client|server."},
|
||||
{"pktlen", 'l', "PKTLEN", 0, "Packet length used for net test, default is 1000 bytes."},
|
||||
{"pktnum", 'N', "PKTNUM", 0, "Packet numbers used for net test, default is 100."},
|
||||
{"version", 'V', 0, 0, "Print client version number."},
|
||||
{0},
|
||||
};
|
||||
{0}};
|
||||
|
||||
static error_t shellParseOpt(int32_t key, char *arg, struct argp_state *state) {
|
||||
SShellArgs *arguments = &shell.args;
|
||||
|
@ -276,7 +274,7 @@ static error_t shellParseOpt(int32_t key, char *arg, struct argp_state *state) {
|
|||
|
||||
static struct argp shellArgp = {shellOptions, shellParseOpt, "", ""};
|
||||
|
||||
static void shellParseArgsInLinux(int argc, char *argv[]) {
|
||||
static void shellParseArgsUseArgp(int argc, char *argv[]) {
|
||||
argp_program_version = shell.info.programVersion;
|
||||
argp_parse(&shellArgp, argc, argv, 0, 0, &shell.args);
|
||||
}
|
||||
|
@ -313,7 +311,74 @@ static void shellInitArgs(int argc, char *argv[]) {
|
|||
shell.args.user = TSDB_DEFAULT_USER;
|
||||
}
|
||||
|
||||
static int32_t shellCheckArgs() { return 0; }
|
||||
static int32_t shellCheckArgs() {
|
||||
SShellArgs *pArgs = &shell.args;
|
||||
if (pArgs->host != NULL && (strlen(pArgs->host) <= 0 || strlen(pArgs->host) > TSDB_FQDN_LEN)) {
|
||||
printf("Invalid host:%s\n", pArgs->host);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pArgs->user != NULL && (strlen(pArgs->user) <= 0 || strlen(pArgs->user) > TSDB_USER_LEN)) {
|
||||
printf("Invalid user:%s\n", pArgs->user);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pArgs->auth != NULL && (strlen(pArgs->auth) <= 0 || strlen(pArgs->auth) > TSDB_PASSWORD_LEN)) {
|
||||
printf("Invalid auth:%s\n", pArgs->auth);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pArgs->database != NULL && (strlen(pArgs->database) <= 0 || strlen(pArgs->database) > TSDB_DB_NAME_LEN)) {
|
||||
printf("Invalid database:%s\n", pArgs->database);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pArgs->file != NULL && (strlen(pArgs->file) <= 0)) {
|
||||
printf("Invalid file:%s\n", pArgs->file);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pArgs->cfgdir != NULL) {
|
||||
if (strlen(pArgs->cfgdir) <= 0 || strlen(pArgs->cfgdir) >= PATH_MAX) {
|
||||
printf("Invalid cfgdir:%s\n", pArgs->cfgdir);
|
||||
return -1;
|
||||
} else {
|
||||
tstrncpy(configDir, pArgs->cfgdir, PATH_MAX);
|
||||
}
|
||||
}
|
||||
|
||||
if (pArgs->commands != NULL && (strlen(pArgs->commands) <= 0)) {
|
||||
printf("Invalid commands:%s\n", pArgs->commands);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pArgs->netrole != NULL && !(strcmp(pArgs->netrole, "client") == 0 || strcmp(pArgs->netrole, "server") == 0)) {
|
||||
printf("Invalid netrole:%s\n", pArgs->netrole);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pArgs->password != NULL && (strlen(pArgs->password) <= 0)) {
|
||||
printf("Invalid password\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pArgs->pktLen <= 0 || pArgs->pktLen > 20 * 1024 * 1024) {
|
||||
printf("Invalid pktLen:%d, range:[1, 20 * 1024 * 1024]\n", pArgs->pktLen);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pArgs->pktNum <= 0 || pArgs->pktNum > 1024 * 1024) {
|
||||
printf("Invalid pktNum:%d, range:[1, 1024 * 1024]\n", pArgs->pktNum);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pArgs->displayWidth <= 0 || pArgs->displayWidth > 10 * 1024) {
|
||||
printf("Invalid displayWidth:%d, range:[1, 10 * 1024]\n", pArgs->displayWidth);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t shellParseArgs(int32_t argc, char *argv[]) {
|
||||
shellInitArgs(argc, argv);
|
||||
|
@ -323,20 +388,20 @@ int32_t shellParseArgs(int32_t argc, char *argv[]) {
|
|||
shell.info.promptHeader = "taos> ";
|
||||
shell.info.promptContinue = " -> ";
|
||||
shell.info.promptSize = 6;
|
||||
snprintf(shell.info.programVersion, sizeof(shell.info.programVersion), "version: %s\n", version);
|
||||
snprintf(shell.info.programVersion, sizeof(shell.info.programVersion), "version: %s", version);
|
||||
|
||||
#if defined(_TD_WINDOWS_64) || defined(_TD_WINDOWS_32)
|
||||
shell.info.osname = "Windows";
|
||||
snprintf(shell.history.file, TSDB_FILENAME_LEN, "C:/TDengine/%s", SHELL_HISTORY_FILE);
|
||||
shellParseArgsInLinuxAndDarwin();
|
||||
shellParseArgsWithoutArgp();
|
||||
#elif defined(_TD_DARWIN_64)
|
||||
shell.info.osname = "Darwin";
|
||||
snprintf(shell.history.file, TSDB_FILENAME_LEN, "%s/%s", getpwuid(getuid())->pw_dir, SHELL_HISTORY_FILE);
|
||||
shellParseArgsInLinuxAndDarwin();
|
||||
shellParseArgsWithoutArgp();
|
||||
#else
|
||||
shell.info.osname = "Linux";
|
||||
snprintf(shell.history.file, TSDB_FILENAME_LEN, "%s/%s", getenv("HOME"), SHELL_HISTORY_FILE);
|
||||
shellParseArgsInLinux(argc, argv);
|
||||
shellParseArgsUseArgp(argc, argv);
|
||||
#endif
|
||||
|
||||
if (shell.args.abort) {
|
||||
|
|
|
@ -56,8 +56,7 @@ int main(int argc, char *argv[]) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (shell.args.netrole != NULL &&
|
||||
(strcmp(shell.args.netrole, "client") == 0 || strcmp(shell.args.netrole, "server")) == 0) {
|
||||
if (shell.args.netrole != NULL) {
|
||||
shellTestNetWork();
|
||||
taos_cleanup();
|
||||
return 0;
|
||||
|
|
|
@ -70,15 +70,21 @@ int32_t shellCheckIntSize() {
|
|||
|
||||
void shellPrintVersion() { printf("version: %s\n", version); }
|
||||
|
||||
void shellGenerateAuth() {}
|
||||
void shellGenerateAuth() {
|
||||
char secretEncrypt[TSDB_PASSWORD_LEN + 1] = {0};
|
||||
taosEncryptPass_c((uint8_t *)shell.args.password, strlen(shell.args.password), secretEncrypt);
|
||||
printf("%s\n", secretEncrypt);
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
void shellDumpConfig() {
|
||||
SConfig *pCfg = taosGetCfg();
|
||||
if (pCfg == NULL) {
|
||||
printf("TDengine read global config failed!\n");
|
||||
} else {
|
||||
cfgDumpCfg(pCfg, 1, 1);
|
||||
cfgDumpCfg(pCfg, 1, true);
|
||||
}
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
void shellCheckServerStatus() {
|
||||
|
@ -107,6 +113,7 @@ void shellCheckServerStatus() {
|
|||
if (strlen(details) != 0) {
|
||||
printf("%s\n\n", details);
|
||||
}
|
||||
fflush(stdout);
|
||||
if (code == TSDB_SRV_STATUS_NETWORK_OK && shell.args.is_startup) {
|
||||
taosMsleep(1000);
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue