diff --git a/src/common/src/tglobal.c b/src/common/src/tglobal.c index 2749d96ff685e90c2e3ab3ff9bb3e4e7a030b64b..d97efeb5005bbaecb1846ddca19f164f0124a7ce 100644 --- a/src/common/src/tglobal.c +++ b/src/common/src/tglobal.c @@ -25,6 +25,7 @@ #include "tutil.h" #include "tlocale.h" #include "ttimezone.h" +#include "tsync.h" char configDir[TSDB_FILENAME_LEN] = "/etc/taos"; char tsVnodeDir[TSDB_FILENAME_LEN] = {0}; @@ -62,6 +63,7 @@ int64_t tsMsPerDay[] = {86400000L, 86400000000L}; char tsMaster[TSDB_FQDN_LEN] = {0}; char tsSecond[TSDB_FQDN_LEN] = {0}; +char tsArbitrator[TSDB_FQDN_LEN] = {0}; char tsLocalEp[TSDB_FQDN_LEN] = {0}; // Local End Point, hostname:port uint16_t tsServerPort = 6030; uint16_t tsMnodeShellPort = 6030; // udp[6030-6034] tcp[6030] @@ -141,6 +143,7 @@ int32_t qdebugFlag = 131; int32_t rpcDebugFlag = 131; int32_t uDebugFlag = 131; int32_t debugFlag = 131; +int32_t sDebugFlag = 131; // the maximum number of results for projection query on super table that are returned from // one virtual node, to order according to timestamp @@ -341,6 +344,16 @@ static void doInitGlobalConfig() { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosInitConfigOption(cfg); + cfg.option = "arbitrator"; + cfg.ptr = tsArbitrator; + cfg.valType = TAOS_CFG_VTYPE_IPSTR; + 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); + // dnode configs cfg.option = "numOfThreadsPerCore"; cfg.ptr = &tsNumOfThreadsPerCore; @@ -1012,6 +1025,16 @@ static void doInitGlobalConfig() { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosInitConfigOption(cfg); + 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); + cfg.option = "sdbDebugFlag"; cfg.ptr = &sdbDebugFlag; cfg.valType = TAOS_CFG_VTYPE_INT32; diff --git a/src/inc/tsync.h b/src/inc/tsync.h index 4b766664f368ecb6bdcdd70cdf385eae4a963f2d..797de063b9a77d9780bbea25fcb4d21c1c316d4f 100644 --- a/src/inc/tsync.h +++ b/src/inc/tsync.h @@ -45,8 +45,6 @@ typedef struct { typedef struct { int8_t quorum; // number of confirms required, >=1 int8_t replica; // number of replications, >=1 - uint16_t arbitratorPort; // arbitrator port - char arbitratorFqdn[TSDB_FQDN_LEN]; // arbitrator IP address SNodeInfo nodeInfo[TAOS_SYNC_MAX_REPLICA]; } SSyncCfg; @@ -108,6 +106,7 @@ extern int tsMaxWatchFiles; extern int tsSyncTimer; extern int tsMaxFwdInfo; extern int sDebugFlag; +extern char tsArbitrator[]; extern uint16_t tsSyncPort; #ifdef __cplusplus diff --git a/src/mnode/src/mgmtSdb.c b/src/mnode/src/mgmtSdb.c index 25e36af6a0e5b84e94f4c0b1c6c579fbdaad4f5b..ef6ada1c0647e0489a8eb79fc22b7b9e33c2ce82 100644 --- a/src/mnode/src/mgmtSdb.c +++ b/src/mnode/src/mgmtSdb.c @@ -253,13 +253,7 @@ void sdbUpdateSync() { } syncCfg.replica = index; - syncCfg.arbitratorPort = syncCfg.nodeInfo[0].nodePort; - strcpy(syncCfg.arbitratorFqdn, syncCfg.nodeInfo[0].nodeFqdn); - if (syncCfg.replica == 1) { - syncCfg.quorum = 1; - } else { - syncCfg.quorum = 2; - } + syncCfg.quorum = (syncCfg.replica == 1) ? 1:2; bool hasThisDnode = false; for (int32_t i = 0; i < syncCfg.replica; ++i) { @@ -272,9 +266,9 @@ void sdbUpdateSync() { if (!hasThisDnode) return; if (memcmp(&syncCfg, &tsSdbObj.cfg, sizeof(SSyncCfg)) == 0) return; - sdbPrint("work as mnode, replica:%d arbitrator:%s", syncCfg.replica, syncCfg.arbitratorFqdn); + sdbPrint("work as mnode, replica:%d", syncCfg.replica); for (int32_t i = 0; i < syncCfg.replica; ++i) { - sdbPrint("mnode:%d, ip:%s", syncCfg.nodeInfo[i].nodeId, syncCfg.nodeInfo[i].nodeFqdn); + sdbPrint("mnode:%d, %s:%d", syncCfg.nodeInfo[i].nodeId, syncCfg.nodeInfo[i].nodeFqdn, syncCfg.nodeInfo[i].nodePort); } SSyncInfo syncInfo; diff --git a/src/os/darwin/src/darwinPlatform.c b/src/os/darwin/src/darwinPlatform.c index 5ee7889af467041f06fbf2949dd5b65d7001562b..05290c43f4edb6b413266c73ae149da7a967a1b7 100644 --- a/src/os/darwin/src/darwinPlatform.c +++ b/src/os/darwin/src/darwinPlatform.c @@ -151,67 +151,6 @@ int taosSetSockOpt(int socketfd, int level, int optname, void *optval, int optle return setsockopt(socketfd, level, optname, optval, (socklen_t)optlen); } -int taosOpenUDClientSocket(char *ip, uint16_t port) { - int sockFd = 0; - struct sockaddr_un serverAddr; - int ret; - char name[128]; - sprintf(name, "%s.%hu", ip, port); - - sockFd = socket(AF_UNIX, SOCK_STREAM, 0); - - if (sockFd < 0) { - uError("failed to open the UD socket:%s, reason:%s", name, strerror(errno)); - return -1; - } - - memset((char *)&serverAddr, 0, sizeof(serverAddr)); - serverAddr.sun_family = AF_UNIX; - strcpy(serverAddr.sun_path + 1, name); - - ret = connect(sockFd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)); - - if (ret != 0) { - uError("failed to connect UD socket, name:%d, reason: %s", name, strerror(errno)); - sockFd = -1; - } - - return sockFd; -} - -int taosOpenUDServerSocket(char *ip, uint16_t port) { - struct sockaddr_un serverAdd; - int sockFd; - char name[128]; - - uTrace("open ud socket:%s", name); - sprintf(name, "%s.%hu", ip, port); - - bzero((char *)&serverAdd, sizeof(serverAdd)); - serverAdd.sun_family = AF_UNIX; - strcpy(serverAdd.sun_path + 1, name); - unlink(name); - - if ((sockFd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { - uError("failed to open UD socket:%s, reason:%s", name, strerror(errno)); - return -1; - } - - /* bind socket to server address */ - if (bind(sockFd, (struct sockaddr *)&serverAdd, sizeof(serverAdd)) < 0) { - uError("bind socket:%s failed, reason:%s", name, strerror(errno)); - tclose(sockFd); - return -1; - } - - if (listen(sockFd, 10) < 0) { - uError("listen socket:%s failed, reason:%s", name, strerror(errno)); - return -1; - } - - return sockFd; -} - int taosInitTimer(void (*callback)(int), int ms) { signal(SIGALRM, callback); @@ -443,4 +382,4 @@ int fsendfile(FILE* out_file, FILE* in_file, int64_t* offset, int32_t count) { return writeLen; } -void taosSetCoreDump() {} \ No newline at end of file +void taosSetCoreDump() {} diff --git a/src/os/linux/src/linuxPlatform.c b/src/os/linux/src/linuxPlatform.c index d9d56a2239cab09754d552c829f3834ce102c6e0..72da97287feaf34b9e032cb402628d3293ef030e 100644 --- a/src/os/linux/src/linuxPlatform.c +++ b/src/os/linux/src/linuxPlatform.c @@ -143,68 +143,6 @@ int taosSetNonblocking(int sock, int on) { int taosSetSockOpt(int socketfd, int level, int optname, void *optval, int optlen) { return setsockopt(socketfd, level, optname, optval, (socklen_t)optlen); } - -int taosOpenUDClientSocket(char *ip, uint16_t port) { - int sockFd = 0; - struct sockaddr_un serverAddr; - int ret; - char name[128]; - sprintf(name, "%s.%hu", ip, port); - - sockFd = socket(AF_UNIX, SOCK_STREAM, 0); - - if (sockFd < 0) { - uError("failed to open the UD socket:%s, reason:%s", name, strerror(errno)); - return -1; - } - - memset((char *)&serverAddr, 0, sizeof(serverAddr)); - serverAddr.sun_family = AF_UNIX; - strcpy(serverAddr.sun_path + 1, name); - - ret = connect(sockFd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)); - - if (ret != 0) { - uError("failed to connect UD socket, name:%d, reason: %s", name, strerror(errno)); - sockFd = -1; - } - - return sockFd; -} - -int taosOpenUDServerSocket(char *ip, uint16_t port) { - struct sockaddr_un serverAdd; - int sockFd; - char name[128]; - - uTrace("open ud socket:%s", name); - sprintf(name, "%s.%hu", ip, port); - - bzero((char *)&serverAdd, sizeof(serverAdd)); - serverAdd.sun_family = AF_UNIX; - strcpy(serverAdd.sun_path + 1, name); - unlink(name); - - if ((sockFd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { - uError("failed to open UD socket:%s, reason:%s", name, strerror(errno)); - return -1; - } - - /* bind socket to server address */ - if (bind(sockFd, (struct sockaddr *)&serverAdd, sizeof(serverAdd)) < 0) { - uError("bind socket:%s failed, reason:%s", name, strerror(errno)); - tclose(sockFd); - return -1; - } - - if (listen(sockFd, 10) < 0) { - uError("listen socket:%s failed, reason:%s", name, strerror(errno)); - return -1; - } - - return sockFd; -} - static void taosDeleteTimer(void *tharg) { timer_t *pTimer = tharg; timer_delete(*pTimer); diff --git a/src/util/inc/tsocket.h b/src/util/inc/tsocket.h index 60d339fa5c3dffb4011937679acec7c592bfb4dc..309aa80ef6c0ae4e04d20e72ebb0d91835bcb66d 100644 --- a/src/util/inc/tsocket.h +++ b/src/util/inc/tsocket.h @@ -33,10 +33,6 @@ int taosOpenTcpServerSocket(uint32_t ip, uint16_t port); int taosKeepTcpAlive(int sockFd); void taosCloseTcpSocket(int sockFd); -int taosOpenUDServerSocket(uint32_t ip, uint16_t port); -int taosOpenUDClientSocket(uint32_t ip, uint16_t port); -int taosOpenRawSocket(uint32_t ip); - int taosGetFqdn(char *); uint32_t taosGetIpFromFqdn(const char *); void tinet_ntoa(char *ipstr, unsigned int ip); diff --git a/src/util/src/tsocket.c b/src/util/src/tsocket.c index 9fe306921d9c4256844b71556c2129b9a2645f2e..85bebfaca8a395634022f0efe484a2ff5412611d 100644 --- a/src/util/src/tsocket.c +++ b/src/util/src/tsocket.c @@ -14,7 +14,6 @@ */ #include "os.h" -#include "tglobal.h" #include "tulog.h" #include "tsocket.h" #include "tutil.h" @@ -394,38 +393,6 @@ int taosOpenTcpServerSocket(uint32_t ip, uint16_t port) { return sockFd; } -int taosOpenRawSocket(uint32_t ip) { - int fd, hold; - struct sockaddr_in rawAdd; - - uTrace("open udp raw socket:%s", ip); - - fd = (int)socket(AF_INET, SOCK_RAW, IPPROTO_UDP); - if (fd < 0) { - uError("failed to open raw socket: %d (%s)", errno, strerror(errno)); - return -1; - } - - hold = 1; - if (taosSetSockOpt(fd, IPPROTO_IP, IP_HDRINCL, (void *)&hold, sizeof(hold)) < 0) { - uError("failed to set hold option: %d (%s)", errno, strerror(errno)); - close(fd); - return -1; - } - - bzero((char *)&rawAdd, sizeof(rawAdd)); - rawAdd.sin_family = AF_INET; - rawAdd.sin_addr.s_addr = ip; - - if (bind(fd, (struct sockaddr *)&rawAdd, sizeof(rawAdd)) < 0) { - uError("failed to bind RAW socket:(%s)", strerror(errno)); - close(fd); - return -1; - } - - return fd; -} - void tinet_ntoa(char *ipstr, unsigned int ip) { sprintf(ipstr, "%d.%d.%d.%d", ip & 0xFF, (ip >> 8) & 0xFF, (ip >> 16) & 0xFF, ip >> 24); } diff --git a/src/util/src/tutil.c b/src/util/src/tutil.c index 47d66a066e17f47ee31da8896e3b320ce8d7ac49..707d6741f78ac40e500d6168e7925b8fbc836bce 100644 --- a/src/util/src/tutil.c +++ b/src/util/src/tutil.c @@ -686,4 +686,4 @@ void taosRemoveDir(char *rootDir) { rmdir(rootDir); uPrint("dir:%s is removed", rootDir); -} \ No newline at end of file +}