From 45d5afbd72bb52f18ffda2fdd1e26640374ddee2 Mon Sep 17 00:00:00 2001 From: haoranchen Date: Mon, 17 Mar 2025 16:11:06 +0800 Subject: [PATCH 01/10] enh: add debug and taosws of compiling par in tdengine-build.yml --- .github/workflows/tdengine-build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tdengine-build.yml b/.github/workflows/tdengine-build.yml index 2a71cae71c..4cec0a90ed 100644 --- a/.github/workflows/tdengine-build.yml +++ b/.github/workflows/tdengine-build.yml @@ -81,6 +81,8 @@ jobs: -DBUILD_KEEPER=true \ -DBUILD_HTTP=false \ -DBUILD_TEST=true \ + -DWEBSOCKET=true \ + -DCMAKE_BUILD_TYPE=Debug \ -DBUILD_DEPENDENCY_TESTS=false make -j 4 sudo make install From f38f550dca255ab85abca669b8c7a9cadcda5201 Mon Sep 17 00:00:00 2001 From: haoranchen Date: Mon, 17 Mar 2025 16:27:59 +0800 Subject: [PATCH 02/10] enh:modify release mode in building tdengine --- .github/workflows/tdengine-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tdengine-build.yml b/.github/workflows/tdengine-build.yml index 4cec0a90ed..1fd7831203 100644 --- a/.github/workflows/tdengine-build.yml +++ b/.github/workflows/tdengine-build.yml @@ -82,7 +82,7 @@ jobs: -DBUILD_HTTP=false \ -DBUILD_TEST=true \ -DWEBSOCKET=true \ - -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_BUILD_TYPE=Release \ -DBUILD_DEPENDENCY_TESTS=false make -j 4 sudo make install From 03fe3e5430b486abb72851036f7be95308e775b5 Mon Sep 17 00:00:00 2001 From: dongming chen Date: Mon, 17 Mar 2025 17:13:54 +0800 Subject: [PATCH 03/10] fix: [TD-34000] remove lock when send heartbeat reply main (#30123) * fix(stream): reduce the consensus checkpoint id trans. * refactor(stream): add some logs. * refactor(stream): set the max checkpoint exec time 30min. * refactor(stream): add checkpoint-consensus trans conflict check. * refactor(stream): remove unused local variables. * fix(stream): fix syntax error. * fix(stream): 1. fix free memory error 2. continue if put result into dst hashmap failed. * fix issue * fix issue * fix(mnd): follower mnode not processes the timer event. * fix(stream): print correct error msg. * fix(stream): add some logs. * fix(stream): add some logs. * fix(stream): add some logs. * fix(stream): add some logs. * fix(stream): add some logs. * fix(stream): add some logs. * fix(stream): add some logs. * fix(stream): add some logs. * fix(stream): truncate long subtable name * fix(stream): add buffer len. * refactor(stream): update some logs. * fix issue * refactor(stream): update some logs. * refactor(stream): update some logs. * fix(stream): check return value. * fix(stream): fix syntax error. * fix(stream): check return value. * fix(stream): update the timer check in mnode. * fix: TD-34000-remove-lock-when-send-heartbeat-reply * fix: TD-34000-remove-lock-when-send-heartbeat-reply --------- Co-authored-by: Haojun Liao Co-authored-by: 54liuyao <54liuyao@163.com> Co-authored-by: Jinqing Kuang --- source/dnode/vnode/src/tqCommon/tqCommon.c | 11 ----------- source/libs/sync/src/syncMain.c | 15 +++++++++++---- source/libs/sync/src/syncRequestVote.c | 1 + 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/source/dnode/vnode/src/tqCommon/tqCommon.c b/source/dnode/vnode/src/tqCommon/tqCommon.c index 5ddbdc9f5c..d1a7831463 100644 --- a/source/dnode/vnode/src/tqCommon/tqCommon.c +++ b/source/dnode/vnode/src/tqCommon/tqCommon.c @@ -1331,17 +1331,6 @@ int32_t tqStreamTaskProcessConsenChkptIdReq(SStreamMeta* pMeta, SRpcMsg* pMsg) { if (ret) { tqError("s-task:0x%x failed add check downstream failed, core:%s", req.taskId, tstrerror(ret)); } - -// STaskId id = {.streamId = req.streamId, .taskId = req.taskId}; -// int32_t ret1 = streamMetaAcquireTaskUnsafe(pMeta, &id, &pTask); -// if (ret1 == 0 && pTask != NULL) { -// SStreamTaskState s = streamTaskGetStatus(pTask); -// if (s.state == TASK_STATUS__STOP) { -// tqDebug("s-task:0x%x status:%s wait for it become init", req.taskId, s.name); -// streamMetaReleaseTask(pMeta, pTask); -// return TSDB_CODE_STREAM_TASK_IVLD_STATUS; -// } -// } } else { tqDebug("vgId:%d task:0x%x stopped in follower node, not set the consensus checkpointId:%" PRId64 " transId:%d", pMeta->vgId, req.taskId, req.checkpointId, req.transId); diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index 0d112c5a23..de297ab4f7 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -2411,6 +2411,7 @@ void syncNodeVoteForTerm(SSyncNode* pSyncNode, SyncTerm term, SRaftId* pRaftId) sError("vgId:%d, failed to vote for term, term:%" PRId64 ", storeTerm:%" PRId64, pSyncNode->vgId, term, storeTerm); return; } + sTrace("vgId:%d, begin hasVoted", pSyncNode->vgId); bool voted = raftStoreHasVoted(pSyncNode); if (voted) { sError("vgId:%d, failed to vote for term since not voted", pSyncNode->vgId); @@ -3568,7 +3569,7 @@ int32_t syncNodeOnHeartbeat(SSyncNode* ths, const SRpcMsg* pRpcMsg) { SRpcMsg rpcMsg = {0}; TAOS_CHECK_RETURN(syncBuildHeartbeatReply(&rpcMsg, ths->vgId)); - SyncTerm currentTerm = raftStoreGetTerm(ths); + SyncTerm currentTerm = raftStoreTryGetTerm(ths); SyncHeartbeatReply* pMsgReply = rpcMsg.pCont; pMsgReply->destId = pMsg->srcId; @@ -3578,6 +3579,15 @@ int32_t syncNodeOnHeartbeat(SSyncNode* ths, const SRpcMsg* pRpcMsg) { pMsgReply->startTime = ths->startTime; pMsgReply->timeStamp = tsMs; + // reply + TRACE_SET_MSGID(&(rpcMsg.info.traceId), tGenIdPI64()); + trace = &(rpcMsg.info.traceId); + sGTrace("vgId:%d, send sync-heartbeat-reply to dnode:%d term:%" PRId64 " timestamp:%" PRId64, ths->vgId, + DID(&(pMsgReply->destId)), pMsgReply->term, pMsgReply->timeStamp); + + TAOS_CHECK_RETURN(syncNodeSendMsgById(&pMsgReply->destId, ths, &rpcMsg)); + + if (currentTerm == 0) currentTerm = raftStoreGetTerm(ths); sGTrace("vgId:%d, process sync-heartbeat msg from dnode:%d, cluster:%d, Msgterm:%" PRId64 " currentTerm:%" PRId64, ths->vgId, DID(&(pMsg->srcId)), CID(&(pMsg->srcId)), pMsg->term, currentTerm); @@ -3637,9 +3647,6 @@ int32_t syncNodeOnHeartbeat(SSyncNode* ths, const SRpcMsg* pRpcMsg) { } } - // reply - TAOS_CHECK_RETURN(syncNodeSendMsgById(&pMsgReply->destId, ths, &rpcMsg)); - if (resetElect) syncNodeResetElectTimer(ths); return 0; } diff --git a/source/libs/sync/src/syncRequestVote.c b/source/libs/sync/src/syncRequestVote.c index c887846915..88a97e55f3 100644 --- a/source/libs/sync/src/syncRequestVote.c +++ b/source/libs/sync/src/syncRequestVote.c @@ -108,6 +108,7 @@ int32_t syncNodeOnRequestVote(SSyncNode* ths, const SRpcMsg* pRpcMsg) { SyncTerm currentTerm = raftStoreGetTerm(ths); if (!(pMsg->term <= currentTerm)) return TSDB_CODE_SYN_INTERNAL_ERROR; + sTrace("vgId:%d, begin hasVoted", ths->vgId); bool grant = (pMsg->term == currentTerm) && logOK && ((!raftStoreHasVoted(ths)) || (syncUtilSameId(&ths->raftStore.voteFor, &pMsg->srcId))); if (grant) { From cd3c1c746bb57c7ad6a499229cc134a92ebaf709 Mon Sep 17 00:00:00 2001 From: haoranchen Date: Mon, 17 Mar 2025 17:33:46 +0800 Subject: [PATCH 04/10] docs(zh): update database.md to improve clarity of enterprise features (#30211) * docs(zh): update database.md to improve clarity of enterprise features * docs(zh): update taosd.md to enhance clarity of internal and enterprise parameters --- .../zh/14-reference/01-components/01-taosd.md | 128 +++++++++--------- .../14-reference/03-taos-sql/02-database.md | 10 +- 2 files changed, 69 insertions(+), 69 deletions(-) diff --git a/docs/zh/14-reference/01-components/01-taosd.md b/docs/zh/14-reference/01-components/01-taosd.md index 88e3ed1636..9a4e5ec1af 100644 --- a/docs/zh/14-reference/01-components/01-taosd.md +++ b/docs/zh/14-reference/01-components/01-taosd.md @@ -366,7 +366,7 @@ taosd 命令行参数如下: - 支持版本:从 v3.1.0.0 版本开始引入 #### queryNoFetchTimeoutSec -- 说明:查询中当应用长时间不 FETCH 数据时的超时时间,从最后一次响应起计时,超时自动清除任务。 `内部参数` +- 说明:查询中当应用长时间不 FETCH 数据时的超时时间,从最后一次响应起计时,超时自动清除任务。 **`内部参数`** - 类型:整数;0:关闭;1:开启。 - 默认值:18000 - 最小值:60 @@ -375,7 +375,7 @@ taosd 命令行参数如下: - 支持版本:从 v3.1.0.0 版本开始引入 #### queryPlannerTrace -- 说明:查询计划是否输出详细日志 `内部参数` +- 说明:查询计划是否输出详细日志 **`内部参数`** - 类型:整数;0:关闭;1:开启。 - 默认值:0 - 最小值:0 @@ -384,7 +384,7 @@ taosd 命令行参数如下: - 支持版本:从 v3.1.0.0 版本开始引入 #### queryNodeChunkSize -- 说明:查询计划的块大小 `内部参数` +- 说明:查询计划的块大小 **`内部参数`** - 类型:整数 - 单位:byte - 默认值:32 * 1024 @@ -394,7 +394,7 @@ taosd 命令行参数如下: - 支持版本:从 v3.1.0.0 版本开始引入 #### queryUseNodeAllocator -- 说明:查询计划的分配方法 `内部参数` +- 说明:查询计划的分配方法 **`内部参数`** - 类型:整数;0:关闭;1:开启。 - 默认值:1 - 最小值:0 @@ -403,7 +403,7 @@ taosd 命令行参数如下: - 支持版本:从 v3.1.0.0 版本开始引入 #### queryMaxConcurrentTables -- 说明:查询计划的分配方法 `内部参数` +- 说明:查询计划的分配方法 **`内部参数`** - 类型:整数 - 默认值:200 - 最小值:INT64_M @@ -412,7 +412,7 @@ taosd 命令行参数如下: - 支持版本:从 v3.1.0.0 版本开始引入 #### queryRsmaTolerance -- 说明:查询计划的分配方法 `内部参数` +- 说明:查询计划的分配方法 **`内部参数`** - 类型:整数 - 默认值:1000 - 最小值:0 @@ -421,7 +421,7 @@ taosd 命令行参数如下: - 支持版本:从 v3.1.0.0 版本开始引入 #### enableQueryHb -- 说明:是否发送查询心跳消息 `内部参数` +- 说明:是否发送查询心跳消息 **`内部参数`** - 类型:整数;0:关闭;1:开启。 - 默认值:1 - 最小值:0 @@ -430,7 +430,7 @@ taosd 命令行参数如下: - 支持版本:从 v3.1.0.0 版本开始引入 #### pqSortMemThreshold -- 说明:排序使用的内存阈值 `内部参数` +- 说明:排序使用的内存阈值 **`内部参数`** - 类型:整数 - 单位:MB - 默认值:16 @@ -579,7 +579,7 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.1.0.0 版本开始引入 #### minDiskFreeSize -- 说明:当某块磁盘上的可用空间小于等于这个阈值时,该磁盘将不再被选择用于生成新的数据文件。 `企业版参数` +- 说明:当某块磁盘上的可用空间小于等于这个阈值时,该磁盘将不再被选择用于生成新的数据文件。 **`企业版参数`** - 类型:整数 - 单位:byte - 默认值:52428800 @@ -589,7 +589,7 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.1.0.0 版本开始引入 #### s3MigrateIntervalSec -- 说明:本地数据文件自动上传 S3 的触发周期 `企业版参数` +- 说明:本地数据文件自动上传 S3 的触发周期 **`企业版参数`** - 类型:整数 - 单位:秒 - 默认值:3600 @@ -599,7 +599,7 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.3.4.3 版本开始引入 #### s3MigrateEnabled -- 说明:是否自动进行 S3 迁移 `企业版参数` +- 说明:是否自动进行 S3 迁移 **`企业版参数`** - 类型:整数;0:关闭,1:开启。 - 默认值:0 - 最小值:0 @@ -608,24 +608,24 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.3.4.3 版本开始引入 #### s3Accesskey -- 说明:冒号分隔的用户 SecretId:SecretKey `企业版参数` +- 说明:冒号分隔的用户 SecretId:SecretKey **`企业版参数`** - 示例:AKIDsQmwsfKxTo2A6nGVXZN0UlofKn6JRRSJ:lIdoy99ygEacU7iHfogaN2Xq0yumSm1E - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从 v3.3.4.3 版本开始引入 #### s3Endpoint -- 说明:用户所在地域的 COS 服务域名,支持 http 和 https,bucket 的区域需要与 endpoint 保持一致,否则无法访问。 `企业版参数` +- 说明:用户所在地域的 COS 服务域名,支持 http 和 https,bucket 的区域需要与 endpoint 保持一致,否则无法访问。 **`企业版参数`** - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从 v3.3.4.3 版本开始引入 #### s3BucketName -- 说明:存储桶名称,减号后面是用户注册 COS 服务的 AppId,其中 AppId 是 COS 特有,AWS 和阿里云都没有,配置时需要作为 bucket name 的一部分,使用减号分隔;参数值均为字符串类型,但不需要引号。 `企业版参数` +- 说明:存储桶名称,减号后面是用户注册 COS 服务的 AppId,其中 AppId 是 COS 特有,AWS 和阿里云都没有,配置时需要作为 bucket name 的一部分,使用减号分隔;参数值均为字符串类型,但不需要引号。 **`企业版参数`** - 示例:test0711-1309024725 - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从 v3.3.4.3 版本开始引入 #### s3PageCacheSize -- 说明:S3 page cache 缓存页数目 `企业版参数` +- 说明:S3 page cache 缓存页数目 **`企业版参数`** - 类型:整数 - 单位:页 - 默认值:4096 @@ -636,7 +636,7 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.3.4.3 版本开始引入 #### s3UploadDelaySec -- 说明:data 文件持续多长时间不再变动后上传至 S3 `企业版参数` +- 说明:data 文件持续多长时间不再变动后上传至 S3 **`企业版参数`** - 类型:整数 - 单位:秒 - 默认值:60 @@ -646,7 +646,7 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.3.4.3 版本开始引入 #### cacheLazyLoadThreshold -- 说明:缓存的装载策略 `内部参数` +- 说明:缓存的装载策略 **`内部参数`** - 类型:整数 - 默认值:500 - 最小值:0 @@ -831,7 +831,7 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.1.0.0 版本开始引入 #### audit -- 说明:审计功能开关 `企业版参数` +- 说明:审计功能开关 **`企业版参数`** - 类型:整数;0:关闭,1:开启。 - 默认值:1 - 最小值:0 @@ -840,7 +840,7 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.1.0.0 版本开始引入 #### auditInterval -- 说明:审计数据上报的时间间隔 `企业版参数` +- 说明:审计数据上报的时间间隔 **`企业版参数`** - 类型:整数 - 默认值:5000 - 最小值:500 @@ -849,7 +849,7 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.1.0.0 版本开始引入 #### auditCreateTable -- 说明:是否针对创建子表开启申计功能 `企业版参数` +- 说明:是否针对创建子表开启申计功能 **`企业版参数`** - 类型:整数;0:关闭,1:开启。 - 默认值:1 - 最小值:0 @@ -858,19 +858,19 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.1.0.0 版本开始引入 #### encryptAlgorithm -- 说明:数据加密算法 `企业版参数` +- 说明:数据加密算法 **`企业版参数`** - 类型:字符串 - 动态修改:不支持 - 支持版本:从 v3.1.0.0 版本开始引入 #### encryptScope -- 说明:加密范围 `企业版参数` +- 说明:加密范围 **`企业版参数`** - 类型:字符串 - 动态修改:不支持 - 支持版本:从 v3.1.0.0 版本开始引入 #### enableWhiteList -- 说明:白名单功能开关 `企业版参数` +- 说明:白名单功能开关 **`企业版参数`** - 类型:整数;0:关闭,1:开启。 - 默认值:0 - 最小值:0 @@ -889,109 +889,109 @@ charset 的有效值是 UTF-8。 - 支持版本:v3.1.3.2/v3.3.2.13 版本开始生效 #### syncElectInterval -- 说明:用于同步模块调试 `内部参数` +- 说明:用于同步模块调试 **`内部参数`** - 类型:整数 - 动态修改:不支持 - 支持版本:从 v3.1.0.0 版本开始引入 #### syncHeartbeatInterval -- 说明:用于同步模块调试 `内部参数` +- 说明:用于同步模块调试 **`内部参数`** - 类型:整数 - 动态修改:不支持 - 支持版本:从 v3.1.0.0 版本开始引入 #### syncHeartbeatTimeout -- 说明:用于同步模块调试 `内部参数` +- 说明:用于同步模块调试 **`内部参数`** - 类型:整数 - 动态修改:不支持 - 支持版本:从 v3.1.0.0 版本开始引入 #### syncSnapReplMaxWaitN -- 说明:用于同步模块调试 `内部参数` +- 说明:用于同步模块调试 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### arbHeartBeatIntervalSec -- 说明:用于同步模块调试 `内部参数` +- 说明:用于同步模块调试 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### arbCheckSyncIntervalSec -- 说明:用于同步模块调试 `内部参数` +- 说明:用于同步模块调试 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### arbSetAssignedTimeoutSec -- 说明:用于同步模块调试 `内部参数` +- 说明:用于同步模块调试 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### arbSetAssignedTimeoutSec -- 说明:用于 mnode 模块调试 `内部参数` +- 说明:用于 mnode 模块调试 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### mndLogRetention -- 说明:用于 mnode 模块调试 `内部参数` +- 说明:用于 mnode 模块调试 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### skipGrant -- 说明:用于授权检查 `内部参数` +- 说明:用于授权检查 **`内部参数`** - 类型:整数 - 动态修改:不支持 - 支持版本:从 v3.1.0.0 版本开始引入 #### trimVDbIntervalSec -- 说明:用于删除过期数据 `内部参数` +- 说明:用于删除过期数据 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### ttlFlushThreshold -- 说明:ttl 定时器的频率 `内部参数` +- 说明:ttl 定时器的频率 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### compactPullupInterval -- 说明:数据重整定时器的频率 `内部参数` +- 说明:数据重整定时器的频率 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### walFsyncDataSizeLimit -- 说明:WAL 进行 FSYNC 的阈值 `内部参数` +- 说明:WAL 进行 FSYNC 的阈值 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### transPullupInterval -- 说明:mnode 执行事务的重试间 `内部参数` +- 说明:mnode 执行事务的重试间 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### mqRebalanceInterval -- 说明:消费者再平衡的时间间隔`内部参数` +- 说明:消费者再平衡的时间间隔**`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### uptimeInterval -- 说明:用于记录系统启动时间 `内部参数` +- 说明:用于记录系统启动时间 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### timeseriesThreshold -- 说明:用于统计用量 `内部参数` +- 说明:用于统计用量 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 @@ -1006,13 +1006,13 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.1.0.0 版本开始引入 #### udfdResFuncs -- 说明:用于统计用量 `内部参数` +- 说明:用于统计用量 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### udfdLdLibPath -- 说明:用于统计用量 `内部参数` +- 说明:用于统计用量 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从 v3.1.0.0 版本开始引入 @@ -1039,31 +1039,31 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.1.0.0 版本开始引入 #### streamAggCnt -- 说明:并发进行聚合计算的数目 `内部参数` +- 说明:并发进行聚合计算的数目 **`内部参数`** - 类型:整数 - 动态修改:不支持 - 支持版本:从 v3.1.0.0 版本开始引入 #### checkpointInterval -- 说明:checkponit 同步间隔 `内部参数` +- 说明:checkponit 同步间隔 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### concurrentCheckpoint -- 说明:是否并发检查 checkpoint `内部参数` +- 说明:是否并发检查 checkpoint **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### maxStreamBackendCache -- 说明:流计算使用的最大缓存 `内部参数` +- 说明:流计算使用的最大缓存 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### streamSinkDataRate -- 说明:用于控制流计算结果的写入速度 `内部参数` +- 说明:用于控制流计算结果的写入速度 **`内部参数`** - 类型:整数 - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 @@ -1337,7 +1337,7 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.3.5.0 版本开始引入 #### scriptDir -- 说明:测试工具的脚本目录 `内部参数` +- 说明:测试工具的脚本目录 **`内部参数`** - 类型:字符串 - 动态修改:不支持 - 支持版本:从 v3.1.0.0 版本开始引入 @@ -1352,62 +1352,62 @@ charset 的有效值是 UTF-8。 - 支持版本:从 v3.1.0.0 版本开始引入 #### randErrorChance -- 说明:用于随机失败测试 `内部参数` +- 说明:用于随机失败测试 **`内部参数`** - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### randErrorDivisor -- 说明:用于随机失败测试 `内部参数` +- 说明:用于随机失败测试 **`内部参数`** - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### randErrorScope -- 说明:用于随机失败测试 `内部参数` +- 说明:用于随机失败测试 **`内部参数`** - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### safetyCheckLevel -- 说明:用于随机失败测试 `内部参数` +- 说明:用于随机失败测试 **`内部参数`** - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### experimental -- 说明:用于一些实验特性 `内部参数` +- 说明:用于一些实验特性 **`内部参数`** - 动态修改:支持通过 SQL 修改,立即生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### simdEnable -- 说明:用于测试 SIMD 加速 `内部参数` +- 说明:用于测试 SIMD 加速 **`内部参数`** - 动态修改:不支持 - 支持版本:从 v3.3.4.3 版本开始引入 #### AVX512Enable -- 说明:用于测试 AVX512 加速 `内部参数` +- 说明:用于测试 AVX512 加速 **`内部参数`** - 动态修改:不支持 - 支持版本:从 v3.3.4.3 版本开始引入 #### rsyncPort -- 说明:用于调试流计算 `内部参数` +- 说明:用于调试流计算 **`内部参数`** - 动态修改:不支持 - 支持版本:从 v3.1.0.0 版本开始引入 #### snodeAddress -- 说明:用于调试流计算 `内部参数` +- 说明:用于调试流计算 **`内部参数`** - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### checkpointBackupDir -- 说明:用于恢复 snode 数据 `内部参数` +- 说明:用于恢复 snode 数据 **`内部参数`** - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从 v3.1.0.0 版本开始引入 #### enableAuditDelete -- 说明:用于测试审计功能 `内部参数` +- 说明:用于测试审计功能 **`内部参数`** - 动态修改:不支持 - 支持版本:从 v3.1.0.0 版本开始引入 #### slowLogThresholdTest -- 说明:用于测试慢日志 `内部参数` +- 说明:用于测试慢日志 **`内部参数`** - 动态修改:不支持 - 支持版本:从 v3.1.0.0 版本开始引入 @@ -1461,17 +1461,17 @@ charset 的有效值是 UTF-8。 - 支持版本:从v3.1.0.0 版本引入,v3.3.0.0 以后废弃。 #### maxRange -- 说明:用于有损压缩设置 `内部参数` +- 说明:用于有损压缩设置 **`内部参数`** - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从v3.1.0.0 版本引入,v3.3.0.0 以后废弃。 #### curRange -- 说明:用于有损压缩设置 `内部参数` +- 说明:用于有损压缩设置 **`内部参数`** - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从v3.1.0.0 版本引入,v3.3.0.0 以后废弃。 #### compressor -- 说明:用于有损压缩设置 `内部参数` +- 说明:用于有损压缩设置 **`内部参数`** - 动态修改:支持通过 SQL 修改,重启生效。 - 支持版本:从v3.1.0.0 版本引入,v3.3.0.0 以后废弃。 diff --git a/docs/zh/14-reference/03-taos-sql/02-database.md b/docs/zh/14-reference/03-taos-sql/02-database.md index 1a99af9439..cdd37fbdc4 100644 --- a/docs/zh/14-reference/03-taos-sql/02-database.md +++ b/docs/zh/14-reference/03-taos-sql/02-database.md @@ -96,23 +96,23 @@ database_option: { - 当其为负值时,在决定把一个表分配到哪个 vgroup 时只使用表名中指定长度的后缀; - 例如:假定表名为 "v30001",当 TSDB_SUFFIX = 2 时,使用 "v300" 来决定分配到哪个 vgroup ,当 TSDB_SUFFIX = -2 时使用 "01" 来决定分配到哪个 vgroup。 - TSDB_PAGESIZE:一个 vnode 中时序数据存储引擎的页大小,单位为 KB,默认为 4 KB。范围为 1 到 16384,即 1 KB到 16 MB。 -- DNODES:指定 vnode 所在的 DNODE 列表,如 '1,2,3',以逗号区分且字符间不能有空格(仅企业版支持)。 +- DNODES:指定 vnode 所在的 DNODE 列表,如 '1,2,3',以逗号区分且字符间不能有空格 (**仅企业版支持**) - WAL_LEVEL:WAL 级别,默认为 1。 - 1:写 WAL,但不执行 fsync。 - 2:写 WAL,而且执行 fsync。 - WAL_FSYNC_PERIOD:当 WAL_LEVEL 参数设置为 2 时,用于设置落盘的周期。默认为 3000,单位毫秒。最小为 0,表示每次写入立即落盘;最大为 180000,即三分钟。 - WAL_RETENTION_PERIOD:为了数据订阅消费,需要 WAL 日志文件额外保留的最大时长策略。WAL 日志清理,不受订阅客户端消费状态影响。单位为 s。默认为 3600,表示在 WAL 保留最近 3600 秒的数据,请根据数据订阅的需要修改这个参数为适当值。 - WAL_RETENTION_SIZE:为了数据订阅消费,需要 WAL 日志文件额外保留的最大累计大小策略。单位为 KB。默认为 0,表示累计大小无上限。 -- COMPACT_INTERVAL:自动 compact 触发周期(从 1970-01-01T00:00:00Z 开始切分的时间周期)(仅企业版 3.3.5.0 版本开始支持)。 +- COMPACT_INTERVAL:自动 compact 触发周期(从 1970-01-01T00:00:00Z 开始切分的时间周期)(**仅企业版 3.3.5.0 版本开始支持**)。 - 取值范围:0 或 [10m, keep2],单位:m(分钟),h(小时),d(天); - 不加时间单位默认单位为天,默认值为 0,即不触发自动 compact 功能; - 如果 db 中有未完成的 compact 任务,不重复下发 compact 任务。 -- COMPACT_TIME_RANGE:自动 compact 任务触发的 compact 时间范围(仅企业版 3.3.5.0 版本开始支持)。 +- COMPACT_TIME_RANGE:自动 compact 任务触发的 compact 时间范围(**仅企业版 3.3.5.0 版本开始支持**)。 - 取值范围:[-keep2, -duration],单位:m(分钟),h(小时),d(天); - 不加时间单位时默认单位为天,默认值为 [0, 0]; - 取默认值 [0, 0] 时,如果 COMPACT_INTERVAL 大于 0,会按照 [-keep2, -duration] 下发自动 compact; - 因此,要关闭自动 compact 功能,需要将 COMPACT_INTERVAL 设置为 0。 -- COMPACT_TIME_OFFSET:自动 compact 任务触发的 compact 时间相对本地时间的偏移量(仅企业版 3.3.5.0 版本开始支持)。取值范围:[0, 23],单位:h(小时),默认值为 0。以 UTC 0 时区为例: +- COMPACT_TIME_OFFSET:自动 compact 任务触发的 compact 时间相对本地时间的偏移量(**仅企业版 3.3.5.0 版本开始支持**)。取值范围:[0, 23],单位:h(小时),默认值为 0。以 UTC 0 时区为例: - 如果 COMPACT_INTERVAL 为 1d,当 COMPACT_TIME_OFFSET 为 0 时,在每天 0 点下发自动 compact; - 如果 COMPACT_TIME_OFFSET 为 2,在每天 2 点下发自动 compact。 @@ -245,7 +245,7 @@ REDISTRIBUTE VGROUP vgroup_no DNODE dnode_id1 [DNODE dnode_id2] [DNODE dnode_id3 BALANCE VGROUP LEADER; ``` -触发集群所有 vgroup 中的 leader 重新选主,对集群各节点进行负载均衡操作。(企业版功能) +触发集群所有 vgroup 中的 leader 重新选主,对集群各节点进行负载均衡操作。(**企业版功能**) ## 查看数据库工作状态 From bb7bea51e667281599e568c585b632a9f3bc4ea3 Mon Sep 17 00:00:00 2001 From: haoranchen Date: Mon, 17 Mar 2025 17:34:39 +0800 Subject: [PATCH 05/10] doc: add Loong64 arch to 07-supported.md (#30099) --- docs/zh/14-reference/07-supported.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/14-reference/07-supported.md b/docs/zh/14-reference/07-supported.md index 5115bd8188..f0f8d08256 100644 --- a/docs/zh/14-reference/07-supported.md +++ b/docs/zh/14-reference/07-supported.md @@ -31,7 +31,7 @@ description: "TDengine 服务端、客户端和连接器支持的平台列表" ## TDengine 客户端和连接器支持的平台列表 -目前 TDengine 的连接器可支持的平台广泛,目前包括:X64/X86/ARM64/ARM32/MIPS/LoongArch64 等硬件平台,以及 Linux/Win64/Win32/macOS 等开发环境。 +目前 TDengine 的连接器可支持的平台广泛,目前包括:X64/X86/ARM64/ARM32/MIPS/LoongArch64(或Loong64) 等硬件平台,以及 Linux/Win64/Win32/macOS 等开发环境。 对照矩阵如下: From 7f9d97ef7287d529a23227f23071249c1d9da9ad Mon Sep 17 00:00:00 2001 From: haoranchen Date: Mon, 17 Mar 2025 17:34:53 +0800 Subject: [PATCH 06/10] fix: correct hyperlink formatting in stream documentation (#30044) --- docs/zh/14-reference/03-taos-sql/14-stream.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/14-reference/03-taos-sql/14-stream.md b/docs/zh/14-reference/03-taos-sql/14-stream.md index 51667df358..7f084cecb1 100644 --- a/docs/zh/14-reference/03-taos-sql/14-stream.md +++ b/docs/zh/14-reference/03-taos-sql/14-stream.md @@ -34,7 +34,7 @@ subquery: SELECT select_list stb_name 是保存计算结果的超级表的表名,如果该超级表不存在,会自动创建;如果已存在,则检查列的 schema 信息。详见 [写入已存在的超级表](#写入已存在的超级表)。 -TAGS 子句定义了流计算中创建TAG的规则,可以为每个 partition 对应的子表生成自定义的TAG值,详见 [自定义 TAG](#自定义 TAG) +TAGS 子句定义了流计算中创建TAG的规则,可以为每个 partition 对应的子表生成自定义的TAG值,详见 [自定义 TAG](#自定义-TAG) ```sql create_definition: col_name column_definition @@ -42,7 +42,7 @@ column_definition: type_name [COMMENT 'string_value'] ``` -subtable 子句定义了流式计算中创建的子表的命名规则,详见 [流式计算的 partition](#流式计算的 partition)。 +subtable 子句定义了流式计算中创建的子表的命名规则,详见 [流式计算的 partition](#流式计算的-partition)。 ```sql window_clause: { From 03b4cb6d47d81f8410cf76d9ca4d882ec9a83439 Mon Sep 17 00:00:00 2001 From: Zhiyu Yang <69311263+zyyang90@users.noreply.github.com> Date: Mon, 17 Mar 2025 17:35:10 +0800 Subject: [PATCH 07/10] docs(backup): en docs of support s3 restore (#30039) --- docs/en/08-operation/09-backup.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/en/08-operation/09-backup.md b/docs/en/08-operation/09-backup.md index ee0a56c497..a3ef6d19db 100644 --- a/docs/en/08-operation/09-backup.md +++ b/docs/en/08-operation/09-backup.md @@ -72,8 +72,16 @@ TDengine Enterprise implements incremental backup and recovery of data by using 7. **Directory:** Enter the full path of the directory in which you want to store backup files. 8. **Backup file max size:** Enter the maximum size of a single backup file. If the total size of your backup exceeds this number, the backup is split into multiple files. 9. **Compression level:** Select **fastest** for the fastest performance but lowest compression ratio, **best** for the highest compression ratio but slowest performance, or **balanced** for a combination of performance and compression. - -4. Click **Confirm** to create the backup plan. +4. Users can enable S3 dumping to upload backup files to the S3 storage service. To enable S3 dumping, the following information needs to be provided: + 1. **Endpoint**: The address of the S3 endpoint. + 2. **Access Key ID**: The access key ID for authentication. + 3. **Secret Access Key**: The secret access key for authentication. + 4. **Bucket**: The name of the target bucket. + 5. **Region**: The region where the bucket is located. + 6. **Object Prefix**: A prefix for backup file objects, similar to a directory path on S3. + 7. **Backup Retention Period**: The retention duration for local backups. All files older than `current time - backup_retention_period` must be uploaded to S3. + 8. **Backup Retention Count**: The number of local backups to retain. Only the latest `backup_retention_size` backup files are kept locally. +5. Click **Confirm** to create the backup plan. You can view your backup plans and modify, clone, or delete them using the buttons in the **Operation** columns. Click **Refresh** to update the status of your plans. Note that you must stop a backup plan before you can delete it. You can also click **View** in the **Backup File** column to view the backup record points and files created by each plan. From 2171d5434afa8797c00d5a2e361dbefb1438a1c6 Mon Sep 17 00:00:00 2001 From: haoranchen Date: Mon, 17 Mar 2025 17:39:15 +0800 Subject: [PATCH 08/10] modify tsbs test in README.md (#29877) * modify tsbs test in README.md * Update README.md * doc: modify tsbs test in README.md * Update tests/README.md Co-authored-by: Nie Minhui <143420805+minhuinie@users.noreply.github.com> * Update tests/README.md Co-authored-by: Nie Minhui <143420805+minhuinie@users.noreply.github.com> * Update tests/README.md Co-authored-by: Nie Minhui <143420805+minhuinie@users.noreply.github.com> --------- Co-authored-by: Nie Minhui <143420805+minhuinie@users.noreply.github.com> --- tests/README.md | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/tests/README.md b/tests/README.md index 5450e9072c..df8fbfc655 100644 --- a/tests/README.md +++ b/tests/README.md @@ -241,20 +241,23 @@ Please refer to the [Unit Test](#31-unit-test)、[System Test](#32-system-test) ### 3.7.1 How to run tests? -TSBS test can be started locally by running command below. Ensure that your virtual machine supports the AVX instruction set: + +TSBS test can be started locally by running command below. Ensure that your virtual machine supports the AVX instruction set. +You need to use sudo -s to start a new shell session as the superuser (root) in order to begin the testing: ```bash cd /usr/local/src && \ git clone https://github.com/taosdata/tsbs.git && \ cd tsbs && \ -git checkout enh/chr-td-33357 && \ +git checkout enh/add-influxdb3.0 && \ cd scripts/tsdbComp && \ -./testTsbs.sh +./tsbs_test.sh -s scenario4 ``` > [!NOTE] -> 1. TSBS test is written in Golang, in order to run the test smoothly, a Go proxy in China is set in above script by default. If this is not what you want, please unset it with command `sed -i '/GOPROXY/d' /usr/local/src/tsbs/scripts/tsdbComp/installTsbsCommand.sh` before starting the test. -> 2. To check your current Go proxy setting, please run `go env | grep GOPROXY`. +> 1. TSBS test is written in Golang. If you are unable to connect to the [international Go proxy](https://proxy.golang.org), the script will automatically set it to the [china Go proxy](https://goproxy.cn). +> 2. If you need to cancel this china Go proxy, you can execute the following command in your environment `go env -u GOPROXY`. +> 3. To check your current Go proxy setting, please run `go env | grep GOPROXY`. ### 3.7.2 How to start client and server on different hosts? @@ -277,4 +280,9 @@ serverPass="taosdata123" # server root password ### 3.7.3 Check test results -When the test is done, the result can be found in `/data2/` directory, which can also be configured in `test.ini`. +When the test is done, the result can be found in `${installPath}/tsbs/scripts/tsdbComp/log/` directory, which ${installPath} can be configured in `test.ini`. + +### 3.7.4 Test more scenario + +Use `./tsbs_test.sh -h` to get more test scenarios. + From 379a75a4290b3543af38e9ece1b704aa7360ce5f Mon Sep 17 00:00:00 2001 From: Jing Sima Date: Mon, 17 Mar 2025 17:41:46 +0800 Subject: [PATCH 09/10] test: reopen mac unit tests. (#29648) --- source/libs/scalar/test/filter/CMakeLists.txt | 28 +++++++------- source/libs/scalar/test/scalar/CMakeLists.txt | 38 +++++++++---------- 2 files changed, 31 insertions(+), 35 deletions(-) diff --git a/source/libs/scalar/test/filter/CMakeLists.txt b/source/libs/scalar/test/filter/CMakeLists.txt index 44a0395286..c14bad1c65 100644 --- a/source/libs/scalar/test/filter/CMakeLists.txt +++ b/source/libs/scalar/test/filter/CMakeLists.txt @@ -1,20 +1,18 @@ MESSAGE(STATUS "build filter unit test") -IF(TD_DARWIN) - # GoogleTest requires at least C++11 - SET(CMAKE_CXX_STANDARD 11) - AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST) +# GoogleTest requires at least C++11 +SET(CMAKE_CXX_STANDARD 11) +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST) - ADD_EXECUTABLE(filterTest ${SOURCE_LIST}) - TARGET_LINK_LIBRARIES( - filterTest - PUBLIC os util common gtest qcom function nodes scalar parser catalog transport - ) +ADD_EXECUTABLE(filterTest ${SOURCE_LIST}) +TARGET_LINK_LIBRARIES( + filterTest + PUBLIC os util common gtest qcom function nodes scalar parser catalog transport +) - TARGET_INCLUDE_DIRECTORIES( - filterTest - PUBLIC "${TD_SOURCE_DIR}/include/libs/scalar/" - PRIVATE "${TD_SOURCE_DIR}/source/libs/scalar/inc" - ) -ENDIF() +TARGET_INCLUDE_DIRECTORIES( + filterTest + PUBLIC "${TD_SOURCE_DIR}/include/libs/scalar/" + PRIVATE "${TD_SOURCE_DIR}/source/libs/scalar/inc" +) diff --git a/source/libs/scalar/test/scalar/CMakeLists.txt b/source/libs/scalar/test/scalar/CMakeLists.txt index 4624c1a7fd..6c3b40f49f 100644 --- a/source/libs/scalar/test/scalar/CMakeLists.txt +++ b/source/libs/scalar/test/scalar/CMakeLists.txt @@ -1,25 +1,23 @@ MESSAGE(STATUS "build scalar unit test") -IF(NOT TD_DARWIN) - # GoogleTest requires at least C++11 - SET(CMAKE_CXX_STANDARD 11) - AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST) +# GoogleTest requires at least C++11 +SET(CMAKE_CXX_STANDARD 11) +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST) - ADD_EXECUTABLE(scalarTest ${SOURCE_LIST}) - TARGET_LINK_LIBRARIES( - scalarTest - PUBLIC os util common gtest qcom function nodes scalar parser catalog transport - ) +ADD_EXECUTABLE(scalarTest ${SOURCE_LIST}) +TARGET_LINK_LIBRARIES( + scalarTest + PUBLIC os util common gtest qcom function nodes scalar parser catalog transport +) - TARGET_INCLUDE_DIRECTORIES( - scalarTest - PUBLIC "${TD_SOURCE_DIR}/include/libs/scalar/" - PUBLIC "${TD_SOURCE_DIR}/source/libs/parser/inc" - PRIVATE "${TD_SOURCE_DIR}/source/libs/scalar/inc" - ) - add_test( - NAME scalarTest - COMMAND scalarTest - ) -ENDIF() +TARGET_INCLUDE_DIRECTORIES( + scalarTest + PUBLIC "${TD_SOURCE_DIR}/include/libs/scalar/" + PUBLIC "${TD_SOURCE_DIR}/source/libs/parser/inc" + PRIVATE "${TD_SOURCE_DIR}/source/libs/scalar/inc" +) +add_test( + NAME scalarTest + COMMAND scalarTest +) \ No newline at end of file From 2151c5cae0a7654db07fd3747aa37cd0306fb541 Mon Sep 17 00:00:00 2001 From: Yihao Deng Date: Mon, 17 Mar 2025 17:42:24 +0800 Subject: [PATCH 10/10] update telemInterval (#29703) --- source/dnode/mnode/impl/src/mndMain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/dnode/mnode/impl/src/mndMain.c b/source/dnode/mnode/impl/src/mndMain.c index c59a647b86..64c76776ef 100644 --- a/source/dnode/mnode/impl/src/mndMain.c +++ b/source/dnode/mnode/impl/src/mndMain.c @@ -411,7 +411,7 @@ void mndDoTimerPullupTask(SMnode *pMnode, int64_t sec) { mndStreamConsensusChkpt(pMnode); } - if (sec % tsTelemInterval == (TMIN(86400, (tsTelemInterval - 1)))) { + if (tsTelemInterval > 0 && sec % tsTelemInterval == 0) { mndPullupTelem(pMnode); }