From c9050a5e173696581c251f06f79afa9a5c503bb6 Mon Sep 17 00:00:00 2001 From: Jeff Tao Date: Wed, 29 Jul 2020 01:46:14 +0000 Subject: [PATCH 1/3] change the socket option --- src/util/src/tsocket.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/src/tsocket.c b/src/util/src/tsocket.c index 6c536a4303..f95cae25e9 100644 --- a/src/util/src/tsocket.c +++ b/src/util/src/tsocket.c @@ -306,7 +306,7 @@ int taosOpenTcpClientSocket(uint32_t destIp, uint16_t destPort, uint32_t clientI sockFd = -1; } - // taosKeepTcpAlive(sockFd); + taosKeepTcpAlive(sockFd); return sockFd; } @@ -349,7 +349,7 @@ int taosKeepTcpAlive(int sockFd) { struct linger linger = {0}; linger.l_onoff = 1; - //linger.l_linger = 0; + linger.l_linger = 3; if (taosSetSockOpt(sockFd, SOL_SOCKET, SO_LINGER, (void *)&linger, sizeof(linger)) < 0) { uError("setsockopt SO_LINGER failed: %d (%s)", errno, strerror(errno)); close(sockFd); From 10ebb178d3d2d98667a8e43f2c60fdaccc24179b Mon Sep 17 00:00:00 2001 From: Xiaxin Li <48907085+Aries-Lee1991@users.noreply.github.com> Date: Wed, 29 Jul 2020 12:03:23 +0800 Subject: [PATCH 2/3] Update Super Table-ch.md --- documentation/webdocs/markdowndocs/Super Table-ch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/webdocs/markdowndocs/Super Table-ch.md b/documentation/webdocs/markdowndocs/Super Table-ch.md index 5f592ec339..f45f2f91b1 100644 --- a/documentation/webdocs/markdowndocs/Super Table-ch.md +++ b/documentation/webdocs/markdowndocs/Super Table-ch.md @@ -4,7 +4,7 @@ TDengine要求每个数据采集点单独建表。独立建表的模式能够避 ## 什么是超级表 -STable是同一类型数据采集点的抽象,是同类型采集实例的集合,包含多张数据结构一样的子表。每个STable为其子表定义了表结构和一组标签:表结构即表中记录的数据列及其数据类型;标签名和数据类型由STable定义,标签值记录着每个子表的静态信息,用以对子表进行分组过滤。子表本质上就是普通的表,由一个时间戳主键和若干个数据列组成,每行记录着具体的数据,数据查询操作与普通表完全相同;但子表与普通表的区别在于每个子表从属于一张超级表,并带有一组由STable定义的标签值。每种类型的采集设备可以定义一个STable。数据模型定义表的每列数据的类型,如温度、压力、电压、电流、GPS实时位置等,而标签信息属于Meta Data,如采集设备的序列号、型号、位置等,是静态的,是表的元数据。用户在创建表(数据采集点)时指定STable(采集类型)外,还可以指定标签的值,也可事后增加或修改。 +超级表是同一类型数据采集点的抽象,是同类型采集实例的集合,包含多张数据结构一样的子表。每个STable为其子表定义了表结构和一组标签:表结构即表中记录的数据列及其数据类型;标签名和数据类型由STable定义,标签值记录着每个子表的静态信息,用以对子表进行分组过滤。子表本质上就是普通的表,由一个时间戳主键和若干个数据列组成,每行记录着具体的数据,数据查询操作与普通表完全相同;但子表与普通表的区别在于每个子表从属于一张超级表,并带有一组由STable定义的标签值。每种类型的采集设备可以定义一个STable。数据模型定义表的每列数据的类型,如温度、压力、电压、电流、GPS实时位置等,而标签信息属于Meta Data,如采集设备的序列号、型号、位置等,是静态的,是表的元数据。用户在创建表(数据采集点)时指定STable(采集类型)外,还可以指定标签的值,也可事后增加或修改。 TDengine扩展标准SQL语法用于定义STable,使用关键词tags指定标签信息。语法如下: From a78c6232f96124ca0a62ff6e5e6aa02b82f0f4b4 Mon Sep 17 00:00:00 2001 From: Jeff Tao Date: Wed, 29 Jul 2020 05:24:34 +0000 Subject: [PATCH 3/3] set socket option --- src/util/src/tsocket.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/src/tsocket.c b/src/util/src/tsocket.c index f95cae25e9..6f4d2b8afd 100644 --- a/src/util/src/tsocket.c +++ b/src/util/src/tsocket.c @@ -304,10 +304,10 @@ int taosOpenTcpClientSocket(uint32_t destIp, uint16_t destPort, uint32_t clientI //uError("failed to connect socket, ip:0x%x, port:%hu(%s)", destIp, destPort, strerror(errno)); close(sockFd); sockFd = -1; + } else { + taosKeepTcpAlive(sockFd); } - taosKeepTcpAlive(sockFd); - return sockFd; }