From e9018a757b9320464d640429b0353ddaff878c77 Mon Sep 17 00:00:00 2001 From: Yitao CHI Date: Sun, 3 Apr 2022 10:50:11 +0800 Subject: [PATCH] [TS-1383](common): Add tcpConnTimeout and syncCheckInterval options. --- src/common/inc/tglobal.h | 1 + src/common/src/tglobal.c | 15 +++++++++++++-- src/sync/src/syncMain.c | 10 +++++----- src/util/inc/tconfig.h | 2 +- src/util/src/tsocket.c | 2 +- 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/common/inc/tglobal.h b/src/common/inc/tglobal.h index 234fb80be0..f462cc1037 100644 --- a/src/common/inc/tglobal.h +++ b/src/common/inc/tglobal.h @@ -44,6 +44,7 @@ extern int32_t tsDnodeId; extern int64_t tsDnodeStartTime; extern int8_t tsDnodeNopLoop; extern int32_t tsTcpConnTimeout; +extern int32_t tsSyncCheckInterval; // common extern int tsRpcTimer; diff --git a/src/common/src/tglobal.c b/src/common/src/tglobal.c index dffdc3a6eb..0e4d412cdc 100644 --- a/src/common/src/tglobal.c +++ b/src/common/src/tglobal.c @@ -48,7 +48,8 @@ char tsEmail[TSDB_FQDN_LEN] = {0}; int32_t tsDnodeId = 0; int64_t tsDnodeStartTime = 0; int8_t tsDnodeNopLoop = 0; -int32_t tsTcpConnTimeout = 1; // timeout for tcp client connection in second. +int32_t tsTcpConnTimeout = 1000; // timeout for tcp client connection in ms. +int32_t tsSyncCheckInterval = 1000; // peer sync check interval in ms. // common int32_t tsRpcTimer = 300; @@ -641,7 +642,17 @@ static void doInitGlobalConfig(void) { 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.maxValue = 10000; + cfg.ptrLength = 0; + cfg.unitType = TAOS_CFG_UTYPE_SECOND; + taosInitConfigOption(cfg); + + cfg.option = "syncCheckInterval"; + cfg.ptr = &tsSyncCheckInterval; + cfg.valType = TAOS_CFG_VTYPE_INT32; + cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; + cfg.minValue = 1; + cfg.maxValue = 10000; cfg.ptrLength = 0; cfg.unitType = TAOS_CFG_UTYPE_SECOND; taosInitConfigOption(cfg); diff --git a/src/sync/src/syncMain.c b/src/sync/src/syncMain.c index a8b5a8f403..be35f3aaf9 100644 --- a/src/sync/src/syncMain.c +++ b/src/sync/src/syncMain.c @@ -871,7 +871,7 @@ static void syncRestartPeer(SSyncPeer *pPeer) { int32_t ret = strcmp(pPeer->fqdn, tsNodeFqdn); if (pPeer->nodeId == 0 || ret > 0 || (ret == 0 && pPeer->port > tsSyncPort)) { sDebug("%s, check peer connection in 1000 ms", pPeer->id); - taosTmrReset(syncCheckPeerConnection, SYNC_CHECK_INTERVAL, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer); + taosTmrReset(syncCheckPeerConnection, tsSyncCheckInterval, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer); } } @@ -976,7 +976,7 @@ static void syncRecoverFromMaster(SSyncPeer *pPeer) { SSyncMsg msg; syncBuildSyncReqMsg(&msg, pNode->vgId); - taosTmrReset(syncNotStarted, SYNC_CHECK_INTERVAL, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer); + taosTmrReset(syncNotStarted, tsSyncCheckInterval, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer); if (taosWriteMsg(pPeer->peerFd, &msg, sizeof(SSyncMsg)) != sizeof(SSyncMsg)) { sError("%s, failed to send sync-req to peer", pPeer->id); @@ -1149,14 +1149,14 @@ static void syncSetupPeerConnection(SSyncPeer *pPeer) { uint32_t ip = syncResolvePeerFqdn(pPeer); if (!ip) { - taosTmrReset(syncCheckPeerConnection, SYNC_CHECK_INTERVAL, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer); + taosTmrReset(syncCheckPeerConnection, tsSyncCheckInterval, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer); return; } SOCKET connFd = taosOpenTcpClientSocket(ip, pPeer->port, 0); if (connFd <= 0) { sDebug("%s, failed to open tcp socket since %s", pPeer->id, strerror(errno)); - taosTmrReset(syncCheckPeerConnection, SYNC_CHECK_INTERVAL, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer); + taosTmrReset(syncCheckPeerConnection, tsSyncCheckInterval, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer); return; } @@ -1177,7 +1177,7 @@ static void syncSetupPeerConnection(SSyncPeer *pPeer) { } else { sDebug("%s, failed to setup peer connection to server since %s, try later", pPeer->id, strerror(errno)); taosCloseSocket(connFd); - taosTmrReset(syncCheckPeerConnection, SYNC_CHECK_INTERVAL, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer); + taosTmrReset(syncCheckPeerConnection, tsSyncCheckInterval, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer); } } diff --git a/src/util/inc/tconfig.h b/src/util/inc/tconfig.h index c0a4986936..acff4168cf 100644 --- a/src/util/inc/tconfig.h +++ b/src/util/inc/tconfig.h @@ -20,7 +20,7 @@ extern "C" { #endif -#define TSDB_CFG_MAX_NUM 133 +#define TSDB_CFG_MAX_NUM 135 #define TSDB_CFG_PRINT_LEN 23 #define TSDB_CFG_OPTION_LEN 24 #define TSDB_CFG_VALUE_LEN 41 diff --git a/src/util/src/tsocket.c b/src/util/src/tsocket.c index 808c3c8eaa..0ebe9c8f8a 100644 --- a/src/util/src/tsocket.c +++ b/src/util/src/tsocket.c @@ -363,7 +363,7 @@ SOCKET taosOpenTcpClientSocket(uint32_t destIp, uint16_t destPort, uint32_t clie wfd[0].fd = sockFd; wfd[0].events = POLLOUT; - int res = poll(wfd, 1, tsTcpConnTimeout * 1000); + int res = poll(wfd, 1, tsTcpConnTimeout); if (res == -1 || res == 0) { uError("failed to connect socket, ip:0x%x, port:%hu(poll error/conn timeout)", destIp, destPort); taosCloseSocket(sockFd); // -- GitLab