From 4ffe3f76caf6ccb5f327889e862e5111c5cf9f7c Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Sun, 6 Nov 2022 12:46:48 +0800 Subject: [PATCH 01/83] test: rollback taosadapter for taos-tools ci test --- cmake/taosadapter_CMakeLists.txt.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/taosadapter_CMakeLists.txt.in b/cmake/taosadapter_CMakeLists.txt.in index c507ae2536..5b8192831e 100644 --- a/cmake/taosadapter_CMakeLists.txt.in +++ b/cmake/taosadapter_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taosadapter ExternalProject_Add(taosadapter GIT_REPOSITORY https://github.com/taosdata/taosadapter.git - GIT_TAG 8c3d57d + GIT_TAG a11131c SOURCE_DIR "${TD_SOURCE_DIR}/tools/taosadapter" BINARY_DIR "" #BUILD_IN_SOURCE TRUE From 2714db10bdb04df153bb8d170fa5ef8d37e39e7f Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Mon, 24 Jul 2023 19:15:33 +0800 Subject: [PATCH 02/83] fix:modify dot to underline in schemaless supertable name --- source/client/inc/clientSml.h | 1 + source/client/src/clientSml.c | 29 ++++++++++++++++++++------- source/client/src/clientSmlLine.c | 2 ++ tests/system-test/2-query/sml.py | 9 +++++++++ utils/test/c/sml_test.c | 33 +++++++++++++++++++++++++++++++ 5 files changed, 67 insertions(+), 7 deletions(-) diff --git a/source/client/inc/clientSml.h b/source/client/inc/clientSml.h index c9eb951014..32d574f33e 100644 --- a/source/client/inc/clientSml.h +++ b/source/client/inc/clientSml.h @@ -258,6 +258,7 @@ int32_t smlParseInfluxString(SSmlHandle *info, char *sql, char *sqlEnd, SSmlLine int32_t smlParseTelnetString(SSmlHandle *info, char *sql, char *sqlEnd, SSmlLineInfo *elements); int32_t smlParseJSON(SSmlHandle *info, char *payload); +void smlStrReplace(char* src, int32_t len); #ifdef __cplusplus } #endif diff --git a/source/client/src/clientSml.c b/source/client/src/clientSml.c index 13dc019feb..7492258d2e 100644 --- a/source/client/src/clientSml.c +++ b/source/client/src/clientSml.c @@ -114,6 +114,14 @@ inline bool smlDoubleToInt64OverFlow(double num) { return false; } +void smlStrReplace(char* src, int32_t len){ + for(int i = 0; i < len; i++){ + if(src[i] == '.'){ + src[i] = '_'; + } + } +} + int32_t smlBuildInvalidDataMsg(SSmlMsgBuf *pBuf, const char *msg1, const char *msg2) { if (pBuf->buf) { memset(pBuf->buf, 0, pBuf->len); @@ -838,6 +846,7 @@ static int32_t smlModifyDBSchemas(SSmlHandle *info) { char *measure = taosMemoryMalloc(superTableLen); memcpy(measure, superTable, superTableLen); PROCESS_SLASH_IN_MEASUREMENT(measure, superTableLen); + smlStrReplace(measure, superTableLen); memset(pName.tname, 0, TSDB_TABLE_NAME_LEN); memcpy(pName.tname, measure, superTableLen); taosMemoryFree(measure); @@ -1051,7 +1060,8 @@ static int32_t smlModifyDBSchemas(SSmlHandle *info) { taosMemoryFreeClear(sTableData->tableMeta); sTableData->tableMeta = pTableMeta; uDebug("SML:0x%" PRIx64 "modify schema uid:%" PRIu64 ", sversion:%d, tversion:%d", info->id, pTableMeta->uid, - pTableMeta->sversion, pTableMeta->tversion) tmp = (SSmlSTableMeta **)taosHashIterate(info->superTables, tmp); + pTableMeta->sversion, pTableMeta->tversion); + tmp = (SSmlSTableMeta **)taosHashIterate(info->superTables, tmp); } uDebug("SML:0x%" PRIx64 " smlModifyDBSchemas end success, format:%d, needModifySchema:%d", info->id, info->dataFormat, info->needModifySchema); @@ -1394,7 +1404,14 @@ static int32_t smlInsertData(SSmlHandle *info) { SSmlTableInfo **oneTable = (SSmlTableInfo **)taosHashIterate(info->childTables, NULL); while (oneTable) { SSmlTableInfo *tableData = *oneTable; - tstrncpy(pName.tname, tableData->sTableName, tableData->sTableNameLen + 1); + + int measureLen = tableData->sTableNameLen; + char *measure = (char *)taosMemoryMalloc(tableData->sTableNameLen); + memcpy(measure, tableData->sTableName, tableData->sTableNameLen); + PROCESS_SLASH_IN_MEASUREMENT(measure, measureLen); + smlStrReplace(measure, measureLen); + + tstrncpy(pName.tname, measure, measureLen + 1); if (info->pRequest->tableList == NULL) { info->pRequest->tableList = taosArrayInit(1, sizeof(SName)); @@ -1411,6 +1428,7 @@ static int32_t smlInsertData(SSmlHandle *info) { code = smlCheckAuth(info, &conn, pName.tname, AUTH_TYPE_WRITE); if(code != TSDB_CODE_SUCCESS){ + taosMemoryFree(measure); return code; } @@ -1418,6 +1436,7 @@ static int32_t smlInsertData(SSmlHandle *info) { code = catalogGetTableHashVgroup(info->pCatalog, &conn, &pName, &vg); if (code != TSDB_CODE_SUCCESS) { uError("SML:0x%" PRIx64 " catalogGetTableHashVgroup failed. table name: %s", info->id, tableData->childTableName); + taosMemoryFree(measure); return code; } taosHashPut(info->pVgHash, (const char *)&vg.vgId, sizeof(vg.vgId), (char *)&vg, sizeof(vg)); @@ -1426,6 +1445,7 @@ static int32_t smlInsertData(SSmlHandle *info) { (SSmlSTableMeta **)taosHashGet(info->superTables, tableData->sTableName, tableData->sTableNameLen); if (unlikely(NULL == pMeta || NULL == (*pMeta)->tableMeta)) { uError("SML:0x%" PRIx64 " NULL == pMeta. table name: %s", info->id, tableData->childTableName); + taosMemoryFree(measure); return TSDB_CODE_SML_INTERNAL_ERROR; } @@ -1435,11 +1455,6 @@ static int32_t smlInsertData(SSmlHandle *info) { uDebug("SML:0x%" PRIx64 " smlInsertData table:%s, uid:%" PRIu64 ", format:%d", info->id, pName.tname, tableData->uid, info->dataFormat); - int measureLen = tableData->sTableNameLen; - char *measure = (char *)taosMemoryMalloc(tableData->sTableNameLen); - memcpy(measure, tableData->sTableName, tableData->sTableNameLen); - PROCESS_SLASH_IN_MEASUREMENT(measure, measureLen); - code = smlBindData(info->pQuery, info->dataFormat, tableData->tags, (*pMeta)->cols, tableData->cols, (*pMeta)->tableMeta, tableData->childTableName, measure, measureLen, info->ttl, info->msgBuf.buf, info->msgBuf.len); diff --git a/source/client/src/clientSmlLine.c b/source/client/src/clientSmlLine.c index c5832ce1ce..f5b0689eca 100644 --- a/source/client/src/clientSmlLine.c +++ b/source/client/src/clientSmlLine.c @@ -157,6 +157,7 @@ static int32_t smlParseTagKv(SSmlHandle *info, char **sql, char *sqlEnd, SSmlLin measure = (char *)taosMemoryMalloc(currElement->measureLen); memcpy(measure, currElement->measure, currElement->measureLen); PROCESS_SLASH_IN_MEASUREMENT(measure, measureLen); + smlStrReplace(measure, measureLen); } STableMeta *pTableMeta = smlGetMeta(info, measure, measureLen); if (currElement->measureEscaped) { @@ -365,6 +366,7 @@ static int32_t smlParseColKv(SSmlHandle *info, char **sql, char *sqlEnd, SSmlLin measure = (char *)taosMemoryMalloc(currElement->measureLen); memcpy(measure, currElement->measure, currElement->measureLen); PROCESS_SLASH_IN_MEASUREMENT(measure, measureLen); + smlStrReplace(measure, measureLen); } STableMeta *pTableMeta = smlGetMeta(info, measure, measureLen); if (currElement->measureEscaped) { diff --git a/tests/system-test/2-query/sml.py b/tests/system-test/2-query/sml.py index 2f97118fbf..5cfdac65c8 100644 --- a/tests/system-test/2-query/sml.py +++ b/tests/system-test/2-query/sml.py @@ -101,6 +101,15 @@ class TDTestCase: tdSql.query(f"desc {dbname}.macylr") tdSql.checkRows(25) + + tdSql.query(f"select * from ts3724._stb_2") + tdSql.checkRows(1) + + tdSql.query(f"select * from ts3724.stb_2") + tdSql.checkRows(1) + + tdSql.query(f"select * from ts3724.stb2_") + tdSql.checkRows(1) return def run(self): diff --git a/utils/test/c/sml_test.c b/utils/test/c/sml_test.c index dad30db02a..e4ed6037a3 100644 --- a/utils/test/c/sml_test.c +++ b/utils/test/c/sml_test.c @@ -1522,6 +1522,36 @@ int sml_ts2385_Test() { return code; } +int sml_ts3724_Test() { + TAOS *taos = taos_connect("localhost", "root", "taosdata", NULL, 0); + + TAOS_RES *pRes = taos_query(taos, "drop database if exists ts3724"); + taos_free_result(pRes); + + pRes = taos_query(taos, "create database if not exists ts3724"); + taos_free_result(pRes); + + const char *sql[] = { + "stb.2,t1=1 f1=283i32 1632299372000", + ".stb2,t1=1 f1=106i32 1632299378000", + "stb2.,t1=1 f1=106i32 1632299378000", + }; + + pRes = taos_query(taos, "use ts3724"); + taos_free_result(pRes); + + pRes = taos_schemaless_insert(taos, (char **)sql, sizeof(sql) / sizeof(sql[0]), TSDB_SML_LINE_PROTOCOL, + TSDB_SML_TIMESTAMP_MILLI_SECONDS); + + int code = taos_errno(pRes); + printf("%s result0:%s\n", __FUNCTION__, taos_errstr(pRes)); + taos_free_result(pRes); + + taos_close(taos); + + return code; +} + int main(int argc, char *argv[]) { if (argc == 2) { taos_options(TSDB_OPTION_CONFIGDIR, argv[1]); @@ -1579,5 +1609,8 @@ int main(int argc, char *argv[]) { ASSERT(!ret); ret = sml_19221_Test(); ASSERT(!ret); + ret = sml_ts3724_Test(); + ASSERT(!ret); + return ret; } From 853c495aedd1b1e820740e51c59b31c4d8dd390a Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Mon, 24 Jul 2023 20:23:17 +0800 Subject: [PATCH 03/83] fix:heap over flow --- source/client/src/clientSml.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/client/src/clientSml.c b/source/client/src/clientSml.c index 7492258d2e..d1278d371f 100644 --- a/source/client/src/clientSml.c +++ b/source/client/src/clientSml.c @@ -1410,8 +1410,8 @@ static int32_t smlInsertData(SSmlHandle *info) { memcpy(measure, tableData->sTableName, tableData->sTableNameLen); PROCESS_SLASH_IN_MEASUREMENT(measure, measureLen); smlStrReplace(measure, measureLen); - - tstrncpy(pName.tname, measure, measureLen + 1); + memset(pName.tname, 0, TSDB_TABLE_NAME_LEN); + memcpy(pName.tname, measure, measureLen); if (info->pRequest->tableList == NULL) { info->pRequest->tableList = taosArrayInit(1, sizeof(SName)); From d3970c113fa388aefc09d696175d60cfe0293afa Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Tue, 25 Jul 2023 14:35:21 +0800 Subject: [PATCH 04/83] fix:memory leak --- source/client/src/clientSml.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/client/src/clientSml.c b/source/client/src/clientSml.c index d1278d371f..e557d40e6c 100644 --- a/source/client/src/clientSml.c +++ b/source/client/src/clientSml.c @@ -104,7 +104,7 @@ static int32_t smlCheckAuth(SSmlHandle *info, SRequestConnInfo* conn, const cha SUserAuthRes authRes = {0}; code = catalogChkAuth(info->pCatalog, conn, &pAuth, &authRes); - + nodesDestroyNode(authRes.pCond); return (code == TSDB_CODE_SUCCESS) ? (authRes.pass ? TSDB_CODE_SUCCESS : TSDB_CODE_PAR_PERMISSION_DENIED) : code; From be4e47e9a708f0571375dabe0809b0aeb23200c6 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Tue, 25 Jul 2023 16:15:33 +0800 Subject: [PATCH 05/83] fix:add macro ASSERT_NOT_CORE to control ASSERT not core in release version --- source/client/src/clientTmq.c | 4 ++-- source/common/src/tmsg.c | 3 +++ source/dnode/mnode/impl/src/mndSubscribe.c | 2 +- source/dnode/vnode/src/tq/tqUtil.c | 1 + source/util/CMakeLists.txt | 7 +++++++ source/util/src/tlog.c | 4 ++++ 6 files changed, 18 insertions(+), 3 deletions(-) diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index 8fb6911f81..3576df434b 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -1860,8 +1860,8 @@ static int32_t tmqHandleNoPollRsp(tmq_t* tmq, SMqRspWrapper* rspWrapper, bool* p static void updateVgInfo(SMqClientVg* pVg, STqOffsetVal* reqOffset, STqOffsetVal* rspOffset, int64_t sver, int64_t ever, int64_t consumerId){ if (!pVg->seekUpdated) { tscDebug("consumer:0x%" PRIx64" local offset is update, since seekupdate not set", consumerId); - if(reqOffset->type != 0) pVg->offsetInfo.beginOffset = *reqOffset; - if(rspOffset->type != 0) pVg->offsetInfo.endOffset = *rspOffset; + pVg->offsetInfo.beginOffset = *reqOffset; + pVg->offsetInfo.endOffset = *rspOffset; } else { tscDebug("consumer:0x%" PRIx64" local offset is NOT update, since seekupdate is set", consumerId); } diff --git a/source/common/src/tmsg.c b/source/common/src/tmsg.c index 8051f4d0bd..643313f3f7 100644 --- a/source/common/src/tmsg.c +++ b/source/common/src/tmsg.c @@ -7207,6 +7207,9 @@ bool tOffsetEqual(const STqOffsetVal *pLeft, const STqOffsetVal *pRight) { return pLeft->uid == pRight->uid && pLeft->ts == pRight->ts; } else if (pLeft->type == TMQ_OFFSET__SNAPSHOT_META) { return pLeft->uid == pRight->uid; + } else { + uError("offset type:%d", pLeft->type); + ASSERT(0); } } return false; diff --git a/source/dnode/mnode/impl/src/mndSubscribe.c b/source/dnode/mnode/impl/src/mndSubscribe.c index f51a61eda3..0fa9efd427 100644 --- a/source/dnode/mnode/impl/src/mndSubscribe.c +++ b/source/dnode/mnode/impl/src/mndSubscribe.c @@ -1168,7 +1168,7 @@ static int32_t buildResult(SSDataBlock *pBlock, int32_t* numOfRows, int64_t cons pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, *numOfRows, (const char *)consumerIdHex, consumerId == -1); - mDebug("mnd show subscriptions: topic %s, consumer:0x%" PRIx64 " cgroup %s vgid %d", varDataVal(topic), + mInfo("mnd show subscriptions: topic %s, consumer:0x%" PRIx64 " cgroup %s vgid %d", varDataVal(topic), consumerId, varDataVal(cgroup), pVgEp->vgId); // offset diff --git a/source/dnode/vnode/src/tq/tqUtil.c b/source/dnode/vnode/src/tq/tqUtil.c index 4320995306..91a98ba3b0 100644 --- a/source/dnode/vnode/src/tq/tqUtil.c +++ b/source/dnode/vnode/src/tq/tqUtil.c @@ -348,6 +348,7 @@ int32_t tqExtractDataForMq(STQ* pTq, STqHandle* pHandle, const SMqPollReq* pRequ // the offset value can not be monotonious increase?? offset = reqOffset; } else { + uError("req offset type is 0"); return TSDB_CODE_TMQ_INVALID_MSG; } diff --git a/source/util/CMakeLists.txt b/source/util/CMakeLists.txt index 6c9aff046c..9c2ed190c1 100644 --- a/source/util/CMakeLists.txt +++ b/source/util/CMakeLists.txt @@ -5,6 +5,13 @@ if (DEFINED GRANT_CFG_INCLUDE_DIR) add_definitions(-DGRANTS_CFG) endif() +IF (${ASSERT_NOT_CORE}) + ADD_DEFINITIONS(-DASSERT_NOT_CORE) + MESSAGE(STATUS "disable assert core") +ELSE () + MESSAGE(STATUS "enable assert core") +ENDIF (${ASSERT_NOT_CORE}) + target_include_directories( util PUBLIC "${TD_SOURCE_DIR}/include/util" diff --git a/source/util/src/tlog.c b/source/util/src/tlog.c index c07bafa1ea..de7ad848ed 100644 --- a/source/util/src/tlog.c +++ b/source/util/src/tlog.c @@ -76,7 +76,11 @@ static int32_t tsDaylightActive; /* Currently in daylight saving time. */ bool tsLogEmbedded = 0; bool tsAsyncLog = true; +#ifdef ASSERT_NOT_CORE +bool tsAssert = false; +#else bool tsAssert = true; +#endif int32_t tsNumOfLogLines = 10000000; int32_t tsLogKeepDays = 0; LogFp tsLogFp = NULL; From a3614ca5d2076810f031aed84f6c794df76b9dfd Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Tue, 25 Jul 2023 16:18:11 +0800 Subject: [PATCH 06/83] fix:add assert if exception occurs --- source/dnode/mnode/impl/src/mndConsumer.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/dnode/mnode/impl/src/mndConsumer.c b/source/dnode/mnode/impl/src/mndConsumer.c index f23201a062..297324ebf3 100644 --- a/source/dnode/mnode/impl/src/mndConsumer.c +++ b/source/dnode/mnode/impl/src/mndConsumer.c @@ -420,6 +420,7 @@ static int32_t mndProcessMqHbReq(SRpcMsg *pMsg) { SMqSubscribeObj *pSub = mndAcquireSubscribe(pMnode, pConsumer->cgroup, data->topicName); if(pSub == NULL){ + ASSERT(0); continue; } taosWLockLatch(&pSub->lock); @@ -515,7 +516,10 @@ static int32_t mndProcessAskEpReq(SRpcMsg *pMsg) { char *topic = taosArrayGetP(pConsumer->currentTopics, i); SMqSubscribeObj *pSub = mndAcquireSubscribe(pMnode, pConsumer->cgroup, topic); // txn guarantees pSub is created - if(pSub == NULL) continue; + if(pSub == NULL) { + ASSERT(0); + continue; + } taosRLockLatch(&pSub->lock); SMqSubTopicEp topicEp = {0}; @@ -524,6 +528,7 @@ static int32_t mndProcessAskEpReq(SRpcMsg *pMsg) { // 2.1 fetch topic schema SMqTopicObj *pTopic = mndAcquireTopic(pMnode, topic); if(pTopic == NULL) { + ASSERT(0); taosRUnLockLatch(&pSub->lock); mndReleaseSubscribe(pMnode, pSub); continue; From f2553b8718d67842a79922a9816eac7ead1ee627 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Wed, 26 Jul 2023 09:52:04 +0800 Subject: [PATCH 07/83] fix:add configuration to control if change dot to underline in schemaless --- include/common/tglobal.h | 2 + source/client/inc/clientSml.h | 4 +- source/client/src/clientSml.c | 4 + source/client/src/clientSmlJson.c | 8 +- source/client/src/clientSmlLine.c | 4 +- source/client/src/clientSmlTelnet.c | 4 +- source/common/src/tglobal.c | 10 ++ tests/parallel_test/cases.task | 1 + tests/system-test/2-query/sml.py | 8 +- tests/system-test/2-query/sml_TS-3724.py | 125 +++++++++++++++++++++++ 10 files changed, 156 insertions(+), 14 deletions(-) create mode 100644 tests/system-test/2-query/sml_TS-3724.py diff --git a/include/common/tglobal.h b/include/common/tglobal.h index bc4037c642..50fbefc1a5 100644 --- a/include/common/tglobal.h +++ b/include/common/tglobal.h @@ -161,6 +161,8 @@ extern char tsUdfdLdLibPath[]; // schemaless extern char tsSmlChildTableName[]; extern char tsSmlTagName[]; +extern bool tsSmlDot2Underline; +extern char tsSmlTsDefaultName[]; // extern bool tsSmlDataFormat; // extern int32_t tsSmlBatchSize; diff --git a/source/client/inc/clientSml.h b/source/client/inc/clientSml.h index 32d574f33e..040064560c 100644 --- a/source/client/inc/clientSml.h +++ b/source/client/inc/clientSml.h @@ -64,8 +64,8 @@ extern "C" { #define IS_INVALID_COL_LEN(len) ((len) <= 0 || (len) >= TSDB_COL_NAME_LEN) #define IS_INVALID_TABLE_LEN(len) ((len) <= 0 || (len) >= TSDB_TABLE_NAME_LEN) -#define TS "_ts" -#define TS_LEN 3 +//#define TS "_ts" +//#define TS_LEN 3 #define VALUE "_value" #define VALUE_LEN 6 diff --git a/source/client/src/clientSml.c b/source/client/src/clientSml.c index e557d40e6c..ffff3df5d0 100644 --- a/source/client/src/clientSml.c +++ b/source/client/src/clientSml.c @@ -115,6 +115,7 @@ inline bool smlDoubleToInt64OverFlow(double num) { } void smlStrReplace(char* src, int32_t len){ + if (!tsSmlDot2Underline) return; for(int i = 0; i < len; i++){ if(src[i] == '.'){ src[i] = '_'; @@ -201,6 +202,9 @@ static int32_t smlParseTableName(SArray *tags, char *childTableName) { if (childTableNameLen == tag->keyLen && strncmp(tag->key, tsSmlChildTableName, tag->keyLen) == 0) { memset(childTableName, 0, TSDB_TABLE_NAME_LEN); strncpy(childTableName, tag->value, (tag->length < TSDB_TABLE_NAME_LEN ? tag->length : TSDB_TABLE_NAME_LEN)); + if(tsSmlDot2Underline){ + smlStrReplace(childTableName, strlen(childTableName)); + } taosArrayRemove(tags, i); break; } diff --git a/source/client/src/clientSmlJson.c b/source/client/src/clientSmlJson.c index 9683d6799a..76794fd187 100644 --- a/source/client/src/clientSmlJson.c +++ b/source/client/src/clientSmlJson.c @@ -996,8 +996,8 @@ static int32_t smlParseJSONStringExt(SSmlHandle *info, cJSON *root, SSmlLineInfo uError("OTD:0x%" PRIx64 " Unable to parse timestamp from JSON payload", info->id); return TSDB_CODE_INVALID_TIMESTAMP; } - SSmlKv kvTs = {.key = TS, - .keyLen = TS_LEN, + SSmlKv kvTs = {.key = tsSmlTsDefaultName, + .keyLen = strlen(tsSmlTsDefaultName), .type = TSDB_DATA_TYPE_TIMESTAMP, .i = ts, .length = (size_t)tDataTypes[TSDB_DATA_TYPE_TIMESTAMP].bytes}; @@ -1200,8 +1200,8 @@ static int32_t smlParseJSONString(SSmlHandle *info, char **start, SSmlLineInfo * return TSDB_CODE_INVALID_TIMESTAMP; } } - SSmlKv kvTs = {.key = TS, - .keyLen = TS_LEN, + SSmlKv kvTs = {.key = tsSmlTsDefaultName, + .keyLen = strlen(tsSmlTsDefaultName), .type = TSDB_DATA_TYPE_TIMESTAMP, .i = ts, .length = (size_t)tDataTypes[TSDB_DATA_TYPE_TIMESTAMP].bytes}; diff --git a/source/client/src/clientSmlLine.c b/source/client/src/clientSmlLine.c index f5b0689eca..1ee2cfbedf 100644 --- a/source/client/src/clientSmlLine.c +++ b/source/client/src/clientSmlLine.c @@ -653,8 +653,8 @@ int32_t smlParseInfluxString(SSmlHandle *info, char *sql, char *sqlEnd, SSmlLine return TSDB_CODE_INVALID_TIMESTAMP; } // add ts to - SSmlKv kv = {.key = TS, - .keyLen = TS_LEN, + SSmlKv kv = {.key = tsSmlTsDefaultName, + .keyLen = strlen(tsSmlTsDefaultName), .type = TSDB_DATA_TYPE_TIMESTAMP, .i = ts, .length = (size_t)tDataTypes[TSDB_DATA_TYPE_TIMESTAMP].bytes, diff --git a/source/client/src/clientSmlTelnet.c b/source/client/src/clientSmlTelnet.c index b3f45a3107..c378f9b1c3 100644 --- a/source/client/src/clientSmlTelnet.c +++ b/source/client/src/clientSmlTelnet.c @@ -260,8 +260,8 @@ int32_t smlParseTelnetString(SSmlHandle *info, char *sql, char *sqlEnd, SSmlLine smlBuildInvalidDataMsg(&info->msgBuf, "invalid timestamp", sql); return TSDB_CODE_INVALID_TIMESTAMP; } - SSmlKv kvTs = {.key = TS, - .keyLen = TS_LEN, + SSmlKv kvTs = {.key = tsSmlTsDefaultName, + .keyLen = strlen(tsSmlTsDefaultName), .type = TSDB_DATA_TYPE_TIMESTAMP, .i = ts, .length = (size_t)tDataTypes[TSDB_DATA_TYPE_TIMESTAMP].bytes}; diff --git a/source/common/src/tglobal.c b/source/common/src/tglobal.c index bacafee349..caa80438ae 100644 --- a/source/common/src/tglobal.c +++ b/source/common/src/tglobal.c @@ -98,6 +98,8 @@ char *tsClientCrashReportUri = "/ccrashreport"; char *tsSvrCrashReportUri = "/dcrashreport"; // schemaless +bool tsSmlDot2Underline = true; +char tsSmlTsDefaultName[TSDB_COL_NAME_LEN] = "_ts"; char tsSmlTagName[TSDB_COL_NAME_LEN] = "_tag_null"; char tsSmlChildTableName[TSDB_TABLE_NAME_LEN] = ""; // user defined child table name can be specified in tag value. // If set to empty system will generate table name using MD5 hash. @@ -351,6 +353,8 @@ static int32_t taosAddClientCfg(SConfig *pCfg) { if (cfgAddBool(pCfg, "keepColumnName", tsKeepColumnName, true) != 0) return -1; if (cfgAddString(pCfg, "smlChildTableName", "", 1) != 0) return -1; if (cfgAddString(pCfg, "smlTagName", tsSmlTagName, 1) != 0) return -1; + if (cfgAddString(pCfg, "smlTsDefaultName", tsSmlTsDefaultName, 1) != 0) return -1; + if (cfgAddBool(pCfg, "smlDot2Underline", tsSmlDot2Underline, true) != 0) return -1; // if (cfgAddBool(pCfg, "smlDataFormat", tsSmlDataFormat, 1) != 0) return -1; // if (cfgAddInt32(pCfg, "smlBatchSize", tsSmlBatchSize, 1, INT32_MAX, true) != 0) return -1; if (cfgAddInt32(pCfg, "maxInsertBatchRows", tsMaxInsertBatchRows, 1, INT32_MAX, true) != 0) return -1; @@ -785,6 +789,8 @@ static int32_t taosSetClientCfg(SConfig *pCfg) { tstrncpy(tsSmlChildTableName, cfgGetItem(pCfg, "smlChildTableName")->str, TSDB_TABLE_NAME_LEN); tstrncpy(tsSmlTagName, cfgGetItem(pCfg, "smlTagName")->str, TSDB_COL_NAME_LEN); + tstrncpy(tsSmlTsDefaultName, cfgGetItem(pCfg, "smlTsDefaultName")->str, TSDB_COL_NAME_LEN); + tsSmlDot2Underline = cfgGetItem(pCfg, "smlDot2Underline")->bval; // tsSmlDataFormat = cfgGetItem(pCfg, "smlDataFormat")->bval; // tsSmlBatchSize = cfgGetItem(pCfg, "smlBatchSize")->i32; @@ -1219,6 +1225,10 @@ int32_t taosApplyLocalCfg(SConfig *pCfg, char *name) { // tsSmlDataFormat = cfgGetItem(pCfg, "smlDataFormat")->bval; // } else if (strcasecmp("smlBatchSize", name) == 0) { // tsSmlBatchSize = cfgGetItem(pCfg, "smlBatchSize")->i32; + } else if(strcasecmp("smlTsDefaultName", name) == 0) { + tstrncpy(tsSmlTsDefaultName, cfgGetItem(pCfg, "smlTsDefaultName")->str, TSDB_COL_NAME_LEN); + } else if(strcasecmp("smlDot2Underline", name) == 0) { + tsSmlDot2Underline = cfgGetItem(pCfg, "smlDot2Underline")->bval; } else if (strcasecmp("shellActivityTimer", name) == 0) { tsShellActivityTimer = cfgGetItem(pCfg, "shellActivityTimer")->i32; } else if (strcasecmp("supportVnodes", name) == 0) { diff --git a/tests/parallel_test/cases.task b/tests/parallel_test/cases.task index f6126642bb..cfdfdb6b75 100644 --- a/tests/parallel_test/cases.task +++ b/tests/parallel_test/cases.task @@ -344,6 +344,7 @@ ,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/smaTest.py ,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/smaTest.py -R ,,y,system-test,./pytest.sh python3 ./test.py -f 0-others/sma_index.py +,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/sml_TS-3724.py ,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/sml.py ,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/sml.py -R ,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/spread.py diff --git a/tests/system-test/2-query/sml.py b/tests/system-test/2-query/sml.py index 5cfdac65c8..b3aeb72194 100644 --- a/tests/system-test/2-query/sml.py +++ b/tests/system-test/2-query/sml.py @@ -15,7 +15,7 @@ sys.path.append("./7-tmq") from tmqCommon import * class TDTestCase: - updatecfgDict = {'clientCfg': {'smlChildTableName': 'dataModelName', 'fqdn': 'localhost'}, 'fqdn': 'localhost'} + updatecfgDict = {'clientCfg': {'smlChildTableName': 'dataModelName', 'fqdn': 'localhost', 'smlDot2Underline': 0}, 'fqdn': 'localhost'} print("===================: ", updatecfgDict) def init(self, conn, logSql, replicaVar=1): @@ -102,13 +102,13 @@ class TDTestCase: tdSql.query(f"desc {dbname}.macylr") tdSql.checkRows(25) - tdSql.query(f"select * from ts3724._stb_2") + tdSql.query(f"select * from ts3724.`.stb2`") tdSql.checkRows(1) - tdSql.query(f"select * from ts3724.stb_2") + tdSql.query(f"select * from ts3724.`stb.2`") tdSql.checkRows(1) - tdSql.query(f"select * from ts3724.stb2_") + tdSql.query(f"select * from ts3724.`stb2.`") tdSql.checkRows(1) return diff --git a/tests/system-test/2-query/sml_TS-3724.py b/tests/system-test/2-query/sml_TS-3724.py new file mode 100644 index 0000000000..a8b16c4662 --- /dev/null +++ b/tests/system-test/2-query/sml_TS-3724.py @@ -0,0 +1,125 @@ +import taos +import sys +import time +import socket +import os +import threading + +from util.log import * +from util.sql import * +from util.cases import * +from util.dnodes import * +from util.common import * +sys.path.append("./7-tmq") +from tmqCommon import * + +class TDTestCase: + updatecfgDict = {'clientCfg': {'smlChildTableName': 'dataModelName', 'fqdn': 'localhost', 'smlTsDefaultName': "times"}, 'fqdn': 'localhost'} + print("===================: ", updatecfgDict) + + def init(self, conn, logSql, replicaVar=1): + self.replicaVar = int(replicaVar) + tdLog.debug(f"start to excute {__file__}") + tdSql.init(conn.cursor(), True) + #tdSql.init(conn.cursor(), logSql) # output sql.txt file + + def checkContent(self, dbname="sml_db"): + simClientCfg="%s/taos.cfg"%tdDnodes.getSimCfgPath() + buildPath = tdCom.getBuildPath() + cmdStr = '%s/build/bin/sml_test %s'%(buildPath, simClientCfg) + print("cmdStr:", cmdStr) + tdLog.info(cmdStr) + ret = os.system(cmdStr) + if ret != 0: + tdLog.info("sml_test ret != 0") + + tdSql.query(f"select * from ts3303.stb2") + tdSql.query(f"select * from ts3303.meters") + + # tdSql.execute('use sml_db') + tdSql.query(f"select * from {dbname}.t_b7d815c9222ca64cdf2614c61de8f211") + tdSql.checkRows(1) + + tdSql.checkData(0, 0, '2016-01-01 08:00:07.000') + tdSql.checkData(0, 1, 2000) + tdSql.checkData(0, 2, 200) + tdSql.checkData(0, 3, 15) + tdSql.checkData(0, 4, 24.5208) + tdSql.checkData(0, 5, 28.09377) + tdSql.checkData(0, 6, 428) + tdSql.checkData(0, 7, 0) + tdSql.checkData(0, 8, 304) + tdSql.checkData(0, 9, 0) + tdSql.checkData(0, 10, 25) + + tdSql.query(f"select * from {dbname}.readings") + tdSql.checkRows(9) + + tdSql.query(f"select distinct tbname from {dbname}.readings") + tdSql.checkRows(4) + + tdSql.query(f"select * from {dbname}.t_0799064f5487946e5d22164a822acfc8 order by times") + tdSql.checkRows(2) + tdSql.checkData(0, 3, "kk") + tdSql.checkData(1, 3, "") + + + tdSql.query(f"select distinct tbname from {dbname}.`sys_if_bytes_out`") + tdSql.checkRows(2) + + tdSql.query(f"select * from {dbname}.t_fc70dec6677d4277c5d9799c4da806da order by times") + tdSql.checkRows(2) + tdSql.checkData(0, 1, 1.300000000) + tdSql.checkData(1, 1, 13.000000000) + + tdSql.query(f"select * from {dbname}.`sys_procs_running`") + tdSql.checkRows(1) + tdSql.checkData(0, 1, 42.000000000) + tdSql.checkData(0, 2, "web01") + + tdSql.query(f"select distinct tbname from {dbname}.`sys_cpu_nice`") + tdSql.checkRows(3) + + tdSql.query(f"select * from {dbname}.`sys_cpu_nice` order by times") + tdSql.checkRows(4) + tdSql.checkData(0, 1, 13.000000000) + tdSql.checkData(0, 2, "web01") + tdSql.checkData(0, 3, None) + tdSql.checkData(0, 4, "lga") + + tdSql.checkData(1, 1, 9.000000000) + tdSql.checkData(1, 2, "web02") + tdSql.checkData(3, 3, "t1") + tdSql.checkData(0, 4, "lga") + + tdSql.query(f"select * from {dbname}.macylr") + tdSql.checkRows(2) + + tdSql.query(f"select * from {dbname}.qelhxo") + tdSql.checkRows(5) + + tdSql.query(f"desc {dbname}.macylr") + tdSql.checkRows(25) + + tdSql.query(f"select * from ts3724._stb2") + tdSql.checkRows(1) + + tdSql.query(f"select * from ts3724.stb_2") + tdSql.checkRows(1) + + tdSql.query(f"select * from ts3724.stb2_") + tdSql.checkRows(1) + return + + def run(self): + tdSql.prepare() + self.checkContent() + + def stop(self): + tdSql.close() + tdLog.success(f"{__file__} successfully executed") + + +tdCases.addLinux(__file__, TDTestCase()) +tdCases.addWindows(__file__, TDTestCase()) + From ef40f93be6f40d1900100c55f0d7e50d7abf9733 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Wed, 26 Jul 2023 16:43:27 +0800 Subject: [PATCH 08/83] fix:case error --- tests/system-test/1-insert/opentsdb_json_taosc_insert.py | 2 ++ tests/system-test/1-insert/opentsdb_telnet_line_taosc_insert.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/system-test/1-insert/opentsdb_json_taosc_insert.py b/tests/system-test/1-insert/opentsdb_json_taosc_insert.py index 857a8e3a32..91ef1e70a3 100644 --- a/tests/system-test/1-insert/opentsdb_json_taosc_insert.py +++ b/tests/system-test/1-insert/opentsdb_json_taosc_insert.py @@ -24,6 +24,8 @@ import threading import json class TDTestCase: + updatecfgDict = {'clientCfg': {'smlDot2Underline': 0}} + def init(self, conn, logSql, replicaVar=1): self.replicaVar = int(replicaVar) tdLog.debug("start to execute %s" % __file__) diff --git a/tests/system-test/1-insert/opentsdb_telnet_line_taosc_insert.py b/tests/system-test/1-insert/opentsdb_telnet_line_taosc_insert.py index 351cf49e3a..d419aee12c 100644 --- a/tests/system-test/1-insert/opentsdb_telnet_line_taosc_insert.py +++ b/tests/system-test/1-insert/opentsdb_telnet_line_taosc_insert.py @@ -28,6 +28,8 @@ if platform.system().lower() == 'windows': sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') class TDTestCase: + updatecfgDict = {'clientCfg': {'smlDot2Underline': 0}} + def init(self, conn, logSql, replicaVar=1): self.replicaVar = int(replicaVar) tdLog.debug("start to execute %s" % __file__) From 11e690cb67f53c8c983ba2152c6c162e41bd3f11 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Thu, 27 Jul 2023 09:57:52 +0800 Subject: [PATCH 09/83] fix:semaphore always wait in tmq commit logic --- source/client/src/clientTmq.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index b2c901c800..b0fae1083f 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -650,7 +650,7 @@ static void asyncCommitFromResult(tmq_t* tmq, const TAOS_RES* pRes, tmq_commit_c code = asyncCommitOffset(tmq, pTopicName, vgId, &offsetVal, pCommitFp, userParam); end: - if(code != TSDB_CODE_SUCCESS){ + if(code != TSDB_CODE_SUCCESS && pCommitFp != NULL){ pCommitFp(tmq, code, userParam); } } @@ -2348,7 +2348,7 @@ int32_t tmq_commit_sync(tmq_t* tmq, const TAOS_RES* pRes) { tsem_destroy(&pInfo->sem); taosMemoryFree(pInfo); - tscDebug("consumer:0x%" PRIx64 " sync commit done, code:%s", tmq->consumerId, tstrerror(code)); + tscInfo("consumer:0x%" PRIx64 " sync res commit done, code:%s", tmq->consumerId, tstrerror(code)); return code; } @@ -2404,15 +2404,16 @@ int32_t tmq_commit_offset_sync(tmq_t *tmq, const char *pTopicName, int32_t vgId, tsem_init(&pInfo->sem, 0, 0); pInfo->code = 0; - asyncCommitOffset(tmq, tname, vgId, &offsetVal, commitCallBackFn, pInfo); - - tsem_wait(&pInfo->sem); - code = pInfo->code; + code = asyncCommitOffset(tmq, tname, vgId, &offsetVal, commitCallBackFn, pInfo); + if(code == 0){ + tsem_wait(&pInfo->sem); + code = pInfo->code; + } tsem_destroy(&pInfo->sem); taosMemoryFree(pInfo); - tscInfo("consumer:0x%" PRIx64 " sync send seek to vgId:%d, offset:%" PRId64" code:%s", tmq->consumerId, vgId, offset, tstrerror(code)); + tscInfo("consumer:0x%" PRIx64 " sync send commit to vgId:%d, offset:%" PRId64" code:%s", tmq->consumerId, vgId, offset, tstrerror(code)); return code; } @@ -2449,7 +2450,7 @@ void tmq_commit_offset_async(tmq_t *tmq, const char *pTopicName, int32_t vgId, i code = asyncCommitOffset(tmq, tname, vgId, &offsetVal, cb, param); - tscInfo("consumer:0x%" PRIx64 " async send seek to vgId:%d, offset:%" PRId64" code:%s", tmq->consumerId, vgId, offset, tstrerror(code)); + tscInfo("consumer:0x%" PRIx64 " async send commit to vgId:%d, offset:%" PRId64" code:%s", tmq->consumerId, vgId, offset, tstrerror(code)); end: if(code != 0 && cb != NULL){ From 68eb1cfc1ec3b359bf7b66f1e870674da54f695f Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Thu, 27 Jul 2023 10:03:18 +0800 Subject: [PATCH 10/83] fix:semaphore always wait in tmq commit logic --- source/client/src/clientTmq.c | 48 ++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index b0fae1083f..aba127c36e 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -586,30 +586,32 @@ static int32_t asyncCommitOffset(tmq_t* tmq, char* pTopicName, int32_t vgId, STq if(code != 0){ goto end; } - if (offsetVal->type > 0 && !tOffsetEqual(offsetVal, &pVg->offsetInfo.committedOffset)) { - char offsetBuf[TSDB_OFFSET_LEN] = {0}; - tFormatOffset(offsetBuf, tListLen(offsetBuf), offsetVal); - - char commitBuf[TSDB_OFFSET_LEN] = {0}; - tFormatOffset(commitBuf, tListLen(commitBuf), &pVg->offsetInfo.committedOffset); - - SMqCommitCbParamSet* pParamSet = prepareCommitCbParamSet(tmq, pCommitFp, userParam, 0); - if (pParamSet == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; - goto end; - } - code = doSendCommitMsg(tmq, pVg->vgId, &pVg->epSet, offsetVal, pTopicName, pParamSet); - if (code != TSDB_CODE_SUCCESS) { - tscError("consumer:0x%" PRIx64 " topic:%s on vgId:%d end commit msg failed, send offset:%s committed:%s, code:%s", - tmq->consumerId, pTopicName, pVg->vgId, offsetBuf, commitBuf, tstrerror(terrno)); - taosMemoryFree(pParamSet); - goto end; - } - - tscInfo("consumer:0x%" PRIx64 " topic:%s on vgId:%d send commit msg success, send offset:%s committed:%s", - tmq->consumerId, pTopicName, pVg->vgId, offsetBuf, commitBuf); - pVg->offsetInfo.committedOffset = *offsetVal; + if (offsetVal->type <= 0 || tOffsetEqual(offsetVal, &pVg->offsetInfo.committedOffset)) { + code = TSDB_CODE_TMQ_INVALID_MSG; + goto end; } + char offsetBuf[TSDB_OFFSET_LEN] = {0}; + tFormatOffset(offsetBuf, tListLen(offsetBuf), offsetVal); + + char commitBuf[TSDB_OFFSET_LEN] = {0}; + tFormatOffset(commitBuf, tListLen(commitBuf), &pVg->offsetInfo.committedOffset); + + SMqCommitCbParamSet* pParamSet = prepareCommitCbParamSet(tmq, pCommitFp, userParam, 0); + if (pParamSet == NULL) { + code = TSDB_CODE_OUT_OF_MEMORY; + goto end; + } + code = doSendCommitMsg(tmq, pVg->vgId, &pVg->epSet, offsetVal, pTopicName, pParamSet); + if (code != TSDB_CODE_SUCCESS) { + tscError("consumer:0x%" PRIx64 " topic:%s on vgId:%d end commit msg failed, send offset:%s committed:%s, code:%s", + tmq->consumerId, pTopicName, pVg->vgId, offsetBuf, commitBuf, tstrerror(terrno)); + taosMemoryFree(pParamSet); + goto end; + } + + tscInfo("consumer:0x%" PRIx64 " topic:%s on vgId:%d send commit msg success, send offset:%s committed:%s", + tmq->consumerId, pTopicName, pVg->vgId, offsetBuf, commitBuf); + pVg->offsetInfo.committedOffset = *offsetVal; end: taosRUnLockLatch(&tmq->lock); From 5fa580960e8153238aac17d1e1fe94d1cf26033f Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Thu, 27 Jul 2023 13:53:42 +0800 Subject: [PATCH 11/83] fix:semaphore always wait in tmq commit logic --- include/util/taoserror.h | 1 + source/client/src/clientTmq.c | 9 ++++++++- source/util/src/terror.c | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/util/taoserror.h b/include/util/taoserror.h index f37402c18c..9c5c633358 100644 --- a/include/util/taoserror.h +++ b/include/util/taoserror.h @@ -780,6 +780,7 @@ int32_t* taosGetErrno(); #define TSDB_CODE_TMQ_INVALID_TOPIC TAOS_DEF_ERROR_CODE(0, 0x4009) #define TSDB_CODE_TMQ_NEED_INITIALIZED TAOS_DEF_ERROR_CODE(0, 0x4010) #define TSDB_CODE_TMQ_NO_COMMITTED TAOS_DEF_ERROR_CODE(0, 0x4011) +#define TSDB_CODE_TMQ_SAME_COMMITTED_VALUE TAOS_DEF_ERROR_CODE(0, 0x4012) // stream #define TSDB_CODE_STREAM_TASK_NOT_EXIST TAOS_DEF_ERROR_CODE(0, 0x4100) diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index aba127c36e..ae4651bd45 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -586,10 +586,14 @@ static int32_t asyncCommitOffset(tmq_t* tmq, char* pTopicName, int32_t vgId, STq if(code != 0){ goto end; } - if (offsetVal->type <= 0 || tOffsetEqual(offsetVal, &pVg->offsetInfo.committedOffset)) { + if (offsetVal->type <= 0) { code = TSDB_CODE_TMQ_INVALID_MSG; goto end; } + if (tOffsetEqual(offsetVal, &pVg->offsetInfo.committedOffset)){ + code = TSDB_CODE_TMQ_SAME_COMMITTED_VALUE; + goto end; + } char offsetBuf[TSDB_OFFSET_LEN] = {0}; tFormatOffset(offsetBuf, tListLen(offsetBuf), offsetVal); @@ -653,6 +657,7 @@ static void asyncCommitFromResult(tmq_t* tmq, const TAOS_RES* pRes, tmq_commit_c end: if(code != TSDB_CODE_SUCCESS && pCommitFp != NULL){ + if(code == TSDB_CODE_TMQ_SAME_COMMITTED_VALUE) code = TSDB_CODE_SUCCESS; pCommitFp(tmq, code, userParam); } } @@ -2412,6 +2417,7 @@ int32_t tmq_commit_offset_sync(tmq_t *tmq, const char *pTopicName, int32_t vgId, code = pInfo->code; } + if(code == TSDB_CODE_TMQ_SAME_COMMITTED_VALUE) code = TSDB_CODE_SUCCESS; tsem_destroy(&pInfo->sem); taosMemoryFree(pInfo); @@ -2456,6 +2462,7 @@ void tmq_commit_offset_async(tmq_t *tmq, const char *pTopicName, int32_t vgId, i end: if(code != 0 && cb != NULL){ + if(code == TSDB_CODE_TMQ_SAME_COMMITTED_VALUE) code = TSDB_CODE_SUCCESS; cb(tmq, code, param); } } diff --git a/source/util/src/terror.c b/source/util/src/terror.c index 83a50f7051..64d757144b 100644 --- a/source/util/src/terror.c +++ b/source/util/src/terror.c @@ -642,6 +642,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_TMQ_CONSUMER_CLOSED, "Consumer closed") TAOS_DEFINE_ERROR(TSDB_CODE_TMQ_CONSUMER_ERROR, "Consumer error, to see log") TAOS_DEFINE_ERROR(TSDB_CODE_TMQ_TOPIC_OUT_OF_RANGE, "Topic num out of range") TAOS_DEFINE_ERROR(TSDB_CODE_TMQ_GROUP_OUT_OF_RANGE, "Group num out of range 100") +TAOS_DEFINE_ERROR(TSDB_CODE_TMQ_SAME_COMMITTED_VALUE, "Same committed value") // stream TAOS_DEFINE_ERROR(TSDB_CODE_STREAM_TASK_NOT_EXIST, "Stream task not exist") From 9e5684479e6a15169d3d5b1c0dd5372760e62b54 Mon Sep 17 00:00:00 2001 From: kailixu Date: Thu, 27 Jul 2023 14:19:49 +0800 Subject: [PATCH 12/83] fix: taos print version --- tools/shell/src/shellUtil.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/shell/src/shellUtil.c b/tools/shell/src/shellUtil.c index e15b49efcc..93451c85a9 100644 --- a/tools/shell/src/shellUtil.c +++ b/tools/shell/src/shellUtil.c @@ -68,7 +68,7 @@ int32_t shellCheckIntSize() { return 0; } -void shellPrintVersion() { printf("version: %s\r\n", version); } +void shellPrintVersion() { printf("%s\r\n", shell.info.programVersion); } void shellGenerateAuth() { char secretEncrypt[TSDB_PASSWORD_LEN + 1] = {0}; From 75eacd56f18774468359fc2afe49fe2d45172f53 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Thu, 27 Jul 2023 15:58:32 +0800 Subject: [PATCH 13/83] fix:add log --- source/client/src/clientTmq.c | 6 +-- source/dnode/vnode/src/tq/tq.c | 59 +++++++++++++++++++----------- source/dnode/vnode/src/tq/tqPush.c | 6 +-- 3 files changed, 44 insertions(+), 27 deletions(-) diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index fa2e250b2b..d1ee39e3e6 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -1948,7 +1948,7 @@ static void* tmqHandleAllRsp(tmq_t* tmq, int64_t timeout, bool pollIfReset) { } taosWUnLockLatch(&tmq->lock); } else { - tscDebug("consumer:0x%" PRIx64 " vgId:%d msg discard since epoch mismatch: msg epoch %d, consumer epoch %d", + tscInfo("consumer:0x%" PRIx64 " vgId:%d msg discard since epoch mismatch: msg epoch %d, consumer epoch %d", tmq->consumerId, pollRspWrapper->vgId, pDataRsp->head.epoch, consumerEpoch); pRspWrapper = tmqFreeRspWrapper(pRspWrapper); taosFreeQitem(pollRspWrapper); @@ -1979,7 +1979,7 @@ static void* tmqHandleAllRsp(tmq_t* tmq, int64_t timeout, bool pollIfReset) { taosWUnLockLatch(&tmq->lock); return pRsp; } else { - tscDebug("consumer:0x%" PRIx64 " vgId:%d msg discard since epoch mismatch: msg epoch %d, consumer epoch %d", + tscInfo("consumer:0x%" PRIx64 " vgId:%d msg discard since epoch mismatch: msg epoch %d, consumer epoch %d", tmq->consumerId, pollRspWrapper->vgId, pollRspWrapper->metaRsp.head.epoch, consumerEpoch); pRspWrapper = tmqFreeRspWrapper(pRspWrapper); taosFreeQitem(pollRspWrapper); @@ -2034,7 +2034,7 @@ static void* tmqHandleAllRsp(tmq_t* tmq, int64_t timeout, bool pollIfReset) { } taosWUnLockLatch(&tmq->lock); } else { - tscDebug("consumer:0x%" PRIx64 " vgId:%d msg discard since epoch mismatch: msg epoch %d, consumer epoch %d", + tscInfo("consumer:0x%" PRIx64 " vgId:%d msg discard since epoch mismatch: msg epoch %d, consumer epoch %d", tmq->consumerId, pollRspWrapper->vgId, pollRspWrapper->taosxRsp.head.epoch, consumerEpoch); pRspWrapper = tmqFreeRspWrapper(pRspWrapper); taosFreeQitem(pollRspWrapper); diff --git a/source/dnode/vnode/src/tq/tq.c b/source/dnode/vnode/src/tq/tq.c index 89ed3ca1c7..22d594c168 100644 --- a/source/dnode/vnode/src/tq/tq.c +++ b/source/dnode/vnode/src/tq/tq.c @@ -148,6 +148,20 @@ void tqClose(STQ* pTq) { return; } + void* pIter = taosHashIterate(pTq->pPushMgr, NULL); + while (pIter) { + STqHandle* pHandle = *(STqHandle**)pIter; + int32_t vgId = TD_VID(pTq->pVnode); + + if(pHandle->msg != NULL) { + tqPushEmptyDataRsp(pHandle, vgId); + rpcFreeCont(pHandle->msg->pCont); + taosMemoryFree(pHandle->msg); + pHandle->msg = NULL; + } + pIter = taosHashIterate(pTq->pPushMgr, pIter); + } + tqOffsetClose(pTq->pOffsetStore); taosHashCleanup(pTq->pHandle); taosHashCleanup(pTq->pPushMgr); @@ -244,6 +258,10 @@ int32_t tqPushEmptyDataRsp(STqHandle* pHandle, int32_t vgId) { tqInitDataRsp(&dataRsp, &req); dataRsp.blockNum = 0; dataRsp.rspOffset = dataRsp.reqOffset; + char buf[TSDB_OFFSET_LEN] = {0}; + tFormatOffset(buf, TSDB_OFFSET_LEN, &dataRsp.reqOffset); + tqInfo("tqPushEmptyDataRsp to consumer:0x%"PRIx64 " vgId:%d, offset:%s, reqId:0x%" PRIx64, req.consumerId, vgId, buf, req.reqId); + tqSendDataRsp(pHandle, pHandle->msg, &req, &dataRsp, TMQ_MSG_TYPE__POLL_RSP, vgId); tDeleteMqDataRsp(&dataRsp); return 0; @@ -481,10 +499,11 @@ int32_t tqProcessPollPush(STQ* pTq, SRpcMsg* pMsg) { while (pIter) { STqHandle* pHandle = *(STqHandle**)pIter; - tqDebug("vgId:%d start set submit for pHandle:%p, consumer:0x%" PRIx64, vgId, pHandle, pHandle->consumerId); + tqInfo("vgId:%d start set submit for pHandle:%p, consumer:0x%" PRIx64, vgId, pHandle, pHandle->consumerId); if (ASSERT(pHandle->msg != NULL)) { tqError("pHandle->msg should not be null"); + taosHashCancelIterate(pTq->pPushMgr, pIter); break; }else{ SRpcMsg msg = {.msgType = TDMT_VND_TMQ_CONSUME, .pCont = pHandle->msg->pCont, .contLen = pHandle->msg->contLen, .info = pHandle->msg->info}; @@ -815,30 +834,28 @@ int32_t tqProcessSubscribeReq(STQ* pTq, int64_t sversion, char* msg, int32_t msg taosWLockLatch(&pTq->lock); if (pHandle->consumerId == req.newConsumerId) { // do nothing - tqInfo("vgId:%d consumer:0x%" PRIx64 " remains, no switch occurs, should not reach here", req.vgId, - req.newConsumerId); + tqInfo("vgId:%d no switch consumer:0x%" PRIx64 " remains, because redo wal log", req.vgId, req.newConsumerId); } else { - tqInfo("vgId:%d switch consumer from Id:0x%" PRIx64 " to Id:0x%" PRIx64, req.vgId, pHandle->consumerId, - req.newConsumerId); + tqInfo("vgId:%d switch consumer from Id:0x%" PRIx64 " to Id:0x%" PRIx64, req.vgId, pHandle->consumerId, req.newConsumerId); atomic_store_64(&pHandle->consumerId, req.newConsumerId); + // atomic_add_fetch_32(&pHandle->epoch, 1); + + // kill executing task + // if(tqIsHandleExec(pHandle)) { + // qTaskInfo_t pTaskInfo = pHandle->execHandle.task; + // if (pTaskInfo != NULL) { + // qKillTask(pTaskInfo, TSDB_CODE_SUCCESS); + // } + + // if (pHandle->execHandle.subType == TOPIC_SUB_TYPE__COLUMN) { + // qStreamCloseTsdbReader(pTaskInfo); + // } + // } + // remove if it has been register in the push manager, and return one empty block to consumer + tqUnregisterPushHandle(pTq, pHandle); + ret = tqMetaSaveHandle(pTq, req.subKey, pHandle); } - // atomic_add_fetch_32(&pHandle->epoch, 1); - - // kill executing task - // if(tqIsHandleExec(pHandle)) { - // qTaskInfo_t pTaskInfo = pHandle->execHandle.task; - // if (pTaskInfo != NULL) { - // qKillTask(pTaskInfo, TSDB_CODE_SUCCESS); - // } - - // if (pHandle->execHandle.subType == TOPIC_SUB_TYPE__COLUMN) { - // qStreamCloseTsdbReader(pTaskInfo); - // } - // } - // remove if it has been register in the push manager, and return one empty block to consumer - tqUnregisterPushHandle(pTq, pHandle); taosWUnLockLatch(&pTq->lock); - ret = tqMetaSaveHandle(pTq, req.subKey, pHandle); } end: diff --git a/source/dnode/vnode/src/tq/tqPush.c b/source/dnode/vnode/src/tq/tqPush.c index 06af53d453..fb00eee67d 100644 --- a/source/dnode/vnode/src/tq/tqPush.c +++ b/source/dnode/vnode/src/tq/tqPush.c @@ -75,12 +75,12 @@ int32_t tqRegisterPushHandle(STQ* pTq, void* handle, SRpcMsg* pMsg) { memcpy(pHandle->msg->pCont, pMsg->pCont, pMsg->contLen); pHandle->msg->contLen = pMsg->contLen; int32_t ret = taosHashPut(pTq->pPushMgr, pHandle->subKey, strlen(pHandle->subKey), &pHandle, POINTER_BYTES); - tqDebug("vgId:%d data is over, ret:%d, consumerId:0x%" PRIx64 ", register to pHandle:%p, pCont:%p, len:%d", vgId, ret, + tqInfo("vgId:%d data is over, ret:%d, consumerId:0x%" PRIx64 ", register to pHandle:%p, pCont:%p, len:%d", vgId, ret, pHandle->consumerId, pHandle, pHandle->msg->pCont, pHandle->msg->contLen); return 0; } -int32_t tqUnregisterPushHandle(STQ* pTq, void *handle) { +int tqUnregisterPushHandle(STQ* pTq, void *handle) { STqHandle *pHandle = (STqHandle*)handle; int32_t vgId = TD_VID(pTq->pVnode); @@ -88,7 +88,7 @@ int32_t tqUnregisterPushHandle(STQ* pTq, void *handle) { return 0; } int32_t ret = taosHashRemove(pTq->pPushMgr, pHandle->subKey, strlen(pHandle->subKey)); - tqDebug("vgId:%d remove pHandle:%p,ret:%d consumer Id:0x%" PRIx64, vgId, pHandle, ret, pHandle->consumerId); + tqInfo("vgId:%d remove pHandle:%p,ret:%d consumer Id:0x%" PRIx64, vgId, pHandle, ret, pHandle->consumerId); if(pHandle->msg != NULL) { // tqPushDataRsp(pHandle, vgId); From 2f6c56539242fba80f24ce896cbf9f7600fc9f61 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Fri, 28 Jul 2023 11:48:53 +0800 Subject: [PATCH 14/83] fix:pHandle not load if taosd restart --- source/dnode/mnode/impl/src/mndConsumer.c | 4 ++-- source/dnode/vnode/src/tq/tq.c | 16 ++++++++++++---- source/dnode/vnode/src/tq/tqMeta.c | 6 +++--- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/source/dnode/mnode/impl/src/mndConsumer.c b/source/dnode/mnode/impl/src/mndConsumer.c index 6081b9a530..f9673b67cd 100644 --- a/source/dnode/mnode/impl/src/mndConsumer.c +++ b/source/dnode/mnode/impl/src/mndConsumer.c @@ -94,7 +94,7 @@ void mndDropConsumerFromSdb(SMnode *pMnode, int64_t consumerId){ bool mndRebTryStart() { int32_t old = atomic_val_compare_exchange_32(&mqRebInExecCnt, 0, 1); - mInfo("tq timer, rebalance counter old val:%d", old); + mDebug("tq timer, rebalance counter old val:%d", old); return old == 0; } @@ -116,7 +116,7 @@ void mndRebCntDec() { int32_t newVal = val - 1; int32_t oldVal = atomic_val_compare_exchange_32(&mqRebInExecCnt, val, newVal); if (oldVal == val) { - mInfo("rebalance trans end, rebalance counter:%d", newVal); + mDebug("rebalance trans end, rebalance counter:%d", newVal); break; } } diff --git a/source/dnode/vnode/src/tq/tq.c b/source/dnode/vnode/src/tq/tq.c index 89ed3ca1c7..d543e2afbd 100644 --- a/source/dnode/vnode/src/tq/tq.c +++ b/source/dnode/vnode/src/tq/tq.c @@ -522,10 +522,18 @@ int32_t tqProcessPollReq(STQ* pTq, SRpcMsg* pMsg) { // 1. find handle pHandle = taosHashGet(pTq->pHandle, req.subKey, strlen(req.subKey)); if (pHandle == NULL) { - tqError("tmq poll: consumer:0x%" PRIx64 " vgId:%d subkey %s not found", consumerId, vgId, req.subKey); - terrno = TSDB_CODE_INVALID_MSG; - taosWUnLockLatch(&pTq->lock); - return -1; + do{ + if (tqMetaGetHandle(pTq, req.subKey) == 0){ + pHandle = taosHashGet(pTq->pHandle, req.subKey, strlen(req.subKey)); + if(pHandle != NULL){ + break; + } + } + tqError("tmq poll: consumer:0x%" PRIx64 " vgId:%d subkey %s not found", consumerId, vgId, req.subKey); + terrno = TSDB_CODE_INVALID_MSG; + taosWUnLockLatch(&pTq->lock); + return -1; + }while(0); } // 2. check re-balance status diff --git a/source/dnode/vnode/src/tq/tqMeta.c b/source/dnode/vnode/src/tq/tqMeta.c index df1c9ca7c9..08019f8a76 100644 --- a/source/dnode/vnode/src/tq/tqMeta.c +++ b/source/dnode/vnode/src/tq/tqMeta.c @@ -338,7 +338,7 @@ static int buildHandle(STQ* pTq, STqHandle* handle){ taosArrayDestroy(tbUidList); return -1; } - tqDebug("vgId:%d, tq try to get ctb for stb subscribe, suid:%" PRId64, pVnode->config.vgId, handle->execHandle.execTb.suid); + tqInfo("vgId:%d, tq try to get ctb for stb subscribe, suid:%" PRId64, pVnode->config.vgId, handle->execHandle.execTb.suid); handle->execHandle.pTqReader = tqReaderOpen(pVnode); tqReaderSetTbUidList(handle->execHandle.pTqReader, tbUidList, NULL); taosArrayDestroy(tbUidList); @@ -356,7 +356,7 @@ static int restoreHandle(STQ* pTq, void* pVal, int vLen, STqHandle* handle){ if(buildHandle(pTq, handle) < 0){ return -1; } - tqDebug("tq restore %s consumer %" PRId64 " vgId:%d", handle->subKey, handle->consumerId, vgId); + tqInfo("tq restore %s consumer %" PRId64 " vgId:%d", handle->subKey, handle->consumerId, vgId); return taosHashPut(pTq->pHandle, handle->subKey, strlen(handle->subKey), handle, sizeof(STqHandle)); } @@ -384,7 +384,7 @@ int32_t tqCreateHandle(STQ* pTq, SMqRebVgReq* req, STqHandle* handle){ if(buildHandle(pTq, handle) < 0){ return -1; } - tqDebug("tq restore %s consumer %" PRId64 " vgId:%d", handle->subKey, handle->consumerId, vgId); + tqInfo("tq restore %s consumer %" PRId64 " vgId:%d", handle->subKey, handle->consumerId, vgId); return taosHashPut(pTq->pHandle, handle->subKey, strlen(handle->subKey), handle, sizeof(STqHandle)); } From 6713882b48a4bd73388a0439bfb053be7eaae229 Mon Sep 17 00:00:00 2001 From: wangjiaming0909 <604227650@qq.com> Date: Fri, 28 Jul 2023 14:17:21 +0800 Subject: [PATCH 15/83] fix: window fill ts range check with int64 overflow --- source/libs/parser/inc/parUtil.h | 6 +++++ source/libs/parser/src/parTranslater.c | 32 ++++++++++++++------------ source/libs/parser/src/parUtil.c | 15 ++++++++++++ 3 files changed, 38 insertions(+), 15 deletions(-) diff --git a/source/libs/parser/inc/parUtil.h b/source/libs/parser/inc/parUtil.h index 1a4ee3e91a..d96bb9bba4 100644 --- a/source/libs/parser/inc/parUtil.h +++ b/source/libs/parser/inc/parUtil.h @@ -118,6 +118,12 @@ int32_t getDnodeListFromCache(SParseMetaCache* pMetaCache, SArray** pDnodes); void destoryParseMetaCache(SParseMetaCache* pMetaCache, bool request); SNode* createSelectStmtImpl(bool isDistinct, SNodeList* pProjectionList, SNode* pTable); +/** + * @brief return a - b with overflow check + * @retval val range between [INT64_MIN, INT64_MAX] + */ +int64_t int64SafeSub(int64_t a, int64_t b); + #ifdef __cplusplus } #endif diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 1427ada6da..73654825cb 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -3296,23 +3296,25 @@ static int32_t checkFill(STranslateContext* pCxt, SFillNode* pFill, SValueNode* if (NULL == pInterval) { return TSDB_CODE_SUCCESS; } - - int64_t timeRange = TABS(pFill->timeRange.skey - pFill->timeRange.ekey); + int64_t timeRange = 0; int64_t intervalRange = 0; - if (IS_CALENDAR_TIME_DURATION(pInterval->unit)) { - int64_t f = 1; - if (pInterval->unit == 'n') { - f = 30LL * MILLISECOND_PER_DAY; - } else if (pInterval->unit == 'y') { - f = 365LL * MILLISECOND_PER_DAY; + if (!pCxt->createStream) { + int64_t res = int64SafeSub(pFill->timeRange.skey, pFill->timeRange.ekey); + timeRange = res < 0 ? res == INT64_MIN ? INT64_MAX : -res : res; + if (IS_CALENDAR_TIME_DURATION(pInterval->unit)) { + int64_t f = 1; + if (pInterval->unit == 'n') { + f = 30LL * MILLISECOND_PER_DAY; + } else if (pInterval->unit == 'y') { + f = 365LL * MILLISECOND_PER_DAY; + } + intervalRange = pInterval->datum.i * f; + } else { + intervalRange = pInterval->datum.i; + } + if ((timeRange / intervalRange) >= MAX_INTERVAL_TIME_WINDOW) { + return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_FILL_TIME_RANGE); } - intervalRange = pInterval->datum.i * f; - } else { - intervalRange = pInterval->datum.i; - } - - if ((timeRange / intervalRange) >= MAX_INTERVAL_TIME_WINDOW) { - return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_FILL_TIME_RANGE); } return TSDB_CODE_SUCCESS; diff --git a/source/libs/parser/src/parUtil.c b/source/libs/parser/src/parUtil.c index 263318b92f..dbb1de70c3 100644 --- a/source/libs/parser/src/parUtil.c +++ b/source/libs/parser/src/parUtil.c @@ -1140,3 +1140,18 @@ void destoryParseMetaCache(SParseMetaCache* pMetaCache, bool request) { taosHashCleanup(pMetaCache->pTableIndex); taosHashCleanup(pMetaCache->pTableCfg); } + +int64_t int64SafeSub(int64_t a, int64_t b) { + int64_t res = (uint64_t)a - (uint64_t)b; + + if (a >= 0 && b < 0) { + if ((uint64_t)res > (uint64_t)INT64_MAX) { + // overflow + res = INT64_MAX; + } + } else if (a < 0 && b > 0 && res >= 0) { + // underflow + res = INT64_MIN; + } + return res; +} From f70709be3c0a382fbc5da225ff20265c08811a76 Mon Sep 17 00:00:00 2001 From: kailixu Date: Fri, 28 Jul 2023 14:54:03 +0800 Subject: [PATCH 16/83] fix: run sim cases on windows --- tests/script/sh/stop_dnodes.bat | 4 +++- utils/tsim/CMakeLists.txt | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/script/sh/stop_dnodes.bat b/tests/script/sh/stop_dnodes.bat index ab7af2ca92..65aee26ed4 100644 --- a/tests/script/sh/stop_dnodes.bat +++ b/tests/script/sh/stop_dnodes.bat @@ -3,4 +3,6 @@ rem echo taskkill /F /IM taosd.exe wmic process where "name='taosd.exe'" call terminate > NUL 2>&1 -taskkill /F /IM taosd.exe > NUL 2>&1 \ No newline at end of file +taskkill /F /IM taosd.exe > NUL 2>&1 + +rem echo taskkill /F /IM taosd.exe finished \ No newline at end of file diff --git a/utils/tsim/CMakeLists.txt b/utils/tsim/CMakeLists.txt index 81737809d9..c2cf7ac3c5 100644 --- a/utils/tsim/CMakeLists.txt +++ b/utils/tsim/CMakeLists.txt @@ -2,7 +2,7 @@ aux_source_directory(src TSIM_SRC) add_executable(tsim ${TSIM_SRC}) target_link_libraries( tsim - PUBLIC taos + PUBLIC taos_static PUBLIC util PUBLIC common PUBLIC os From ce7db7bf903aad7598ca914d478f9d705c5cc1d5 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Fri, 28 Jul 2023 15:07:15 +0800 Subject: [PATCH 17/83] fix:subscribe time & return -1 if wal not exist --- source/dnode/mnode/impl/src/mndConsumer.c | 2 +- source/libs/wal/src/walRead.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/dnode/mnode/impl/src/mndConsumer.c b/source/dnode/mnode/impl/src/mndConsumer.c index f9673b67cd..b2affacaa1 100644 --- a/source/dnode/mnode/impl/src/mndConsumer.c +++ b/source/dnode/mnode/impl/src/mndConsumer.c @@ -898,7 +898,7 @@ static int32_t mndConsumerActionInsert(SSdb *pSdb, SMqConsumerObj *pConsumer) { mInfo("consumer:0x%" PRIx64 " sub insert, cgroup:%s status:%d(%s) epoch:%d", pConsumer->consumerId, pConsumer->cgroup, pConsumer->status, mndConsumerStatusName(pConsumer->status), pConsumer->epoch); - pConsumer->subscribeTime = taosGetTimestampMs(); + pConsumer->subscribeTime = pConsumer->createTime; return 0; } diff --git a/source/libs/wal/src/walRead.c b/source/libs/wal/src/walRead.c index 7ff7fe748e..038fbe444b 100644 --- a/source/libs/wal/src/walRead.c +++ b/source/libs/wal/src/walRead.c @@ -371,9 +371,9 @@ int32_t walFetchHead(SWalReader *pRead, int64_t ver, SWalCkHead *pHead) { pRead->pWal->vers.appliedVer); // TODO: valid ver -// if (ver > pRead->pWal->vers.appliedVer) { -// return -1; -// } + if (ver > pRead->pWal->vers.commitVer) { + return -1; + } if (pRead->curVersion != ver) { code = walReaderSeekVer(pRead, ver); From 8999bb927fa9cdd7b0f110863e8fc2aa9fb48283 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Fri, 28 Jul 2023 15:20:45 +0800 Subject: [PATCH 18/83] docs: add unit in wal_retention_period description --- docs/en/12-taos-sql/22-meta.md | 2 +- docs/zh/12-taos-sql/22-meta.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/12-taos-sql/22-meta.md b/docs/en/12-taos-sql/22-meta.md index ae7b81864e..194c75b19c 100644 --- a/docs/en/12-taos-sql/22-meta.md +++ b/docs/en/12-taos-sql/22-meta.md @@ -98,7 +98,7 @@ Provides information about user-created databases. Similar to SHOW DATABASES. | 21 | cachesize | INT | Memory per vnode used for caching the newest data. It should be noted that `cachesize` is a TDengine keyword and needs to be escaped with ` when used as a column name. | | 22 | wal_level | INT | WAL level. It should be noted that `wal_level` is a TDengine keyword and needs to be escaped with ` when used as a column name. | | 23 | wal_fsync_period | INT | Interval at which WAL is written to disk. It should be noted that `wal_fsync_period` is a TDengine keyword and needs to be escaped with ` when used as a column name. | -| 24 | wal_retention_period | INT | WAL retention period. It should be noted that `wal_retention_period` is a TDengine keyword and needs to be escaped with ` when used as a column name. | +| 24 | wal_retention_period | INT | WAL retention period, in seconds. It should be noted that `wal_retention_period` is a TDengine keyword and needs to be escaped with ` when used as a column name. | | 25 | wal_retention_size | INT | Maximum WAL size. It should be noted that `wal_retention_size` is a TDengine keyword and needs to be escaped with ` when used as a column name. | | 26 | wal_roll_period | INT | WAL rotation period. It should be noted that `wal_roll_period` is a TDengine keyword and needs to be escaped with ` when used as a column name. | | 27 | wal_segment_size | BIGINT | WAL file size. It should be noted that `wal_segment_size` is a TDengine keyword and needs to be escaped with ` when used as a column name. | diff --git a/docs/zh/12-taos-sql/22-meta.md b/docs/zh/12-taos-sql/22-meta.md index 5df79204d0..62356b76d1 100644 --- a/docs/zh/12-taos-sql/22-meta.md +++ b/docs/zh/12-taos-sql/22-meta.md @@ -98,7 +98,7 @@ TDengine 内置了一个名为 `INFORMATION_SCHEMA` 的数据库,提供对数 | 21 | cachesize | INT | 表示每个 vnode 中用于缓存子表最近数据的内存大小。需要注意,`cachesize` 为 TDengine 关键字,作为列名使用时需要使用 ` 进行转义。 | | 22 | wal_level | INT | WAL 级别。需要注意,`wal_level` 为 TDengine 关键字,作为列名使用时需要使用 ` 进行转义。 | | 23 | wal_fsync_period | INT | 数据落盘周期。需要注意,`wal_fsync_period` 为 TDengine 关键字,作为列名使用时需要使用 ` 进行转义。 | -| 24 | wal_retention_period | INT | WAL 的保存时长。需要注意,`wal_retention_period` 为 TDengine 关键字,作为列名使用时需要使用 ` 进行转义。 | +| 24 | wal_retention_period | INT | WAL 的保存时长,单位为秒。需要注意,`wal_retention_period` 为 TDengine 关键字,作为列名使用时需要使用 ` 进行转义。 | | 25 | wal_retention_size | INT | WAL 的保存上限。需要注意,`wal_retention_size` 为 TDengine 关键字,作为列名使用时需要使用 ` 进行转义。 | | 26 | wal_roll_period | INT | wal 文件切换时长。需要注意,`wal_roll_period` 为 TDengine 关键字,作为列名使用时需要使用 ` 进行转义。 | | 27 | wal_segment_size | BIGINT | wal 单个文件大小。需要注意,`wal_segment_size` 为 TDengine 关键字,作为列名使用时需要使用 ` 进行转义。 | From d982a7cb8011d22222f8f1384ab20dca3dc2c1d0 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Fri, 28 Jul 2023 16:59:35 +0800 Subject: [PATCH 19/83] fix:heap use after free for wal --- source/dnode/vnode/src/vnd/vnodeOpen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/dnode/vnode/src/vnd/vnodeOpen.c b/source/dnode/vnode/src/vnd/vnodeOpen.c index 3b07ef9ea9..65fc552365 100644 --- a/source/dnode/vnode/src/vnd/vnodeOpen.c +++ b/source/dnode/vnode/src/vnd/vnodeOpen.c @@ -476,8 +476,8 @@ void vnodeClose(SVnode *pVnode) { tsem_wait(&pVnode->canCommit); vnodeSyncClose(pVnode); vnodeQueryClose(pVnode); - walClose(pVnode->pWal); tqClose(pVnode->pTq); + walClose(pVnode->pWal); if (pVnode->pTsdb) tsdbClose(&pVnode->pTsdb); smaClose(pVnode->pSma); if (pVnode->pMeta) metaClose(&pVnode->pMeta); From bf74f9e27252fd7f0d3c7f2a035caa7c6547dad5 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Fri, 28 Jul 2023 18:08:25 +0800 Subject: [PATCH 20/83] fix:[TD-24348] ci case error --- tests/parallel_test/cases.task | 2 +- .../7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/parallel_test/cases.task b/tests/parallel_test/cases.task index bb45ffdf72..0902d3d65d 100644 --- a/tests/parallel_test/cases.task +++ b/tests/parallel_test/cases.task @@ -105,7 +105,7 @@ ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmqConsFromTsdb-mutilVg-mutilCtb-funcNFilter.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmqConsFromTsdb-mutilVg-mutilCtb.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmqConsFromTsdb1-1ctb-funcNFilter.py -#,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py +,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmqAutoCreateTbl.py ,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/tmqDnodeRestart.py diff --git a/tests/system-test/7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py b/tests/system-test/7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py index 37946d0c22..a717c4966d 100644 --- a/tests/system-test/7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py +++ b/tests/system-test/7-tmq/tmqConsFromTsdb1-mutilVg-mutilCtb-funcNFilter.py @@ -222,9 +222,9 @@ class TDTestCase: actConsumeTotalRows = resultList[0] - if not (actConsumeTotalRows > 0 and actConsumeTotalRows < totalRowsInserted): + if not (actConsumeTotalRows >= 0 and actConsumeTotalRows <= totalRowsInserted): tdLog.info("act consume rows: %d"%(actConsumeTotalRows)) - tdLog.info("and second consume rows should be between 0 and %d"%(totalRowsInserted)) + tdLog.info("and second consume rows should be between [0 and %d]"%(totalRowsInserted)) tdLog.exit("%d tmq consume rows error!"%consumerId) time.sleep(10) From 09c806539f082a753ce88cb60d0a441116873dd6 Mon Sep 17 00:00:00 2001 From: liuyao <54liuyao@163.com> Date: Sun, 30 Jul 2023 17:21:42 +0800 Subject: [PATCH 21/83] fix double free --- source/libs/executor/src/timewindowoperator.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/source/libs/executor/src/timewindowoperator.c b/source/libs/executor/src/timewindowoperator.c index 93a84c6f04..34b1262f09 100644 --- a/source/libs/executor/src/timewindowoperator.c +++ b/source/libs/executor/src/timewindowoperator.c @@ -4406,15 +4406,13 @@ void streamStateReloadState(SOperatorInfo* pOperator) { getSessionHashKey(&curInfo.winInfo.sessionWin, &key); tSimpleHashPut(pAggSup->pResultRows, &key, sizeof(SSessionKey), &curInfo.winInfo, sizeof(SResultWindowInfo)); } + } else if (IS_VALID_SESSION_WIN(nextInfo.winInfo)) { + releaseOutputBuf(pAggSup->pState, NULL, (SResultRow*)nextInfo.winInfo.pOutputBuf, &pAggSup->pSessionAPI->stateStore); } if (IS_VALID_SESSION_WIN(curInfo.winInfo)) { saveSessionOutputBuf(pAggSup, &curInfo.winInfo); } - - if (IS_VALID_SESSION_WIN(nextInfo.winInfo)) { - releaseOutputBuf(pAggSup->pState, NULL, (SResultRow*)nextInfo.winInfo.pOutputBuf, &pAggSup->pSessionAPI->stateStore); - } } taosMemoryFree(pBuf); From 069103be749edd8cbed2a08523e32c3364093163 Mon Sep 17 00:00:00 2001 From: slzhou Date: Sun, 30 Jul 2023 21:17:30 +0800 Subject: [PATCH 22/83] fix: increase condition size --- include/util/tdef.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/util/tdef.h b/include/util/tdef.h index 3ee35b3b6b..82b3d92353 100644 --- a/include/util/tdef.h +++ b/include/util/tdef.h @@ -200,7 +200,7 @@ typedef enum ELogicConditionType { #define TSDB_STREAM_NAME_LEN 193 // it is a null-terminated string #define TSDB_DB_NAME_LEN 65 #define TSDB_DB_FNAME_LEN (TSDB_ACCT_ID_LEN + TSDB_DB_NAME_LEN + TSDB_NAME_DELIMITER_LEN) -#define TSDB_PRIVILEDGE_CONDITION_LEN 200 +#define TSDB_PRIVILEDGE_CONDITION_LEN 8*1024 #define TSDB_FUNC_NAME_LEN 65 #define TSDB_FUNC_COMMENT_LEN 1024 * 1024 From ff39aadb3483d8c647c22a421b431a2430c0ffc3 Mon Sep 17 00:00:00 2001 From: kailixu Date: Mon, 31 Jul 2023 08:42:17 +0800 Subject: [PATCH 23/83] fix: mac OS for community --- source/dnode/mgmt/node_mgmt/src/dmEnv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/dnode/mgmt/node_mgmt/src/dmEnv.c b/source/dnode/mgmt/node_mgmt/src/dmEnv.c index 848e123448..3f9c5bbeaf 100644 --- a/source/dnode/mgmt/node_mgmt/src/dmEnv.c +++ b/source/dnode/mgmt/node_mgmt/src/dmEnv.c @@ -42,7 +42,7 @@ static SDnode globalDnode = {0}; static const char *dmOS[10] = {"Ubuntu", "CentOS Linux", "Red Hat", "Debian GNU", "CoreOS", - "FreeBSD", "openSUSE", "SLES", "Fedora", "MacOS"}; + "FreeBSD", "openSUSE", "SLES", "Fedora", "macOS"}; SDnode *dmInstance() { return &globalDnode; } From 135beebc0a76977d2a0c399af4bb883ea9dd2837 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 31 Jul 2023 09:15:08 +0800 Subject: [PATCH 24/83] fix(tsdb/cache): check stt data with empty brin index --- source/dnode/vnode/src/tsdb/tsdbCache.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 32429ff8c6..a5b5dea505 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -1667,10 +1667,6 @@ static int32_t loadTombFromBlk(const TTombBlkArray *pTombBlkArray, SCacheRowsRea } if (record.version <= pReader->info.verRange.maxVer) { - /* - tsdbError("tomb xx load/cache: vgId:%d fid:%d commit %" PRId64 "~%" PRId64 "~%" PRId64 " tomb records", - TD_VID(pReader->pTsdb->pVnode), pReader->pCurFileSet->fid, record.skey, record.ekey, uid); - */ SDelData delData = {.version = record.version, .sKey = record.skey, .eKey = record.ekey}; taosArrayPush(pInfo->pTombData, &delData); } @@ -1912,15 +1908,14 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow, bool *pIgnoreEarlie int indexSize = TARRAY_SIZE(state->pIndexList); if (indexSize <= 0) { - clearLastFileSet(state); - state->state = SFSNEXTROW_FILESET; - goto _next_fileset; + goto _check_stt_data; } state->state = SFSNEXTROW_INDEXLIST; state->iBrinIndex = indexSize; } + _check_stt_data: if (state->pFileSet != state->pr->pCurFileSet) { state->pr->pCurFileSet = state->pFileSet; } From 6151b790d914db22a7e0466debfebf6199d863c0 Mon Sep 17 00:00:00 2001 From: slzhou Date: Mon, 31 Jul 2023 13:25:56 +0800 Subject: [PATCH 25/83] fix: increase the condition size of user privileges to 48k --- include/util/tdef.h | 2 +- source/dnode/mnode/impl/src/mndUser.c | 26 +++++++++++++++++--------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/include/util/tdef.h b/include/util/tdef.h index 82b3d92353..f16bb79937 100644 --- a/include/util/tdef.h +++ b/include/util/tdef.h @@ -200,7 +200,7 @@ typedef enum ELogicConditionType { #define TSDB_STREAM_NAME_LEN 193 // it is a null-terminated string #define TSDB_DB_NAME_LEN 65 #define TSDB_DB_FNAME_LEN (TSDB_ACCT_ID_LEN + TSDB_DB_NAME_LEN + TSDB_NAME_DELIMITER_LEN) -#define TSDB_PRIVILEDGE_CONDITION_LEN 8*1024 +#define TSDB_PRIVILEDGE_CONDITION_LEN 48*1024 #define TSDB_FUNC_NAME_LEN 65 #define TSDB_FUNC_COMMENT_LEN 1024 * 1024 diff --git a/source/dnode/mnode/impl/src/mndUser.c b/source/dnode/mnode/impl/src/mndUser.c index cbde56a860..07637586cc 100644 --- a/source/dnode/mnode/impl/src/mndUser.c +++ b/source/dnode/mnode/impl/src/mndUser.c @@ -1174,26 +1174,30 @@ static void mndLoopHash(SHashObj *hash, char *priType, SSDataBlock *pBlock, int3 if (strcmp("t", value) != 0) { SNode *pAst = NULL; int32_t sqlLen = 0; - char sql[TSDB_EXPLAIN_RESULT_ROW_SIZE] = {0}; + size_t bufSz = strlen(value) + 1; + char* sql = taosMemoryMalloc(bufSz + 1); + char* obj = taosMemoryMalloc(TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE); - if (nodesStringToNode(value, &pAst) == 0) { - nodesNodeToSQL(pAst, sql, TSDB_EXPLAIN_RESULT_ROW_SIZE, &sqlLen); + if (sql != NULL && obj != NULL && nodesStringToNode(value, &pAst) == 0) { + nodesNodeToSQL(pAst, sql, bufSz, &sqlLen); nodesDestroyNode(pAst); } else { sqlLen = 5; sprintf(sql, "error"); } - char obj[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0}; STR_WITH_MAXSIZE_TO_VARSTR(obj, sql, pShow->pMeta->pSchemas[cols].bytes); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, *numOfRows, (const char *)obj, false); + taosMemoryFree(obj); + taosMemoryFree(sql); } else { - char condition[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0}; + char* condition = taosMemoryMalloc(TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE); STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, *numOfRows, (const char *)condition, false); + taosMemoryFree(condition); } (*numOfRows)++; @@ -1242,10 +1246,11 @@ static int32_t mndRetrievePrivileges(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)tableName, false); - char condition[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0}; + char* condition = taosMemoryMalloc(TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE); STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)condition, false); + taosMemoryFree(condition); numOfRows++; } @@ -1276,10 +1281,11 @@ static int32_t mndRetrievePrivileges(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)tableName, false); - char condition[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0}; + char* condition = taosMemoryMalloc(TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE); STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)condition, false); + taosMemoryFree(condition); numOfRows++; db = taosHashIterate(pUser->readDbs, db); @@ -1311,10 +1317,11 @@ static int32_t mndRetrievePrivileges(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)tableName, false); - char condition[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0}; + char* condition = taosMemoryMalloc(TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE); STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)condition, false); + taosMemoryFree(condition); numOfRows++; db = taosHashIterate(pUser->writeDbs, db); @@ -1348,10 +1355,11 @@ static int32_t mndRetrievePrivileges(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)tableName, false); - char condition[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0}; + char* condition = taosMemoryMalloc(TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE); STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)condition, false); + taosMemoryFree(condition); numOfRows++; topic = taosHashIterate(pUser->topics, topic); From 196ae283aa2fa5afadbc9a1439718fb9bb23d9d6 Mon Sep 17 00:00:00 2001 From: wangjiaming0909 <604227650@qq.com> Date: Mon, 31 Jul 2023 14:03:07 +0800 Subject: [PATCH 26/83] force stt_trigger to be 1 --- include/util/tdef.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/include/util/tdef.h b/include/util/tdef.h index 3ee35b3b6b..26d2ef060c 100644 --- a/include/util/tdef.h +++ b/include/util/tdef.h @@ -369,8 +369,13 @@ typedef enum ELogicConditionType { #define TSDB_DB_SCHEMALESS_OFF 0 #define TSDB_DEFAULT_DB_SCHEMALESS TSDB_DB_SCHEMALESS_OFF #define TSDB_MIN_STT_TRIGGER 1 -#define TSDB_MAX_STT_TRIGGER 16 -#define TSDB_DEFAULT_SST_TRIGGER 2 +#ifdef TD_ENTERPRISE +#define TSDB_MAX_STT_TRIGGER 16 +#define TSDB_DEFAULT_SST_TRIGGER 2 +#else +#define TSDB_MAX_STT_TRIGGER 1 +#define TSDB_DEFAULT_SST_TRIGGER 1 +#endif #define TSDB_MIN_HASH_PREFIX (2 - TSDB_TABLE_NAME_LEN) #define TSDB_MAX_HASH_PREFIX (TSDB_TABLE_NAME_LEN - 2) #define TSDB_DEFAULT_HASH_PREFIX 0 From f359a0dca3d763245f72f5308a03c984144a3406 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 31 Jul 2023 14:22:46 +0800 Subject: [PATCH 27/83] fix(stream): set the correct end key of delete block. --- source/libs/executor/src/scanoperator.c | 47 ++++++++++++++++--------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 7434db61db..555ca938c0 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -1590,38 +1590,51 @@ static void doBlockDataWindowFilter(SSDataBlock* pBlock, int32_t tsIndex, STimeW } // re-build the delete block, ONLY according to the split timestamp -static void rebuildDeleteBlockData(SSDataBlock* pBlock, int64_t skey, const char* id) { - if (skey == INT64_MIN) { - return; - } - +static void rebuildDeleteBlockData(SSDataBlock* pBlock, STimeWindow* pWindow, const char* id) { int32_t numOfRows = pBlock->info.rows; - - bool* p = taosMemoryCalloc(numOfRows, sizeof(bool)); - bool hasUnqualified = false; + bool* p = taosMemoryCalloc(numOfRows, sizeof(bool)); + bool hasUnqualified = false; + int64_t skey = pWindow->skey; + int64_t ekey = pWindow->ekey; SColumnInfoData* pSrcStartCol = taosArrayGet(pBlock->pDataBlock, START_TS_COLUMN_INDEX); uint64_t* tsStartCol = (uint64_t*)pSrcStartCol->pData; SColumnInfoData* pSrcEndCol = taosArrayGet(pBlock->pDataBlock, END_TS_COLUMN_INDEX); uint64_t* tsEndCol = (uint64_t*)pSrcEndCol->pData; - for (int32_t i = 0; i < numOfRows; i++) { - if (tsStartCol[i] < skey) { - tsStartCol[i] = skey; - } + if (pWindow->skey != INT64_MIN) { + for (int32_t i = 0; i < numOfRows; i++) { + if (tsStartCol[i] < skey) { + tsStartCol[i] = skey; + } - if (tsEndCol[i] >= skey) { - p[i] = true; - } else { // this row should be removed, since it is not in this query time window, which is [skey, INT64_MAX] - hasUnqualified = true; + if (tsEndCol[i] >= skey) { + p[i] = true; + } else { // this row should be removed, since it is not in this query time window, which is [skey, INT64_MAX] + hasUnqualified = true; + } + } + } else if (pWindow->ekey != INT64_MAX) { + for(int32_t i = 0; i < numOfRows; ++i) { + if (tsEndCol[i] > ekey) { + tsEndCol[i] = ekey; + } + + if (tsStartCol[i] <= ekey) { + p[i] = true; + } else { + hasUnqualified = true; + } } } if (hasUnqualified) { trimDataBlock(pBlock, pBlock->info.rows, p); + qDebug("%s re-build delete datablock, start key revised to:%"PRId64", rows:%"PRId64, id, skey, pBlock->info.rows); + } else { + qDebug("%s not update the delete block", id); } - qDebug("%s re-build delete datablock, start key revised to:%"PRId64", rows:%"PRId64, id, skey, pBlock->info.rows); taosMemoryFree(p); } From fe21943c9c27024a98ee624a8f735abc02b1ed12 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 31 Jul 2023 14:23:46 +0800 Subject: [PATCH 28/83] fix(stream): set the correct end key of delete block. --- source/libs/executor/src/scanoperator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 555ca938c0..738809f588 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -2043,7 +2043,7 @@ FETCH_NEXT_BLOCK: } setBlockGroupIdByUid(pInfo, pDelBlock); - rebuildDeleteBlockData(pDelBlock, pStreamInfo->fillHistoryWindow.skey, id); + rebuildDeleteBlockData(pDelBlock, &pStreamInfo->fillHistoryWindow, id); printDataBlock(pDelBlock, "stream scan delete recv filtered"); if (pDelBlock->info.rows == 0) { if (pInfo->tqReader) { From 079d7ff69ec525c69be84f30c4295662843cb547 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Mon, 31 Jul 2023 15:21:47 +0800 Subject: [PATCH 29/83] fix(tsdb/read2): reset stt reader when suspended --- source/dnode/vnode/src/tsdb/tsdbRead2.c | 131 +++++++++++------------- 1 file changed, 62 insertions(+), 69 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbRead2.c b/source/dnode/vnode/src/tsdb/tsdbRead2.c index d5d8ba130c..e1756333c5 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead2.c @@ -1729,45 +1729,41 @@ static int32_t mergeFileBlockAndLastBlock(STsdbReader* pReader, SLastBlockReader // row in last file block TSDBROW fRow = tsdbRowFromBlockData(pBlockData, pDumpInfo->rowIndex); - int64_t tsLast = getCurrentKeyInLastBlock(pLastBlockReader); + int64_t ts = getCurrentKeyInLastBlock(pLastBlockReader); + if (ASCENDING_TRAVERSE(pReader->info.order)) { - if (key < tsLast) { + if (key < ts) { // imem, mem are all empty, file blocks (data blocks and last block) exist return mergeRowsInFileBlocks(pBlockData, pBlockScanInfo, key, pReader); - } else if (key > tsLast) { - return doMergeFileBlockAndLastBlock(pLastBlockReader, pReader, pBlockScanInfo, NULL, false); - } - } else { - if (key > tsLast) { - return mergeRowsInFileBlocks(pBlockData, pBlockScanInfo, key, pReader); - } else if (key < tsLast) { + } else if (key == ts) { + SRow* pTSRow = NULL; + int32_t code = tsdbRowMergerAdd(pMerger, &fRow, pReader->info.pSchema); + if (code != TSDB_CODE_SUCCESS) { + return code; + } + + doMergeRowsInFileBlocks(pBlockData, pBlockScanInfo, pReader); + + TSDBROW* pRow1 = tMergeTreeGetRow(&pLastBlockReader->mergeTree); + tsdbRowMergerAdd(pMerger, pRow1, NULL); + + doMergeRowsInLastBlock(pLastBlockReader, pBlockScanInfo, ts, pMerger, &pReader->info.verRange, pReader->idStr); + + code = tsdbRowMergerGetRow(pMerger, &pTSRow); + if (code != TSDB_CODE_SUCCESS) { + return code; + } + + code = doAppendRowFromTSRow(pReader->resBlockInfo.pResBlock, pReader, pTSRow, pBlockScanInfo); + + taosMemoryFree(pTSRow); + tsdbRowMergerClear(pMerger); + return code; + } else { // key > ts return doMergeFileBlockAndLastBlock(pLastBlockReader, pReader, pBlockScanInfo, NULL, false); } + } else { // desc order + return doMergeFileBlockAndLastBlock(pLastBlockReader, pReader, pBlockScanInfo, pBlockData, true); } - // the following for key == tsLast - SRow* pTSRow = NULL; - int32_t code = tsdbRowMergerAdd(pMerger, &fRow, pReader->info.pSchema); - if (code != TSDB_CODE_SUCCESS) { - return code; - } - - doMergeRowsInFileBlocks(pBlockData, pBlockScanInfo, pReader); - - TSDBROW* pRow1 = tMergeTreeGetRow(&pLastBlockReader->mergeTree); - tsdbRowMergerAdd(pMerger, pRow1, NULL); - - doMergeRowsInLastBlock(pLastBlockReader, pBlockScanInfo, tsLast, pMerger, &pReader->info.verRange, pReader->idStr); - - code = tsdbRowMergerGetRow(pMerger, &pTSRow); - if (code != TSDB_CODE_SUCCESS) { - return code; - } - - code = doAppendRowFromTSRow(pReader->resBlockInfo.pResBlock, pReader, pTSRow, pBlockScanInfo); - - taosMemoryFree(pTSRow); - tsdbRowMergerClear(pMerger); - return code; - } else { // only last block exists return doMergeFileBlockAndLastBlock(pLastBlockReader, pReader, pBlockScanInfo, NULL, false); } @@ -2194,8 +2190,7 @@ static int32_t buildComposedDataBlockImpl(STsdbReader* pReader, STableBlockScanI SFileBlockDumpInfo* pDumpInfo = &pReader->status.fBlockDumpInfo; TSDBROW *pRow = NULL, *piRow = NULL; - int64_t key = (pBlockData->nRow > 0 && (!pDumpInfo->allDumped)) ? pBlockData->aTSKEY[pDumpInfo->rowIndex] : - (ASCENDING_TRAVERSE(pReader->info.order) ? INT64_MAX : INT64_MIN); + int64_t key = (pBlockData->nRow > 0 && (!pDumpInfo->allDumped)) ? pBlockData->aTSKEY[pDumpInfo->rowIndex] : INT64_MIN; if (pBlockScanInfo->iter.hasVal) { pRow = getValidMemRow(&pBlockScanInfo->iter, pBlockScanInfo->delSkyline, pReader); } @@ -2569,18 +2564,9 @@ static int32_t doLoadLastBlockSequentially(STsdbReader* pReader) { // load the last data block of current table STableBlockScanInfo* pScanInfo = *(STableBlockScanInfo**)pStatus->pTableIter; - if (pScanInfo == NULL) { - tsdbError("table Iter is null, invalid pScanInfo, try next table %s", pReader->idStr); - bool hasNexTable = moveToNextTable(pUidList, pStatus); - if (!hasNexTable) { - return TSDB_CODE_SUCCESS; - } - - continue; - } - if (pReader->pIgnoreTables && taosHashGet(*pReader->pIgnoreTables, &pScanInfo->uid, sizeof(pScanInfo->uid))) { // reset the index in last block when handing a new file + // doCleanupTableScanInfo(pScanInfo); bool hasNexTable = moveToNextTable(pUidList, pStatus); if (!hasNexTable) { return TSDB_CODE_SUCCESS; @@ -2589,6 +2575,9 @@ static int32_t doLoadLastBlockSequentially(STsdbReader* pReader) { continue; } + // reset the index in last block when handing a new file + // doCleanupTableScanInfo(pScanInfo); + bool hasDataInLastFile = initLastBlockReader(pLastBlockReader, pScanInfo, pReader); if (!hasDataInLastFile) { bool hasNexTable = moveToNextTable(pUidList, pStatus); @@ -2678,32 +2667,16 @@ static int32_t doBuildDataBlock(STsdbReader* pReader) { (ASCENDING_TRAVERSE(pReader->info.order)) ? pBlockInfo->record.firstKey : pBlockInfo->record.lastKey; code = buildDataBlockFromBuf(pReader, pScanInfo, endKey); } else { - bool bHasDataInLastBlock = hasDataInLastBlock(pLastBlockReader); - int64_t tsLast = bHasDataInLastBlock ? getCurrentKeyInLastBlock(pLastBlockReader) : INT64_MIN; - if (!bHasDataInLastBlock || ((ASCENDING_TRAVERSE(pReader->info.order) && pBlockInfo->record.lastKey < tsLast) || - (!ASCENDING_TRAVERSE(pReader->info.order) && pBlockInfo->record.firstKey > tsLast))) { - // whole block is required, return it directly - SDataBlockInfo* pInfo = &pReader->resBlockInfo.pResBlock->info; - pInfo->rows = pBlockInfo->record.numRow; - pInfo->id.uid = pScanInfo->uid; - pInfo->dataLoad = 0; - pInfo->window = (STimeWindow){.skey = pBlockInfo->record.firstKey, .ekey = pBlockInfo->record.lastKey}; - setComposedBlockFlag(pReader, false); - setBlockAllDumped(&pStatus->fBlockDumpInfo, pBlockInfo->record.lastKey, pReader->info.order); + if (hasDataInLastBlock(pLastBlockReader) && !ASCENDING_TRAVERSE(pReader->info.order)) { + // only return the rows in last block + int64_t tsLast = getCurrentKeyInLastBlock(pLastBlockReader); + ASSERT(tsLast >= pBlockInfo->record.lastKey); - // update the last key for the corresponding table - pScanInfo->lastKey = ASCENDING_TRAVERSE(pReader->info.order) ? pInfo->window.ekey : pInfo->window.skey; - tsdbDebug("%p uid:%" PRIu64 - " clean file block retrieved from file, global index:%d, " - "table index:%d, rows:%d, brange:%" PRId64 "-%" PRId64 ", %s", - pReader, pScanInfo->uid, pBlockIter->index, pBlockInfo->tbBlockIdx, pBlockInfo->record.numRow, - pBlockInfo->record.firstKey, pBlockInfo->record.lastKey, pReader->idStr); - } else { SBlockData* pBData = &pReader->status.fileBlockData; tBlockDataReset(pBData); SSDataBlock* pResBlock = pReader->resBlockInfo.pResBlock; - tsdbDebug("load data in last block firstly %s", pReader->idStr); + tsdbDebug("load data in last block firstly, due to desc scan data, %s", pReader->idStr); int64_t st = taosGetTimestampUs(); @@ -2734,8 +2707,23 @@ static int32_t doBuildDataBlock(STsdbReader* pReader) { pReader, pResBlock->info.id.uid, pResBlock->info.window.skey, pResBlock->info.window.ekey, pResBlock->info.rows, el, pReader->idStr); } - } + } else { // whole block is required, return it directly + SDataBlockInfo* pInfo = &pReader->resBlockInfo.pResBlock->info; + pInfo->rows = pBlockInfo->record.numRow; + pInfo->id.uid = pScanInfo->uid; + pInfo->dataLoad = 0; + pInfo->window = (STimeWindow){.skey = pBlockInfo->record.firstKey, .ekey = pBlockInfo->record.lastKey}; + setComposedBlockFlag(pReader, false); + setBlockAllDumped(&pStatus->fBlockDumpInfo, pBlockInfo->record.lastKey, pReader->info.order); + // update the last key for the corresponding table + pScanInfo->lastKey = ASCENDING_TRAVERSE(pReader->info.order) ? pInfo->window.ekey : pInfo->window.skey; + tsdbDebug("%p uid:%" PRIu64 + " clean file block retrieved from file, global index:%d, " + "table index:%d, rows:%d, brange:%" PRId64 "-%" PRId64 ", %s", + pReader, pScanInfo->uid, pBlockIter->index, pBlockInfo->tbBlockIdx, pBlockInfo->record.numRow, + pBlockInfo->record.firstKey, pBlockInfo->record.lastKey, pReader->idStr); + } } return (pReader->code != TSDB_CODE_SUCCESS) ? pReader->code : code; @@ -4109,6 +4097,11 @@ int32_t tsdbReaderSuspend2(STsdbReader* pReader) { tsdbDataFileReaderClose(&pReader->pFileReader); + int64_t loadBlocks = 0; + double elapse = 0; + pReader->status.pLDataIterArray = destroySttBlockReader(pReader->status.pLDataIterArray, &loadBlocks, &elapse); + pReader->status.pLDataIterArray = taosArrayInit(4, POINTER_BYTES); + // resetDataBlockScanInfo excluding lastKey STableBlockScanInfo** p = NULL; int32_t iter = 0; @@ -4179,7 +4172,7 @@ int32_t tsdbReaderSuspend2(STsdbReader* pReader) { } } - tsdbUntakeReadSnap(pReader, pReader->pReadSnap, false); + tsdbUntakeReadSnap2(pReader, pReader->pReadSnap, false); pReader->pReadSnap = NULL; pReader->flag = READER_STATUS_SUSPEND; From 9981cecbed4b02f0e64d34d8c42efaf657740d95 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 31 Jul 2023 15:24:35 +0800 Subject: [PATCH 30/83] refactor: do some internal refactor. --- include/libs/executor/executor.h | 6 +- include/libs/stream/tstream.h | 2 - source/dnode/vnode/src/tq/tq.c | 2 +- source/libs/executor/inc/querytask.h | 4 +- source/libs/executor/src/executor.c | 37 ++----- source/libs/stream/src/streamExec.c | 132 +++++++------------------ source/libs/stream/src/streamRecover.c | 12 +-- 7 files changed, 46 insertions(+), 149 deletions(-) diff --git a/include/libs/executor/executor.h b/include/libs/executor/executor.h index 3bef15f3a7..f90c38f341 100644 --- a/include/libs/executor/executor.h +++ b/include/libs/executor/executor.h @@ -221,13 +221,9 @@ int32_t qStreamSourceScanParamForHistoryScanStep2(qTaskInfo_t tinfo, SVersionRan int32_t qStreamRecoverFinish(qTaskInfo_t tinfo); int32_t qRestoreStreamOperatorOption(qTaskInfo_t tinfo); bool qStreamRecoverScanFinished(qTaskInfo_t tinfo); -bool qStreamRecoverScanStep1Finished(qTaskInfo_t tinfo); -bool qStreamRecoverScanStep2Finished(qTaskInfo_t tinfo); -int32_t qStreamRecoverSetAllStepFinished(qTaskInfo_t tinfo); +int32_t qStreamInfoResetTimewindowFilter(qTaskInfo_t tinfo); void resetTaskInfo(qTaskInfo_t tinfo); -void qResetStreamInfoTimeWindow(qTaskInfo_t tinfo); - int32_t qStreamOperatorReleaseState(qTaskInfo_t tInfo); int32_t qStreamOperatorReloadState(qTaskInfo_t tInfo); diff --git a/include/libs/stream/tstream.h b/include/libs/stream/tstream.h index 066f83fbcb..9d3a42f502 100644 --- a/include/libs/stream/tstream.h +++ b/include/libs/stream/tstream.h @@ -607,8 +607,6 @@ int32_t streamTaskScanHistoryDataComplete(SStreamTask* pTask); int32_t streamStartRecoverTask(SStreamTask* pTask, int8_t igUntreated); bool streamHistoryTaskSetVerRangeStep2(SStreamTask* pTask, int64_t latestVer); -bool streamTaskRecoverScanStep1Finished(SStreamTask* pTask); -bool streamTaskRecoverScanStep2Finished(SStreamTask* pTask); int32_t streamTaskRecoverSetAllStepFinished(SStreamTask* pTask); // common diff --git a/source/dnode/vnode/src/tq/tq.c b/source/dnode/vnode/src/tq/tq.c index db9ef7805f..bd4a35d39c 100644 --- a/source/dnode/vnode/src/tq/tq.c +++ b/source/dnode/vnode/src/tq/tq.c @@ -1296,7 +1296,7 @@ int32_t tqProcessTaskScanHistory(STQ* pTq, SRpcMsg* pMsg) { "s-task:%s scan-history in stream time window completed, no related fill-history task, reset the time " "window:%" PRId64 " - %" PRId64, id, pWindow->skey, pWindow->ekey); - qResetStreamInfoTimeWindow(pTask->exec.pExecutor); + qStreamInfoResetTimewindowFilter(pTask->exec.pExecutor); } else { // when related fill-history task exists, update the fill-history time window only when the // state transfer is completed. diff --git a/source/libs/executor/inc/querytask.h b/source/libs/executor/inc/querytask.h index cdf37bcc6b..7241b015a0 100644 --- a/source/libs/executor/inc/querytask.h +++ b/source/libs/executor/inc/querytask.h @@ -62,8 +62,8 @@ typedef struct { SSchemaWrapper* schema; char tbName[TSDB_TABLE_NAME_LEN]; // this is the current scan table: todo refactor int8_t recoverStep; - bool recoverStep1Finished; - bool recoverStep2Finished; +// bool recoverStep1Finished; +// bool recoverStep2Finished; int8_t recoverScanFinished; SQueryTableDataCond tableCond; SVersionRange fillHistoryVer; diff --git a/source/libs/executor/src/executor.c b/source/libs/executor/src/executor.c index 5a99c1ea9a..e4ddf9ca6c 100644 --- a/source/libs/executor/src/executor.c +++ b/source/libs/executor/src/executor.c @@ -116,17 +116,6 @@ void resetTaskInfo(qTaskInfo_t tinfo) { clearStreamBlock(pTaskInfo->pRoot); } -void qResetStreamInfoTimeWindow(qTaskInfo_t tinfo) { - SExecTaskInfo* pTaskInfo = (SExecTaskInfo*) tinfo; - if (pTaskInfo == NULL) { - return; - } - - qDebug("%s set stream fill-history window:%" PRId64"-%"PRId64, GET_TASKID(pTaskInfo), INT64_MIN, INT64_MAX); - pTaskInfo->streamInfo.fillHistoryWindow.skey = INT64_MIN; - pTaskInfo->streamInfo.fillHistoryWindow.ekey = INT64_MAX; -} - static int32_t doSetStreamBlock(SOperatorInfo* pOperator, void* input, size_t numOfBlocks, int32_t type, const char* id) { if (pOperator->operatorType != QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN) { if (pOperator->numOfDownstream == 0) { @@ -341,7 +330,7 @@ qTaskInfo_t qCreateStreamExecTaskInfo(void* msg, SReadHandle* readers, int32_t v return NULL; } - qResetStreamInfoTimeWindow(pTaskInfo); + qStreamInfoResetTimewindowFilter(pTaskInfo); return pTaskInfo; } @@ -891,8 +880,6 @@ int32_t qStreamSourceScanParamForHistoryScanStep1(qTaskInfo_t tinfo, SVersionRan pStreamInfo->fillHistoryVer = *pVerRange; pStreamInfo->fillHistoryWindow = *pWindow; pStreamInfo->recoverStep = STREAM_RECOVER_STEP__PREPARE1; - pStreamInfo->recoverStep1Finished = false; - pStreamInfo->recoverStep2Finished = false; qDebug("%s step 1. set param for stream scanner for scan-history data, verRange:%" PRId64 " - %" PRId64 ", window:%" PRId64 " - %" PRId64, @@ -910,8 +897,6 @@ int32_t qStreamSourceScanParamForHistoryScanStep2(qTaskInfo_t tinfo, SVersionRan pStreamInfo->fillHistoryVer = *pVerRange; pStreamInfo->fillHistoryWindow = *pWindow; pStreamInfo->recoverStep = STREAM_RECOVER_STEP__PREPARE2; - pStreamInfo->recoverStep1Finished = true; - pStreamInfo->recoverStep2Finished = false; qDebug("%s step 2. set param for stream scanner for scan-history data, verRange:%" PRId64 " - %" PRId64 ", window:%" PRId64 " - %" PRId64, @@ -1050,23 +1035,15 @@ bool qStreamRecoverScanFinished(qTaskInfo_t tinfo) { return pTaskInfo->streamInfo.recoverScanFinished; } -bool qStreamRecoverScanStep1Finished(qTaskInfo_t tinfo) { +int32_t qStreamInfoResetTimewindowFilter(qTaskInfo_t tinfo) { SExecTaskInfo* pTaskInfo = (SExecTaskInfo*)tinfo; - return pTaskInfo->streamInfo.recoverStep1Finished; -} + STimeWindow* pWindow = &pTaskInfo->streamInfo.fillHistoryWindow; -bool qStreamRecoverScanStep2Finished(qTaskInfo_t tinfo) { - SExecTaskInfo* pTaskInfo = (SExecTaskInfo*)tinfo; - return pTaskInfo->streamInfo.recoverStep2Finished; -} + qDebug("%s set remove scan-history filter window:%" PRId64 "-%" PRId64 ", new window:%" PRId64 "-%" PRId64, + GET_TASKID(pTaskInfo), pWindow->skey, pWindow->ekey, INT64_MIN, INT64_MAX); -int32_t qStreamRecoverSetAllStepFinished(qTaskInfo_t tinfo) { - SExecTaskInfo* pTaskInfo = (SExecTaskInfo*)tinfo; - pTaskInfo->streamInfo.recoverStep1Finished = true; - pTaskInfo->streamInfo.recoverStep2Finished = true; - - // reset the time window - pTaskInfo->streamInfo.fillHistoryWindow.skey = INT64_MIN; + pWindow->skey = INT64_MIN; + pWindow->ekey = INT64_MAX; return 0; } diff --git a/source/libs/stream/src/streamExec.c b/source/libs/stream/src/streamExec.c index 4ef7d6084d..763a2fdcc6 100644 --- a/source/libs/stream/src/streamExec.c +++ b/source/libs/stream/src/streamExec.c @@ -163,15 +163,14 @@ static int32_t streamTaskExecImpl(SStreamTask* pTask, SStreamQueueItem* pItem, i } int32_t streamScanExec(SStreamTask* pTask, int32_t batchSz) { - int32_t code = 0; - ASSERT(pTask->info.taskLevel == TASK_LEVEL__SOURCE); - void* exec = pTask->exec.pExecutor; + int32_t code = TSDB_CODE_SUCCESS; + void* exec = pTask->exec.pExecutor; + bool finished = false; qSetStreamOpOpen(exec); - bool finished = false; - while (1) { + while (!finished) { if (streamTaskShouldPause(&pTask->status)) { double el = (taosGetTimestampMs() - pTask->tsInfo.step1Start) / 1000.0; qDebug("s-task:%s paused from the scan-history task, elapsed time:%.2fsec", pTask->id.idStr, el); @@ -184,44 +183,30 @@ int32_t streamScanExec(SStreamTask* pTask, int32_t batchSz) { return -1; } - int32_t batchCnt = 0; + int32_t numOfBlocks = 0; while (1) { if (streamTaskShouldStop(&pTask->status)) { taosArrayDestroyEx(pRes, (FDelete)blockDataFreeRes); return 0; } + if (streamTaskShouldPause(&pTask->status)) { + break; + } + SSDataBlock* output = NULL; uint64_t ts = 0; if (qExecTask(exec, &output, &ts) < 0) { continue; } - if (output == NULL) { - if (qStreamRecoverScanFinished(exec)) { - finished = true; - } else { - qSetStreamOpOpen(exec); - if (streamTaskShouldPause(&pTask->status)) { - SStreamDataBlock* qRes = taosAllocateQitem(sizeof(SStreamDataBlock), DEF_QITEM, 0); - if (qRes == NULL) { - taosArrayDestroyEx(pRes, (FDelete)blockDataFreeRes); - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; - } - - qRes->type = STREAM_INPUT__DATA_BLOCK; - qRes->blocks = pRes; - code = streamTaskOutputResultBlock(pTask, qRes); - if (code == TSDB_CODE_UTIL_QUEUE_OUT_OF_MEMORY) { - taosArrayDestroyEx(pRes, (FDelete)blockDataFreeRes); - taosFreeQitem(qRes); - return code; - } - return 0; - } - } + if (output == NULL && qStreamRecoverScanFinished(exec)) { + finished = true; break; + } else { + if (output == NULL) { + ASSERT(0); + } } SSDataBlock block = {0}; @@ -229,86 +214,37 @@ int32_t streamScanExec(SStreamTask* pTask, int32_t batchSz) { block.info.childId = pTask->info.selfChildId; taosArrayPush(pRes, &block); - batchCnt++; - - qDebug("s-task:%s scan exec numOfBlocks:%d, limit:%d", pTask->id.idStr, batchCnt, batchSz); - if (batchCnt >= batchSz) { + numOfBlocks++; + qDebug("s-task:%s scan exec numOfBlocks:%d, limit:%d", pTask->id.idStr, numOfBlocks, batchSz); + if (numOfBlocks >= batchSz) { break; } } - if (taosArrayGetSize(pRes) == 0) { - taosArrayDestroy(pRes); - - if (finished) { - qDebug("s-task:%s finish recover exec task ", pTask->id.idStr); - break; - } else { - qDebug("s-task:%s continue recover exec task ", pTask->id.idStr); - continue; + if (taosArrayGetSize(pRes) > 0) { + SStreamDataBlock* qRes = taosAllocateQitem(sizeof(SStreamDataBlock), DEF_QITEM, 0); + if (qRes == NULL) { + taosArrayDestroyEx(pRes, (FDelete)blockDataFreeRes); + terrno = TSDB_CODE_OUT_OF_MEMORY; + return -1; } - } - SStreamDataBlock* qRes = taosAllocateQitem(sizeof(SStreamDataBlock), DEF_QITEM, 0); - if (qRes == NULL) { - taosArrayDestroyEx(pRes, (FDelete)blockDataFreeRes); - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; - } + qRes->type = STREAM_INPUT__DATA_BLOCK; + qRes->blocks = pRes; - qRes->type = STREAM_INPUT__DATA_BLOCK; - qRes->blocks = pRes; - code = streamTaskOutputResultBlock(pTask, qRes); - if (code == TSDB_CODE_UTIL_QUEUE_OUT_OF_MEMORY) { - taosArrayDestroyEx(pRes, (FDelete)blockDataFreeRes); - taosFreeQitem(qRes); - return code; - } - - if (finished) { - break; - } - } - return 0; -} - -#if 0 -int32_t streamBatchExec(SStreamTask* pTask, int32_t batchLimit) { - // fetch all queue item, merge according to batchLimit - int32_t numOfItems = taosReadAllQitems(pTask->inputQueue1, pTask->inputQall); - if (numOfItems == 0) { - qDebug("task: %d, stream task exec over, queue empty", pTask->id.taskId); - return 0; - } - SStreamQueueItem* pMerged = NULL; - SStreamQueueItem* pItem = NULL; - taosGetQitem(pTask->inputQall, (void**)&pItem); - if (pItem == NULL) { - if (pMerged != NULL) { - // process merged item + code = streamTaskOutputResultBlock(pTask, qRes); + if (code == TSDB_CODE_UTIL_QUEUE_OUT_OF_MEMORY) { + taosArrayDestroyEx(pRes, (FDelete)blockDataFreeRes); + taosFreeQitem(qRes); + return code; + } } else { - return 0; + taosArrayDestroy(pRes); } } - // if drop - if (pItem->type == STREAM_INPUT__DESTROY) { - // set status drop - return -1; - } - - if (pTask->info.taskLevel == TASK_LEVEL__SINK) { - ASSERT(((SStreamQueueItem*)pItem)->type == STREAM_INPUT__DATA_BLOCK); - streamTaskOutputResultBlock(pTask, (SStreamDataBlock*)pItem); - } - - // exec impl - - // output - // try dispatch return 0; } -#endif int32_t updateCheckPointInfo(SStreamTask* pTask) { int64_t ckId = 0; @@ -404,7 +340,7 @@ static int32_t streamTransferStateToStreamTask(SStreamTask* pTask) { // expand the query time window for stream scanner pTimeWindow->skey = INT64_MIN; - qResetStreamInfoTimeWindow(pStreamTask->exec.pExecutor); + qStreamInfoResetTimewindowFilter(pStreamTask->exec.pExecutor); // transfer the ownership of executor state streamTaskReleaseState(pTask); diff --git a/source/libs/stream/src/streamRecover.c b/source/libs/stream/src/streamRecover.c index df45ff2759..4fa6150412 100644 --- a/source/libs/stream/src/streamRecover.c +++ b/source/libs/stream/src/streamRecover.c @@ -647,19 +647,9 @@ int32_t streamTaskScanHistoryDataComplete(SStreamTask* pTask) { return 0; } -bool streamTaskRecoverScanStep1Finished(SStreamTask* pTask) { - void* exec = pTask->exec.pExecutor; - return qStreamRecoverScanStep1Finished(exec); -} - -bool streamTaskRecoverScanStep2Finished(SStreamTask* pTask) { - void* exec = pTask->exec.pExecutor; - return qStreamRecoverScanStep2Finished(exec); -} - int32_t streamTaskRecoverSetAllStepFinished(SStreamTask* pTask) { void* exec = pTask->exec.pExecutor; - return qStreamRecoverSetAllStepFinished(exec); + return qStreamInfoResetTimewindowFilter(exec); } bool streamHistoryTaskSetVerRangeStep2(SStreamTask* pTask, int64_t latestVer) { From 7619bbcf22ae75fc634a07bd1a9da3622869f786 Mon Sep 17 00:00:00 2001 From: "chao.feng" Date: Mon, 31 Jul 2023 16:58:19 +0800 Subject: [PATCH 31/83] Update the doc content of taos-sql/22-meta.md to add ins_user_privilege by charles --- docs/en/12-taos-sql/22-meta.md | 10 ++++++++++ docs/zh/12-taos-sql/22-meta.md | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/docs/en/12-taos-sql/22-meta.md b/docs/en/12-taos-sql/22-meta.md index 2d7c517dca..37304633e7 100644 --- a/docs/en/12-taos-sql/22-meta.md +++ b/docs/en/12-taos-sql/22-meta.md @@ -297,3 +297,13 @@ Provides dnode configuration information. | 7 | target_table | BINARY(192) | Target table | | 8 | watermark | BIGINT | Watermark (see stream processing documentation). It should be noted that `watermark` is a TDengine keyword and needs to be escaped with ` when used as a column name. | | 9 | trigger | INT | Method of triggering the result push (see stream processing documentation). It should be noted that `trigger` is a TDengine keyword and needs to be escaped with ` when used as a column name. | + +## INS_USER_PRIVILEGES + +| # | **Column** | **Data Type** | **Description** |** | +| --- | :----------: | ------------ | -------------------------------------------| +| 1 | user_name | VARCHAR(24) | Username | +| 2 | privilege | VARCHAR(10) | Privilege description | +| 3 | db_name | VARCHAR(65) | Database name | +| 4 | table_name | VARCHAR(193) | Table name | +| 5 | condition | VARCHAR(49152) | The privilege filter for child tables | diff --git a/docs/zh/12-taos-sql/22-meta.md b/docs/zh/12-taos-sql/22-meta.md index a5396d8607..35794ec269 100644 --- a/docs/zh/12-taos-sql/22-meta.md +++ b/docs/zh/12-taos-sql/22-meta.md @@ -298,3 +298,13 @@ TDengine 内置了一个名为 `INFORMATION_SCHEMA` 的数据库,提供对数 | 7 | target_table | BINARY(192) | 流计算写入的目标表 | | 8 | watermark | BIGINT | watermark,详见 SQL 手册流式计算。需要注意,`watermark` 为 TDengine 关键字,作为列名使用时需要使用 ` 进行转义。 | | 9 | trigger | INT | 计算结果推送模式,详见 SQL 手册流式计算。需要注意,`trigger` 为 TDengine 关键字,作为列名使用时需要使用 ` 进行转义。 | + +## INS_USER_PRIVILEGES + +| # | **列名** | **数据类型** | **说明** | +| --- | :----------: | ------------ | -------------------------------------------------------------------------------------------------------------------- | +| 1 | user_name | VARCHAR(24) | 用户名 +| 2 | privilege | VARCHAR(10) | 权限描述 +| 3 | db_name | VARCHAR(65) | 数据库名称 +| 4 | table_name | VARCHAR(193) | 表名称 +| 5 | condition | VARCHAR(49152) | 子表权限过滤条件 From 32b59af4b18a19ae749042f55d4be91c9769c6d7 Mon Sep 17 00:00:00 2001 From: liuyao <54liuyao@163.com> Date: Mon, 31 Jul 2023 17:04:41 +0800 Subject: [PATCH 32/83] check update data --- include/libs/executor/storageapi.h | 2 ++ include/libs/stream/tstreamUpdate.h | 2 ++ source/dnode/snode/src/snodeInitApi.c | 2 ++ source/dnode/vnode/src/vnd/vnodeInitApi.c | 2 ++ source/libs/executor/src/scanoperator.c | 4 +++- source/libs/stream/src/streamUpdate.c | 4 ++-- 6 files changed, 13 insertions(+), 3 deletions(-) diff --git a/include/libs/executor/storageapi.h b/include/libs/executor/storageapi.h index 2fbd7851e8..773f373a2d 100644 --- a/include/libs/executor/storageapi.h +++ b/include/libs/executor/storageapi.h @@ -368,6 +368,8 @@ typedef struct SStateStore { bool (*updateInfoIsUpdated)(SUpdateInfo* pInfo, uint64_t tableId, TSKEY ts); bool (*updateInfoIsTableInserted)(SUpdateInfo* pInfo, int64_t tbUid); void (*updateInfoDestroy)(SUpdateInfo* pInfo); + void (*windowSBfDelete)(SUpdateInfo *pInfo, uint64_t count); + void (*windowSBfAdd)(SUpdateInfo *pInfo, uint64_t count); SUpdateInfo* (*updateInfoInitP)(SInterval* pInterval, int64_t watermark); void (*updateInfoAddCloseWindowSBF)(SUpdateInfo* pInfo); diff --git a/include/libs/stream/tstreamUpdate.h b/include/libs/stream/tstreamUpdate.h index bd5a3be8de..7bb1d027c9 100644 --- a/include/libs/stream/tstreamUpdate.h +++ b/include/libs/stream/tstreamUpdate.h @@ -53,6 +53,8 @@ void updateInfoAddCloseWindowSBF(SUpdateInfo *pInfo); void updateInfoDestoryColseWinSBF(SUpdateInfo *pInfo); int32_t updateInfoSerialize(void *buf, int32_t bufLen, const SUpdateInfo *pInfo); int32_t updateInfoDeserialize(void *buf, int32_t bufLen, SUpdateInfo *pInfo); +void windowSBfDelete(SUpdateInfo *pInfo, uint64_t count); +void windowSBfAdd(SUpdateInfo *pInfo, uint64_t count); #ifdef __cplusplus } diff --git a/source/dnode/snode/src/snodeInitApi.c b/source/dnode/snode/src/snodeInitApi.c index c046505630..e737e3fa37 100644 --- a/source/dnode/snode/src/snodeInitApi.c +++ b/source/dnode/snode/src/snodeInitApi.c @@ -78,6 +78,8 @@ void initStateStoreAPI(SStateStore* pStore) { pStore->updateInfoIsUpdated = updateInfoIsUpdated; pStore->updateInfoIsTableInserted = updateInfoIsTableInserted; pStore->updateInfoDestroy = updateInfoDestroy; + pStore->windowSBfDelete = windowSBfDelete; + pStore->windowSBfAdd = windowSBfAdd; pStore->updateInfoInitP = updateInfoInitP; pStore->updateInfoAddCloseWindowSBF = updateInfoAddCloseWindowSBF; diff --git a/source/dnode/vnode/src/vnd/vnodeInitApi.c b/source/dnode/vnode/src/vnd/vnodeInitApi.c index 3dfaa28c09..5c8d563d73 100644 --- a/source/dnode/vnode/src/vnd/vnodeInitApi.c +++ b/source/dnode/vnode/src/vnd/vnodeInitApi.c @@ -180,6 +180,8 @@ void initStateStoreAPI(SStateStore* pStore) { pStore->updateInfoIsUpdated = updateInfoIsUpdated; pStore->updateInfoIsTableInserted = updateInfoIsTableInserted; pStore->updateInfoDestroy = updateInfoDestroy; + pStore->windowSBfDelete = windowSBfDelete; + pStore->windowSBfAdd = windowSBfAdd; pStore->updateInfoInitP = updateInfoInitP; pStore->updateInfoAddCloseWindowSBF = updateInfoAddCloseWindowSBF; diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 7434db61db..6331f4bd35 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -2411,7 +2411,9 @@ void streamScanReloadState(SOperatorInfo* pOperator) { pInfo->stateStore.updateInfoDestroy(pInfo->pUpdateInfo); pInfo->pUpdateInfo = pUpInfo; } else { - pInfo->pUpdateInfo->minTS = TMAX(pInfo->pUpdateInfo->minTS, pUpInfo->minTS); + pInfo->stateStore.windowSBfDelete(pInfo->pUpdateInfo, 1); + pInfo->stateStore.windowSBfAdd(pInfo->pUpdateInfo, 1); + ASSERT(pInfo->pUpdateInfo->minTS > pUpInfo->minTS); pInfo->pUpdateInfo->maxDataVersion = TMAX(pInfo->pUpdateInfo->maxDataVersion, pUpInfo->maxDataVersion); SHashObj* curMap = pInfo->pUpdateInfo->pMap; void *pIte = taosHashIterate(curMap, NULL); diff --git a/source/libs/stream/src/streamUpdate.c b/source/libs/stream/src/streamUpdate.c index 85be120dbd..7a8de91d77 100644 --- a/source/libs/stream/src/streamUpdate.c +++ b/source/libs/stream/src/streamUpdate.c @@ -33,7 +33,7 @@ static int64_t adjustExpEntries(int64_t entries) { return TMIN(DEFAULT_EXPECTED_ENTRIES, entries); } -static void windowSBfAdd(SUpdateInfo *pInfo, uint64_t count) { +void windowSBfAdd(SUpdateInfo *pInfo, uint64_t count) { if (pInfo->numSBFs < count) { count = pInfo->numSBFs; } @@ -49,7 +49,7 @@ static void clearItemHelper(void *p) { tScalableBfDestroy(*pBf); } -static void windowSBfDelete(SUpdateInfo *pInfo, uint64_t count) { +void windowSBfDelete(SUpdateInfo *pInfo, uint64_t count) { if (count < pInfo->numSBFs) { for (uint64_t i = 0; i < count; ++i) { SScalableBf *pTsSBFs = taosArrayGetP(pInfo->pTsSBFs, 0); From 6179618b17ef8aaf5c7350bbae95e244516507bc Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Mon, 31 Jul 2023 17:56:04 +0800 Subject: [PATCH 33/83] fix:add committed & seek process logic --- source/client/test/clientTests.cpp | 3 ++- source/dnode/mnode/impl/src/mndSubscribe.c | 1 + source/dnode/vnode/src/tq/tq.c | 7 ++++--- source/dnode/vnode/src/vnd/vnodeSvr.c | 5 +++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/source/client/test/clientTests.cpp b/source/client/test/clientTests.cpp index d88a26cbb2..6f978b0143 100644 --- a/source/client/test/clientTests.cpp +++ b/source/client/test/clientTests.cpp @@ -1251,7 +1251,8 @@ TEST(clientCase, td_25129) { } for(int i = 0; i < numOfAssign; i++){ - printf("assign i:%d, vgId:%d, offset:%lld, start:%lld, end:%lld\n", i, pAssign[i].vgId, pAssign[i].currentOffset, pAssign[i].begin, pAssign[i].end); + int64_t committed = tmq_committed(tmq, topicName, pAssign[i].vgId); + printf("assign i:%d, vgId:%d, committed:%lld, offset:%lld, start:%lld, end:%lld\n", i, pAssign[i].vgId, committed, pAssign[i].currentOffset, pAssign[i].begin, pAssign[i].end); } while (1) { diff --git a/source/dnode/mnode/impl/src/mndSubscribe.c b/source/dnode/mnode/impl/src/mndSubscribe.c index ab5877327f..6f50b9ff9f 100644 --- a/source/dnode/mnode/impl/src/mndSubscribe.c +++ b/source/dnode/mnode/impl/src/mndSubscribe.c @@ -692,6 +692,7 @@ static int32_t mndProcessRebalanceReq(SRpcMsg *pMsg) { taosArrayDestroy(rebOutput.modifyConsumers); taosArrayDestroy(rebOutput.rebVgs); + taosHashCancelIterate(pReq->rebSubHash, pIter); terrno = TSDB_CODE_OUT_OF_MEMORY; mInfo("mq re-balance failed, due to out of memory"); taosHashCleanup(pReq->rebSubHash); diff --git a/source/dnode/vnode/src/tq/tq.c b/source/dnode/vnode/src/tq/tq.c index 60071645c0..a20e7008db 100644 --- a/source/dnode/vnode/src/tq/tq.c +++ b/source/dnode/vnode/src/tq/tq.c @@ -354,10 +354,10 @@ int32_t tqProcessOffsetCommitReq(STQ* pTq, int64_t sversion, char* msg, int32_t STqOffset* pOffset = &vgOffset.offset; if (pOffset->val.type == TMQ_OFFSET__SNAPSHOT_DATA || pOffset->val.type == TMQ_OFFSET__SNAPSHOT_META) { - tqInfo("receive offset commit msg to %s on vgId:%d, offset(type:snapshot) uid:%" PRId64 ", ts:%" PRId64, + tqDebug("receive offset commit msg to %s on vgId:%d, offset(type:snapshot) uid:%" PRId64 ", ts:%" PRId64, pOffset->subKey, vgId, pOffset->val.uid, pOffset->val.ts); } else if (pOffset->val.type == TMQ_OFFSET__LOG) { - tqInfo("receive offset commit msg to %s on vgId:%d, offset(type:log) version:%" PRId64, pOffset->subKey, vgId, + tqDebug("receive offset commit msg to %s on vgId:%d, offset(type:log) version:%" PRId64, pOffset->subKey, vgId, pOffset->val.version); } else { tqError("invalid commit offset type:%d", pOffset->val.type); @@ -385,12 +385,13 @@ int32_t tqProcessSeekReq(STQ* pTq, SRpcMsg* pMsg) { SRpcMsg rsp = {.info = pMsg->info}; int code = 0; - tqDebug("tmq seek: consumer:0x%" PRIx64 " vgId:%d, subkey %s", req.consumerId, vgId, req.subKey); if (tDeserializeSMqSeekReq(pMsg->pCont, pMsg->contLen, &req) < 0) { code = TSDB_CODE_OUT_OF_MEMORY; goto end; } + tqDebug("tmq seek: consumer:0x%" PRIx64 " vgId:%d, subkey %s", req.consumerId, vgId, req.subKey); + STqHandle* pHandle = taosHashGet(pTq->pHandle, req.subKey, strlen(req.subKey)); if (pHandle == NULL) { tqWarn("tmq seek: consumer:0x%" PRIx64 " vgId:%d subkey %s not found", req.consumerId, vgId, req.subKey); diff --git a/source/dnode/vnode/src/vnd/vnodeSvr.c b/source/dnode/vnode/src/vnd/vnodeSvr.c index 81f87a3e22..743470aac8 100644 --- a/source/dnode/vnode/src/vnd/vnodeSvr.c +++ b/source/dnode/vnode/src/vnd/vnodeSvr.c @@ -624,6 +624,11 @@ int32_t vnodeProcessFetchMsg(SVnode *pVnode, SRpcMsg *pMsg, SQueueInfo *pInfo) { // return tqProcessPollReq(pVnode->pTq, pMsg); case TDMT_VND_TMQ_VG_WALINFO: return tqProcessVgWalInfoReq(pVnode->pTq, pMsg); + case TDMT_VND_TMQ_VG_COMMITTEDINFO: + return tqProcessVgCommittedInfoReq(pVnode->pTq, pMsg); + case TDMT_VND_TMQ_SEEK: + return tqProcessSeekReq(pVnode->pTq, pMsg); + default: vError("unknown msg type:%d in fetch queue", pMsg->msgType); return TSDB_CODE_APP_ERROR; From d45596bb33daf19347d2fdc46215994abd860433 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 31 Jul 2023 18:07:37 +0800 Subject: [PATCH 34/83] fix(stream): kill task when pause the stream execution. --- include/libs/stream/tstream.h | 6 +-- source/dnode/vnode/src/tq/tq.c | 14 +++---- source/libs/stream/inc/streamInt.h | 1 + source/libs/stream/src/streamExec.c | 2 +- source/libs/stream/src/streamRecover.c | 51 +++++++++++++++----------- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/include/libs/stream/tstream.h b/include/libs/stream/tstream.h index 9d3a42f502..db0509d81d 100644 --- a/include/libs/stream/tstream.h +++ b/include/libs/stream/tstream.h @@ -604,13 +604,10 @@ int32_t streamSendCheckRsp(const SStreamMeta* pMeta, const SStreamTaskCheckReq* int32_t streamProcessCheckRsp(SStreamTask* pTask, const SStreamTaskCheckRsp* pRsp); int32_t streamLaunchFillHistoryTask(SStreamTask* pTask); int32_t streamTaskScanHistoryDataComplete(SStreamTask* pTask); -int32_t streamStartRecoverTask(SStreamTask* pTask, int8_t igUntreated); +int32_t streamStartScanHistoryAsync(SStreamTask* pTask, int8_t igUntreated); bool streamHistoryTaskSetVerRangeStep2(SStreamTask* pTask, int64_t latestVer); -int32_t streamTaskRecoverSetAllStepFinished(SStreamTask* pTask); - // common -int32_t streamSetParamForScanHistory(SStreamTask* pTask); int32_t streamRestoreParam(SStreamTask* pTask); int32_t streamSetStatusNormal(SStreamTask* pTask); const char* streamGetTaskStatusStr(int32_t status); @@ -624,7 +621,6 @@ void streamTaskEnablePause(SStreamTask* pTask); // source level int32_t streamSetParamForStreamScannerStep1(SStreamTask* pTask, SVersionRange* pVerRange, STimeWindow* pWindow); int32_t streamSetParamForStreamScannerStep2(SStreamTask* pTask, SVersionRange* pVerRange, STimeWindow* pWindow); -int32_t streamBuildSourceRecover1Req(SStreamTask* pTask, SStreamScanHistoryReq* pReq, int8_t igUntreated); int32_t streamSourceScanHistoryData(SStreamTask* pTask); int32_t streamDispatchScanHistoryFinishMsg(SStreamTask* pTask); diff --git a/source/dnode/vnode/src/tq/tq.c b/source/dnode/vnode/src/tq/tq.c index bd4a35d39c..809de13bcf 100644 --- a/source/dnode/vnode/src/tq/tq.c +++ b/source/dnode/vnode/src/tq/tq.c @@ -1567,9 +1567,8 @@ int32_t tqProcessTaskPauseReq(STQ* pTq, int64_t sversion, char* msg, int32_t msg SStreamMeta* pMeta = pTq->pStreamMeta; SStreamTask* pTask = streamMetaAcquireTask(pMeta, pReq->taskId); if (pTask == NULL) { - tqError("vgId:%d failed to acquire task:0x%x, it may have been dropped already", pMeta->vgId, + tqError("vgId:%d process pause req, failed to acquire task:0x%x, it may have been dropped already", pMeta->vgId, pReq->taskId); - // since task is in [STOP|DROPPING] state, it is safe to assume the pause is active return TSDB_CODE_SUCCESS; } @@ -1581,9 +1580,8 @@ int32_t tqProcessTaskPauseReq(STQ* pTq, int64_t sversion, char* msg, int32_t msg if (pTask->historyTaskId.taskId != 0) { pHistoryTask = streamMetaAcquireTask(pMeta, pTask->historyTaskId.taskId); if (pHistoryTask == NULL) { - tqError("vgId:%d failed to acquire fill-history task:0x%x, it may have been dropped already. Pause success", + tqError("vgId:%d process pause req, failed to acquire fill-history task:0x%x, it may have been dropped already", pMeta->vgId, pTask->historyTaskId.taskId); - streamMetaReleaseTask(pMeta, pTask); // since task is in [STOP|DROPPING] state, it is safe to assume the pause is active @@ -1591,14 +1589,12 @@ int32_t tqProcessTaskPauseReq(STQ* pTq, int64_t sversion, char* msg, int32_t msg } tqDebug("s-task:%s fill-history task handle paused along with related stream task", pHistoryTask->id.idStr); - streamTaskPause(pHistoryTask); - } - streamMetaReleaseTask(pMeta, pTask); - if (pHistoryTask != NULL) { + streamTaskPause(pHistoryTask); streamMetaReleaseTask(pMeta, pHistoryTask); } + streamMetaReleaseTask(pMeta, pTask); return TSDB_CODE_SUCCESS; } @@ -1627,7 +1623,7 @@ int32_t tqProcessTaskResumeImpl(STQ* pTq, SStreamTask* pTask, int64_t sversion, } if (level == TASK_LEVEL__SOURCE && pTask->info.fillHistory && pTask->status.taskStatus == TASK_STATUS__SCAN_HISTORY) { - streamStartRecoverTask(pTask, igUntreated); + streamStartScanHistoryAsync(pTask, igUntreated); } else if (level == TASK_LEVEL__SOURCE && (taosQueueItemSize(pTask->inputQueue->queue) == 0)) { tqStartStreamTasks(pTq); } else { diff --git a/source/libs/stream/inc/streamInt.h b/source/libs/stream/inc/streamInt.h index add893c8c7..32d6dc65d9 100644 --- a/source/libs/stream/inc/streamInt.h +++ b/source/libs/stream/inc/streamInt.h @@ -62,6 +62,7 @@ SStreamQueueItem* streamMergeQueueItem(SStreamQueueItem* dst, SStreamQueueItem* int32_t streamAddEndScanHistoryMsg(SStreamTask* pTask, SRpcHandleInfo* pRpcInfo, SStreamScanHistoryFinishReq* pReq); int32_t streamNotifyUpstreamContinue(SStreamTask* pTask); +int32_t streamTaskFillHistoryFinished(SStreamTask* pTask); extern int32_t streamBackendId; extern int32_t streamBackendCfWrapperId; diff --git a/source/libs/stream/src/streamExec.c b/source/libs/stream/src/streamExec.c index 763a2fdcc6..7aa82ed5f6 100644 --- a/source/libs/stream/src/streamExec.c +++ b/source/libs/stream/src/streamExec.c @@ -561,7 +561,7 @@ int32_t streamTryExec(SStreamTask* pTask) { if (taosQueueEmpty(pTask->inputQueue->queue)) { // fill-history WAL scan has completed if (pTask->info.taskLevel == TASK_LEVEL__SOURCE && pTask->status.transferState == true) { - streamTaskRecoverSetAllStepFinished(pTask); + streamTaskFillHistoryFinished(pTask); streamTaskEndScanWAL(pTask); } else { atomic_store_8(&pTask->status.schedStatus, TASK_SCHED_STATUS__INACTIVE); diff --git a/source/libs/stream/src/streamRecover.c b/source/libs/stream/src/streamRecover.c index 4fa6150412..bd2d67e14a 100644 --- a/source/libs/stream/src/streamRecover.c +++ b/source/libs/stream/src/streamRecover.c @@ -17,23 +17,30 @@ #include "ttimer.h" #include "wal.h" -static void launchFillHistoryTask(SStreamTask* pTask); -static void streamTaskSetRangeStreamCalc(SStreamTask* pTask); +typedef struct SStreamTaskRetryInfo { + SStreamMeta* pMeta; + int32_t taskId; +} SStreamTaskRetryInfo; -static void streamTaskSetForReady(SStreamTask* pTask, int32_t numOfReqs) { +static int32_t streamSetParamForScanHistory(SStreamTask* pTask); +static void launchFillHistoryTask(SStreamTask* pTask); +static void streamTaskSetRangeStreamCalc(SStreamTask* pTask); +static int32_t initScanHistoryReq(SStreamTask* pTask, SStreamScanHistoryReq* pReq, int8_t igUntreated); + +static void streamTaskSetReady(SStreamTask* pTask, int32_t numOfReqs) { ASSERT(pTask->status.downstreamReady == 0); pTask->status.downstreamReady = 1; - int64_t el = (taosGetTimestampMs() - pTask->tsInfo.init); + int64_t el = (taosGetTimestampMs() - pTask->tsInfo.init); qDebug("s-task:%s all %d downstream ready, init completed, elapsed time:%dms, task status:%s", pTask->id.idStr, numOfReqs, (int32_t) el, streamGetTaskStatusStr(pTask->status.taskStatus)); } -int32_t streamStartRecoverTask(SStreamTask* pTask, int8_t igUntreated) { +int32_t streamStartScanHistoryAsync(SStreamTask* pTask, int8_t igUntreated) { SStreamScanHistoryReq req; - streamBuildSourceRecover1Req(pTask, &req, igUntreated); - int32_t len = sizeof(SStreamScanHistoryReq); + initScanHistoryReq(pTask, &req, igUntreated); + int32_t len = sizeof(SStreamScanHistoryReq); void* serializedReq = rpcMallocCont(len); if (serializedReq == NULL) { return -1; @@ -65,9 +72,9 @@ static int32_t doLaunchScanHistoryTask(SStreamTask* pTask) { if (pTask->info.fillHistory) { streamSetParamForScanHistory(pTask); } - streamSetParamForStreamScannerStep1(pTask, pRange, &pTask->dataRange.window); - int32_t code = streamStartRecoverTask(pTask, 0); + streamSetParamForStreamScannerStep1(pTask, pRange, &pTask->dataRange.window); + int32_t code = streamStartScanHistoryAsync(pTask, 0); return code; } @@ -142,7 +149,7 @@ int32_t streamTaskDoCheckDownstreamTasks(SStreamTask* pTask) { } else { qDebug("s-task:%s (vgId:%d) set downstream ready, since no downstream", pTask->id.idStr, pTask->info.nodeId); - streamTaskSetForReady(pTask, 0); + streamTaskSetReady(pTask, 0); streamTaskSetRangeStreamCalc(pTask); streamTaskLaunchScanHistory(pTask); @@ -188,7 +195,7 @@ int32_t streamTaskCheckStatus(SStreamTask* pTask) { } static void doProcessDownstreamReadyRsp(SStreamTask* pTask, int32_t numOfReqs) { - streamTaskSetForReady(pTask, numOfReqs); + streamTaskSetReady(pTask, numOfReqs); const char* id = pTask->id.idStr; int8_t status = pTask->status.taskStatus; @@ -319,7 +326,7 @@ int32_t streamSetParamForStreamScannerStep2(SStreamTask* pTask, SVersionRange *p return qStreamSourceScanParamForHistoryScanStep2(pTask->exec.pExecutor, pVerRange, pWindow); } -int32_t streamBuildSourceRecover1Req(SStreamTask* pTask, SStreamScanHistoryReq* pReq, int8_t igUntreated) { +int32_t initScanHistoryReq(SStreamTask* pTask, SStreamScanHistoryReq* pReq, int8_t igUntreated) { pReq->msgHead.vgId = pTask->info.nodeId; pReq->streamId = pTask->id.streamId; pReq->taskId = pTask->id.taskId; @@ -524,11 +531,6 @@ static void doCheckDownstreamStatus(SStreamTask* pTask, SStreamTask* pHTask) { streamTaskDoCheckDownstreamTasks(pHTask); } -typedef struct SStreamTaskRetryInfo { - SStreamMeta* pMeta; - int32_t taskId; -} SStreamTaskRetryInfo; - static void tryLaunchHistoryTask(void* param, void* tmrId) { SStreamTaskRetryInfo* pInfo = param; SStreamMeta* pMeta = pInfo->pMeta; @@ -638,7 +640,7 @@ int32_t streamTaskScanHistoryDataComplete(SStreamTask* pTask) { } } - // dispatch recover finish req to all related downstream task + // dispatch scan-history finish req to all related downstream task code = streamDispatchScanHistoryFinishMsg(pTask); if (code < 0) { return -1; @@ -647,7 +649,7 @@ int32_t streamTaskScanHistoryDataComplete(SStreamTask* pTask) { return 0; } -int32_t streamTaskRecoverSetAllStepFinished(SStreamTask* pTask) { +int32_t streamTaskFillHistoryFinished(SStreamTask* pTask) { void* exec = pTask->exec.pExecutor; return qStreamInfoResetTimewindowFilter(exec); } @@ -659,7 +661,7 @@ bool streamHistoryTaskSetVerRangeStep2(SStreamTask* pTask, int64_t latestVer) { int64_t nextStartVer = pRange->maxVer + 1; if (nextStartVer > latestVer - 1) { // no input data yet. no need to execute the secondardy scan while stream task halt - streamTaskRecoverSetAllStepFinished(pTask); + streamTaskFillHistoryFinished(pTask); qDebug( "s-task:%s no need to perform secondary scan-history data(step 2), since no data ingest during step1 scan, " "related stream task currentVer:%" PRId64, @@ -674,7 +676,6 @@ bool streamHistoryTaskSetVerRangeStep2(SStreamTask* pTask, int64_t latestVer) { } } - int32_t tEncodeStreamTaskCheckReq(SEncoder* pEncoder, const SStreamTaskCheckReq* pReq) { if (tStartEncode(pEncoder) < 0) return -1; if (tEncodeI64(pEncoder, pReq->reqId) < 0) return -1; @@ -847,7 +848,7 @@ void streamTaskPause(SStreamTask* pTask) { taosMsleep(100); } - // todo: use the lock of the task. + // todo: use the task lock, stead of meta lock taosWLockLatch(&pMeta->lock); status = pTask->status.taskStatus; @@ -861,6 +862,12 @@ void streamTaskPause(SStreamTask* pTask) { atomic_store_8(&pTask->status.taskStatus, TASK_STATUS__PAUSE); taosWUnLockLatch(&pMeta->lock); + // in case of fill-history task, stop the tsdb file scan operation. + if (pTask->info.fillHistory == 1) { + void* pExecutor = pTask->exec.pExecutor; + qKillTask(pExecutor, TSDB_CODE_SUCCESS); + } + int64_t el = taosGetTimestampMs() - st; qDebug("vgId:%d s-task:%s set pause flag, prev:%s, elapsed time:%dms", pMeta->vgId, pTask->id.idStr, streamGetTaskStatusStr(pTask->status.keepTaskStatus), (int32_t)el); From 68ae64cdb27c87cbc953b966f244d941e173c330 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Mon, 31 Jul 2023 18:53:25 +0800 Subject: [PATCH 35/83] fix:add committed & seek process logic --- source/client/test/clientTests.cpp | 3 ++- source/dnode/mnode/impl/src/mndSubscribe.c | 1 + source/dnode/vnode/src/tq/tq.c | 6 +++--- source/dnode/vnode/src/vnd/vnodeSvr.c | 4 ++++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/source/client/test/clientTests.cpp b/source/client/test/clientTests.cpp index d88a26cbb2..6f978b0143 100644 --- a/source/client/test/clientTests.cpp +++ b/source/client/test/clientTests.cpp @@ -1251,7 +1251,8 @@ TEST(clientCase, td_25129) { } for(int i = 0; i < numOfAssign; i++){ - printf("assign i:%d, vgId:%d, offset:%lld, start:%lld, end:%lld\n", i, pAssign[i].vgId, pAssign[i].currentOffset, pAssign[i].begin, pAssign[i].end); + int64_t committed = tmq_committed(tmq, topicName, pAssign[i].vgId); + printf("assign i:%d, vgId:%d, committed:%lld, offset:%lld, start:%lld, end:%lld\n", i, pAssign[i].vgId, committed, pAssign[i].currentOffset, pAssign[i].begin, pAssign[i].end); } while (1) { diff --git a/source/dnode/mnode/impl/src/mndSubscribe.c b/source/dnode/mnode/impl/src/mndSubscribe.c index 6bd23c3b90..85054e5cd7 100644 --- a/source/dnode/mnode/impl/src/mndSubscribe.c +++ b/source/dnode/mnode/impl/src/mndSubscribe.c @@ -692,6 +692,7 @@ static int32_t mndProcessRebalanceReq(SRpcMsg *pMsg) { taosArrayDestroy(rebOutput.modifyConsumers); taosArrayDestroy(rebOutput.rebVgs); + taosHashCancelIterate(pReq->rebSubHash, pIter); terrno = TSDB_CODE_OUT_OF_MEMORY; mInfo("mq re-balance failed, due to out of memory"); taosHashCleanup(pReq->rebSubHash); diff --git a/source/dnode/vnode/src/tq/tq.c b/source/dnode/vnode/src/tq/tq.c index db9ef7805f..824024b1d0 100644 --- a/source/dnode/vnode/src/tq/tq.c +++ b/source/dnode/vnode/src/tq/tq.c @@ -336,10 +336,10 @@ int32_t tqProcessOffsetCommitReq(STQ* pTq, int64_t sversion, char* msg, int32_t STqOffset* pOffset = &vgOffset.offset; if (pOffset->val.type == TMQ_OFFSET__SNAPSHOT_DATA || pOffset->val.type == TMQ_OFFSET__SNAPSHOT_META) { - tqInfo("receive offset commit msg to %s on vgId:%d, offset(type:snapshot) uid:%" PRId64 ", ts:%" PRId64, + tqDebug("receive offset commit msg to %s on vgId:%d, offset(type:snapshot) uid:%" PRId64 ", ts:%" PRId64, pOffset->subKey, vgId, pOffset->val.uid, pOffset->val.ts); } else if (pOffset->val.type == TMQ_OFFSET__LOG) { - tqInfo("receive offset commit msg to %s on vgId:%d, offset(type:log) version:%" PRId64, pOffset->subKey, vgId, + tqDebug("receive offset commit msg to %s on vgId:%d, offset(type:log) version:%" PRId64, pOffset->subKey, vgId, pOffset->val.version); } else { tqError("invalid commit offset type:%d", pOffset->val.type); @@ -367,12 +367,12 @@ int32_t tqProcessSeekReq(STQ* pTq, SRpcMsg* pMsg) { SRpcMsg rsp = {.info = pMsg->info}; int code = 0; - tqDebug("tmq seek: consumer:0x%" PRIx64 " vgId:%d, subkey %s", req.consumerId, vgId, req.subKey); if (tDeserializeSMqSeekReq(pMsg->pCont, pMsg->contLen, &req) < 0) { code = TSDB_CODE_OUT_OF_MEMORY; goto end; } + tqDebug("tmq seek: consumer:0x%" PRIx64 " vgId:%d, subkey %s", req.consumerId, vgId, req.subKey); STqHandle* pHandle = taosHashGet(pTq->pHandle, req.subKey, strlen(req.subKey)); if (pHandle == NULL) { tqWarn("tmq seek: consumer:0x%" PRIx64 " vgId:%d subkey %s not found", req.consumerId, vgId, req.subKey); diff --git a/source/dnode/vnode/src/vnd/vnodeSvr.c b/source/dnode/vnode/src/vnd/vnodeSvr.c index 81f87a3e22..bf1abf5795 100644 --- a/source/dnode/vnode/src/vnd/vnodeSvr.c +++ b/source/dnode/vnode/src/vnd/vnodeSvr.c @@ -624,6 +624,10 @@ int32_t vnodeProcessFetchMsg(SVnode *pVnode, SRpcMsg *pMsg, SQueueInfo *pInfo) { // return tqProcessPollReq(pVnode->pTq, pMsg); case TDMT_VND_TMQ_VG_WALINFO: return tqProcessVgWalInfoReq(pVnode->pTq, pMsg); + case TDMT_VND_TMQ_VG_COMMITTEDINFO: + return tqProcessVgCommittedInfoReq(pVnode->pTq, pMsg); + case TDMT_VND_TMQ_SEEK: + return tqProcessSeekReq(pVnode->pTq, pMsg); default: vError("unknown msg type:%d in fetch queue", pMsg->msgType); return TSDB_CODE_APP_ERROR; From d72580dad768517cdf8435ed19253dcdb79875d3 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 31 Jul 2023 19:12:23 +0800 Subject: [PATCH 36/83] fix(stream): transfer the state for agg tasks. --- source/libs/stream/src/streamExec.c | 58 ++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/source/libs/stream/src/streamExec.c b/source/libs/stream/src/streamExec.c index 7aa82ed5f6..e4dc28b76b 100644 --- a/source/libs/stream/src/streamExec.c +++ b/source/libs/stream/src/streamExec.c @@ -292,12 +292,12 @@ static void waitForTaskIdle(SStreamTask* pTask, SStreamTask* pStreamTask) { } } -static int32_t streamTransferStateToStreamTask(SStreamTask* pTask) { +static int32_t streamDoTransferStateToStreamTask(SStreamTask* pTask) { SStreamMeta* pMeta = pTask->pMeta; SStreamTask* pStreamTask = streamMetaAcquireTask(pMeta, pTask->streamTaskId.taskId); if (pStreamTask == NULL) { - // todo: destroy this task here + // todo: destroy the fill-history task here qError("s-task:%s failed to find related stream task:0x%x, it may have been destroyed or closed", pTask->id.idStr, pTask->streamTaskId.taskId); return TSDB_CODE_STREAM_TASK_NOT_EXIST; @@ -338,34 +338,36 @@ static int32_t streamTransferStateToStreamTask(SStreamTask* pTask) { qDebug("s-task:%s no need to update time window for non-source task", pStreamTask->id.idStr); } - // expand the query time window for stream scanner + // 1. expand the query time window for stream task of WAL scanner pTimeWindow->skey = INT64_MIN; qStreamInfoResetTimewindowFilter(pStreamTask->exec.pExecutor); - // transfer the ownership of executor state + // 2. transfer the ownership of executor state streamTaskReleaseState(pTask); streamTaskReloadState(pStreamTask); - // clear the link between fill-history task and stream task info + // 3. clear the link between fill-history task and stream task info pStreamTask->historyTaskId.taskId = 0; + + // 4. resume the state of stream task, after this function, the stream task will run immidately. But it can not be + // pause, since the pause allowed attribute is not set yet. streamTaskResumeFromHalt(pStreamTask); qDebug("s-task:%s fill-history task set status to be dropping, save the state into disk", pTask->id.idStr); int32_t taskId = pTask->id.taskId; - // free it and remove it from disk meta-store + // 5. free it and remove fill-history task from disk meta-store streamMetaUnregisterTask(pMeta, taskId); - // save to disk + // 6. save to disk taosWLockLatch(&pMeta->lock); - streamMetaSaveTask(pMeta, pStreamTask); if (streamMetaCommit(pMeta) < 0) { // persist to disk } taosWUnLockLatch(&pMeta->lock); - // pause allowed + // 7. pause allowed. streamTaskEnablePause(pStreamTask); streamSchedExec(pStreamTask); @@ -373,6 +375,25 @@ static int32_t streamTransferStateToStreamTask(SStreamTask* pTask) { return TSDB_CODE_SUCCESS; } +static int32_t streamTransferStateToStreamTask(SStreamTask* pTask) { + int32_t code = TSDB_CODE_SUCCESS; + if (!pTask->status.transferState) { + return code; + } + + if (pTask->info.taskLevel == TASK_LEVEL__SOURCE) { + streamTaskFillHistoryFinished(pTask); + streamTaskEndScanWAL(pTask); + } else { // do transfer task operator states. + code = streamDoTransferStateToStreamTask(pTask); + if (code != TSDB_CODE_SUCCESS) { // todo handle this + return code; + } + } + + return code; +} + static int32_t extractMsgFromInputQ(SStreamTask* pTask, SStreamQueueItem** pInput, int32_t* numOfBlocks, const char* id) { int32_t retryTimes = 0; @@ -526,17 +547,16 @@ int32_t streamTaskEndScanWAL(SStreamTask* pTask) { double el = (taosGetTimestampMs() - pTask->tsInfo.step2Start) / 1000.0; qDebug("s-task:%s scan-history from WAL stage(step 2) ended, elapsed time:%.2fs", id, el); - // 3. notify downstream tasks to transfer executor state after handle all history blocks. - pTask->status.transferState = true; - + // 1. notify all downstream tasks to transfer executor state after handle all history blocks. int32_t code = streamDispatchTransferStateMsg(pTask); if (code != TSDB_CODE_SUCCESS) { // todo handle error } - // the last execution of fill-history task, in order to transfer task operator states. - code = streamTransferStateToStreamTask(pTask); - if (code != TSDB_CODE_SUCCESS) { // todo handle this + // 2. do transfer stream task operator states. + pTask->status.transferState = true; + code = streamDoTransferStateToStreamTask(pTask); + if (code != TSDB_CODE_SUCCESS) { // todo handle error return code; } @@ -560,9 +580,11 @@ int32_t streamTryExec(SStreamTask* pTask) { // todo the task should be commit here if (taosQueueEmpty(pTask->inputQueue->queue)) { // fill-history WAL scan has completed - if (pTask->info.taskLevel == TASK_LEVEL__SOURCE && pTask->status.transferState == true) { - streamTaskFillHistoryFinished(pTask); - streamTaskEndScanWAL(pTask); + if (pTask->status.transferState) { + code = streamTransferStateToStreamTask(pTask); + if (code != TSDB_CODE_SUCCESS) { + return code; + } } else { atomic_store_8(&pTask->status.schedStatus, TASK_SCHED_STATUS__INACTIVE); qDebug("s-task:%s exec completed, status:%s, sched-status:%d", id, streamGetTaskStatusStr(pTask->status.taskStatus), From 215e358ce3a2939277c11287bc05462e6df32613 Mon Sep 17 00:00:00 2001 From: slzhou Date: Mon, 31 Jul 2023 19:20:54 +0800 Subject: [PATCH 37/83] fix: restore user privilege processing if the rows generated by the user exceeds max block rows --- source/dnode/mnode/impl/src/mndUser.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/source/dnode/mnode/impl/src/mndUser.c b/source/dnode/mnode/impl/src/mndUser.c index 07637586cc..6f59973052 100644 --- a/source/dnode/mnode/impl/src/mndUser.c +++ b/source/dnode/mnode/impl/src/mndUser.c @@ -1213,16 +1213,32 @@ static int32_t mndRetrievePrivileges(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock int32_t cols = 0; char *pWrite; + bool fetchNextUser = pShow->restore ? false : true; + pShow->restore = false; + while (numOfRows < rows) { - pShow->pIter = sdbFetch(pSdb, SDB_USER, pShow->pIter, (void **)&pUser); - if (pShow->pIter == NULL) break; + if (fetchNextUser) { + pShow->pIter = sdbFetch(pSdb, SDB_USER, pShow->pIter, (void **)&pUser); + if (pShow->pIter == NULL) break; + } else { + fetchNextUser = true; + void *pKey = taosHashGetKey(pShow->pIter, NULL); + pUser = sdbAcquire(pSdb, SDB_USER, pKey); + if (!pUser) { + continue; + } + } int32_t numOfReadDbs = taosHashGetSize(pUser->readDbs); int32_t numOfWriteDbs = taosHashGetSize(pUser->writeDbs); int32_t numOfTopics = taosHashGetSize(pUser->topics); int32_t numOfReadTbs = taosHashGetSize(pUser->readTbs); int32_t numOfWriteTbs = taosHashGetSize(pUser->writeTbs); - if (numOfRows + numOfReadDbs + numOfWriteDbs + numOfTopics + numOfReadTbs + numOfWriteTbs >= rows) break; + if (numOfRows + numOfReadDbs + numOfWriteDbs + numOfTopics + numOfReadTbs + numOfWriteTbs >= rows) { + pShow->restore = true; + sdbRelease(pSdb, pUser); + break; + } if (pUser->superUser) { cols = 0; From 8c1c17e31e01521432413d3cd6a73e857bb34c24 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 31 Jul 2023 19:23:53 +0800 Subject: [PATCH 38/83] fix(stream): ignore the sink task transfer state. --- source/libs/stream/src/streamExec.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/libs/stream/src/streamExec.c b/source/libs/stream/src/streamExec.c index e4dc28b76b..d1dff0f2e7 100644 --- a/source/libs/stream/src/streamExec.c +++ b/source/libs/stream/src/streamExec.c @@ -381,10 +381,11 @@ static int32_t streamTransferStateToStreamTask(SStreamTask* pTask) { return code; } - if (pTask->info.taskLevel == TASK_LEVEL__SOURCE) { + int32_t level = pTask->info.taskLevel; + if (level == TASK_LEVEL__SOURCE) { streamTaskFillHistoryFinished(pTask); streamTaskEndScanWAL(pTask); - } else { // do transfer task operator states. + } else if (level == TASK_LEVEL__AGG) { // do transfer task operator states. code = streamDoTransferStateToStreamTask(pTask); if (code != TSDB_CODE_SUCCESS) { // todo handle this return code; From a350794ea70f7a93b128e123606782f6aa8616c2 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Mon, 31 Jul 2023 21:23:49 +0800 Subject: [PATCH 39/83] test: add test_R.sh --- tests/docs-examples-test/test_R.sh | 14 ++++++++++++++ tests/parallel_test/cases.task | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100755 tests/docs-examples-test/test_R.sh diff --git a/tests/docs-examples-test/test_R.sh b/tests/docs-examples-test/test_R.sh new file mode 100755 index 0000000000..d59daf5d34 --- /dev/null +++ b/tests/docs-examples-test/test_R.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +set -e + +pgrep taosd || taosd >> /dev/null 2>&1 & +pgrep taosadapter || taosadapter >> /dev/null 2>&1 & + +cd ../../docs/examples/R + +jar_path=`find ../../../../debug/build -name taos-jdbcdriver-*-dist.jar` +echo jar_path=$jar_path +R -f connect_native.r --args $jar_path +# R -f connect_rest.r --args $jar_path # bug 14704 + diff --git a/tests/parallel_test/cases.task b/tests/parallel_test/cases.task index 1ec5102d9b..3dce8ccfec 100644 --- a/tests/parallel_test/cases.task +++ b/tests/parallel_test/cases.task @@ -1,4 +1,4 @@ -#Coulumn Define +#Column Define #caseID,rerunTimes,Run with Sanitizer,casePath,caseCommand #NA,NA,y or n,script,./test.sh -f tsim/user/basic.sim @@ -1218,3 +1218,4 @@ ,,n,docs-examples-test,bash csharp.sh ,,n,docs-examples-test,bash jdbc.sh ,,n,docs-examples-test,bash go.sh +,,n,docs-examples-test,bash test_R.sh From f2728a65d26a4054b7c247f9c74d8ac58d38e6d7 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Mon, 31 Jul 2023 21:34:10 +0800 Subject: [PATCH 40/83] test: wget jdbc dist.jar --- tests/docs-examples-test/test_R.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/docs-examples-test/test_R.sh b/tests/docs-examples-test/test_R.sh index d59daf5d34..bc850ecd6e 100755 --- a/tests/docs-examples-test/test_R.sh +++ b/tests/docs-examples-test/test_R.sh @@ -6,8 +6,9 @@ pgrep taosd || taosd >> /dev/null 2>&1 & pgrep taosadapter || taosadapter >> /dev/null 2>&1 & cd ../../docs/examples/R +wget https://repo1.maven.org/maven2/com/taosdata/jdbc/taos-jdbcdriver/3.2.4/taos-jdbcdriver-3.2.4-dist.jar -jar_path=`find ../../../../debug/build -name taos-jdbcdriver-*-dist.jar` +jar_path=`find . -name taos-jdbcdriver-*-dist.jar` echo jar_path=$jar_path R -f connect_native.r --args $jar_path # R -f connect_rest.r --args $jar_path # bug 14704 From 65e028ea5abd3df89d9bb85a3cdcde9773bc7b98 Mon Sep 17 00:00:00 2001 From: slzhou Date: Mon, 31 Jul 2023 23:27:35 +0800 Subject: [PATCH 41/83] enhance: add log --- source/dnode/mnode/impl/src/mndUser.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/dnode/mnode/impl/src/mndUser.c b/source/dnode/mnode/impl/src/mndUser.c index 6f59973052..65c1cfbea2 100644 --- a/source/dnode/mnode/impl/src/mndUser.c +++ b/source/dnode/mnode/impl/src/mndUser.c @@ -1235,6 +1235,8 @@ static int32_t mndRetrievePrivileges(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock int32_t numOfReadTbs = taosHashGetSize(pUser->readTbs); int32_t numOfWriteTbs = taosHashGetSize(pUser->writeTbs); if (numOfRows + numOfReadDbs + numOfWriteDbs + numOfTopics + numOfReadTbs + numOfWriteTbs >= rows) { + mInfo("will restore. current num of rows: %d, read dbs %d, write dbs %d, topics %d, read tables %d, write tables %d", + numOfRows, numOfReadDbs, numOfWriteDbs, numOfTopics, numOfReadTbs, numOfWriteTbs); pShow->restore = true; sdbRelease(pSdb, pUser); break; From b83860372cc04a084c9dedb8c002577d8a271a55 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Tue, 1 Aug 2023 00:50:30 +0800 Subject: [PATCH 42/83] fix(stream): dump results to sink node before paused. --- source/libs/executor/src/executor.c | 5 ----- source/libs/stream/src/streamExec.c | 5 ++++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/source/libs/executor/src/executor.c b/source/libs/executor/src/executor.c index e4ddf9ca6c..231653c728 100644 --- a/source/libs/executor/src/executor.c +++ b/source/libs/executor/src/executor.c @@ -186,11 +186,6 @@ void qSetTaskId(qTaskInfo_t tinfo, uint64_t taskId, uint64_t queryId) { doSetTaskId(pTaskInfo->pRoot, &pTaskInfo->storageAPI); } -//void qSetTaskCode(qTaskInfo_t tinfo, int32_t code) { -// SExecTaskInfo* pTaskInfo = tinfo; -// pTaskInfo->code = code; -//} - int32_t qSetStreamOpOpen(qTaskInfo_t tinfo) { if (tinfo == NULL) { return TSDB_CODE_APP_ERROR; diff --git a/source/libs/stream/src/streamExec.c b/source/libs/stream/src/streamExec.c index d1dff0f2e7..4e39f1448a 100644 --- a/source/libs/stream/src/streamExec.c +++ b/source/libs/stream/src/streamExec.c @@ -196,10 +196,13 @@ int32_t streamScanExec(SStreamTask* pTask, int32_t batchSz) { SSDataBlock* output = NULL; uint64_t ts = 0; - if (qExecTask(exec, &output, &ts) < 0) { + code = qExecTask(exec, &output, &ts); + if (code != TSDB_CODE_TSC_QUERY_KILLED && code != TSDB_CODE_SUCCESS) { + qError("%s scan-history data error occurred code:%s, continue scan", pTask->id.idStr, tstrerror(code)); continue; } + // the generated results before fill-history task been paused, should be dispatched to sink node if (output == NULL && qStreamRecoverScanFinished(exec)) { finished = true; break; From 411b5d4cf40126163aaafc5a8f416af6776c26b6 Mon Sep 17 00:00:00 2001 From: slzhou Date: Tue, 1 Aug 2023 09:41:59 +0800 Subject: [PATCH 43/83] fix: increase privileges max block row number to 4096 --- source/dnode/mnode/impl/src/mndShow.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/dnode/mnode/impl/src/mndShow.c b/source/dnode/mnode/impl/src/mndShow.c index c50b205f37..c46b6292d1 100644 --- a/source/dnode/mnode/impl/src/mndShow.c +++ b/source/dnode/mnode/impl/src/mndShow.c @@ -232,7 +232,7 @@ static int32_t mndProcessRetrieveSysTableReq(SRpcMsg *pReq) { } } - if(pShow->type == TSDB_MGMT_TABLE_COL){ // expend capacity for ins_columns + if(pShow->type == TSDB_MGMT_TABLE_COL || pShow->type == TSDB_MGMT_TABLE_PRIVILEGES){ // expend capacity for ins_columns rowsToRead = SHOW_COLS_STEP_SIZE; } ShowRetrieveFp retrieveFp = pMgmt->retrieveFps[pShow->type]; From f2ca4a22c70c64e0541c108f0361a17eadb0b707 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Tue, 1 Aug 2023 09:44:33 +0800 Subject: [PATCH 44/83] docs: use latest java connector to avoid confusing user (#22254) --- docs/en/07-develop/01-connect/index.md | 2 +- docs/examples/java/pom.xml | 4 ++-- docs/zh/07-develop/01-connect/index.md | 2 +- docs/zh/08-connector/14-java.mdx | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/en/07-develop/01-connect/index.md b/docs/en/07-develop/01-connect/index.md index 8714be3c89..49c0b11a36 100644 --- a/docs/en/07-develop/01-connect/index.md +++ b/docs/en/07-develop/01-connect/index.md @@ -83,7 +83,7 @@ If `maven` is used to manage the projects, what needs to be done is only adding com.taosdata.jdbc taos-jdbcdriver - 3.2.1 + 3.2.4 ``` diff --git a/docs/examples/java/pom.xml b/docs/examples/java/pom.xml index 4bdb2062b2..69a0179759 100644 --- a/docs/examples/java/pom.xml +++ b/docs/examples/java/pom.xml @@ -22,7 +22,7 @@ com.taosdata.jdbc taos-jdbcdriver - 3.2.1 + 3.2.4 @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/docs/zh/07-develop/01-connect/index.md b/docs/zh/07-develop/01-connect/index.md index dff21b6870..83032067d9 100644 --- a/docs/zh/07-develop/01-connect/index.md +++ b/docs/zh/07-develop/01-connect/index.md @@ -82,7 +82,7 @@ TDengine 提供了丰富的应用程序开发接口,为了便于用户快速 com.taosdata.jdbc taos-jdbcdriver - 3.2.1 + 3.2.4 ``` diff --git a/docs/zh/08-connector/14-java.mdx b/docs/zh/08-connector/14-java.mdx index 5dcdd61a5f..36eacd26a4 100644 --- a/docs/zh/08-connector/14-java.mdx +++ b/docs/zh/08-connector/14-java.mdx @@ -446,7 +446,7 @@ TDengine 的 JDBC 原生连接实现大幅改进了参数绑定方式对数据 **注意**: - JDBC REST 连接目前不支持参数绑定 -- 以下示例代码基于 taos-jdbcdriver-3.2.1 +- 以下示例代码基于 taos-jdbcdriver-3.2.4 - binary 类型数据需要调用 setString 方法,nchar 类型数据需要调用 setNString 方法 - 预处理语句中指定数据库与子表名称不要使用 `db.?`,应直接使用 `?`,然后在 setTableName 中指定数据库,如:`prepareStatement.setTableName("db.t1")`。 From 785326c494feaf4cdfe17e9df2211e0fddd5609f Mon Sep 17 00:00:00 2001 From: slzhou Date: Tue, 1 Aug 2023 09:46:08 +0800 Subject: [PATCH 45/83] fix: dedicated max privileges rows to 2048 --- source/dnode/mnode/impl/src/mndShow.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/dnode/mnode/impl/src/mndShow.c b/source/dnode/mnode/impl/src/mndShow.c index c46b6292d1..44f4751700 100644 --- a/source/dnode/mnode/impl/src/mndShow.c +++ b/source/dnode/mnode/impl/src/mndShow.c @@ -20,6 +20,7 @@ #define SHOW_STEP_SIZE 100 #define SHOW_COLS_STEP_SIZE 4096 +#define SHOW_PRIVILEGES_STEP_SIZE 2048 static SShowObj *mndCreateShowObj(SMnode *pMnode, SRetrieveTableReq *pReq); static void mndFreeShowObj(SShowObj *pShow); @@ -232,8 +233,10 @@ static int32_t mndProcessRetrieveSysTableReq(SRpcMsg *pReq) { } } - if(pShow->type == TSDB_MGMT_TABLE_COL || pShow->type == TSDB_MGMT_TABLE_PRIVILEGES){ // expend capacity for ins_columns + if(pShow->type == TSDB_MGMT_TABLE_COL){ // expend capacity for ins_columns rowsToRead = SHOW_COLS_STEP_SIZE; + } else if (pShow->type == TSDB_MGMT_TABLE_PRIVILEGES) { + rowsToRead = SHOW_PRIVILEGES_STEP_SIZE; } ShowRetrieveFp retrieveFp = pMgmt->retrieveFps[pShow->type]; if (retrieveFp == NULL) { From f6ae9cf9bb1100e75a357139ebf21f3b9655f8ee Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Tue, 1 Aug 2023 10:16:14 +0800 Subject: [PATCH 46/83] fix(stream): fetch all data before paused and dump to sink node. --- include/libs/stream/tstream.h | 2 +- source/libs/executor/src/executor.c | 30 ++++++++++++++++++++--------- source/libs/stream/src/streamExec.c | 21 +++++++------------- 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/include/libs/stream/tstream.h b/include/libs/stream/tstream.h index db0509d81d..b4ae30910c 100644 --- a/include/libs/stream/tstream.h +++ b/include/libs/stream/tstream.h @@ -590,7 +590,7 @@ bool streamTaskIsIdle(const SStreamTask* pTask); int32_t streamTaskEndScanWAL(SStreamTask* pTask); SStreamChildEpInfo * streamTaskGetUpstreamTaskEpInfo(SStreamTask* pTask, int32_t taskId); -int32_t streamScanExec(SStreamTask* pTask, int32_t batchSz); +int32_t streamScanExec(SStreamTask* pTask, int32_t batchSize); char* createStreamTaskIdStr(int64_t streamId, int32_t taskId); diff --git a/source/libs/executor/src/executor.c b/source/libs/executor/src/executor.c index 231653c728..05767db286 100644 --- a/source/libs/executor/src/executor.c +++ b/source/libs/executor/src/executor.c @@ -647,23 +647,33 @@ int32_t qExecTask(qTaskInfo_t tinfo, SSDataBlock** pRes, uint64_t* useconds) { *pRes = NULL; int64_t curOwner = 0; - if ((curOwner = atomic_val_compare_exchange_64(&pTaskInfo->owner, 0, threadId)) != 0) { + + // todo extract method + taosRLockLatch(&pTaskInfo->lock); + bool isKilled = isTaskKilled(pTaskInfo); + if (isKilled) { + clearStreamBlock(pTaskInfo->pRoot); + qDebug("%s already killed, abort", GET_TASKID(pTaskInfo)); + + taosRUnLockLatch(&pTaskInfo->lock); + return TSDB_CODE_SUCCESS; + } + + if (pTaskInfo->owner != 0) { qError("%s-%p execTask is now executed by thread:%p", GET_TASKID(pTaskInfo), pTaskInfo, (void*)curOwner); pTaskInfo->code = TSDB_CODE_QRY_IN_EXEC; + + taosRUnLockLatch(&pTaskInfo->lock); return pTaskInfo->code; } + pTaskInfo->owner = threadId; + taosRUnLockLatch(&pTaskInfo->lock); + if (pTaskInfo->cost.start == 0) { pTaskInfo->cost.start = taosGetTimestampUs(); } - if (isTaskKilled(pTaskInfo)) { - clearStreamBlock(pTaskInfo->pRoot); - atomic_store_64(&pTaskInfo->owner, 0); - qDebug("%s already killed, abort", GET_TASKID(pTaskInfo)); - return TSDB_CODE_SUCCESS; - } - // error occurs, record the error code and return to client int32_t ret = setjmp(pTaskInfo->env); if (ret != TSDB_CODE_SUCCESS) { @@ -767,11 +777,13 @@ int32_t qKillTask(qTaskInfo_t tinfo, int32_t rspCode) { qDebug("%s sync killed execTask", GET_TASKID(pTaskInfo)); setTaskKilled(pTaskInfo, TSDB_CODE_TSC_QUERY_KILLED); + taosWLockLatch(&pTaskInfo->lock); while (qTaskIsExecuting(pTaskInfo)) { taosMsleep(10); } - pTaskInfo->code = rspCode; + taosWUnLockLatch(&pTaskInfo->lock); + return TSDB_CODE_SUCCESS; } diff --git a/source/libs/stream/src/streamExec.c b/source/libs/stream/src/streamExec.c index 4e39f1448a..1f126e002b 100644 --- a/source/libs/stream/src/streamExec.c +++ b/source/libs/stream/src/streamExec.c @@ -162,7 +162,7 @@ static int32_t streamTaskExecImpl(SStreamTask* pTask, SStreamQueueItem* pItem, i return code; } -int32_t streamScanExec(SStreamTask* pTask, int32_t batchSz) { +int32_t streamScanExec(SStreamTask* pTask, int32_t batchSize) { ASSERT(pTask->info.taskLevel == TASK_LEVEL__SOURCE); int32_t code = TSDB_CODE_SUCCESS; void* exec = pTask->exec.pExecutor; @@ -174,7 +174,7 @@ int32_t streamScanExec(SStreamTask* pTask, int32_t batchSz) { if (streamTaskShouldPause(&pTask->status)) { double el = (taosGetTimestampMs() - pTask->tsInfo.step1Start) / 1000.0; qDebug("s-task:%s paused from the scan-history task, elapsed time:%.2fsec", pTask->id.idStr, el); - return 0; + break; } SArray* pRes = taosArrayInit(0, sizeof(SSDataBlock)); @@ -190,10 +190,6 @@ int32_t streamScanExec(SStreamTask* pTask, int32_t batchSz) { return 0; } - if (streamTaskShouldPause(&pTask->status)) { - break; - } - SSDataBlock* output = NULL; uint64_t ts = 0; code = qExecTask(exec, &output, &ts); @@ -203,13 +199,9 @@ int32_t streamScanExec(SStreamTask* pTask, int32_t batchSz) { } // the generated results before fill-history task been paused, should be dispatched to sink node - if (output == NULL && qStreamRecoverScanFinished(exec)) { - finished = true; + if (output == NULL) { + finished = qStreamRecoverScanFinished(exec); break; - } else { - if (output == NULL) { - ASSERT(0); - } } SSDataBlock block = {0}; @@ -218,8 +210,9 @@ int32_t streamScanExec(SStreamTask* pTask, int32_t batchSz) { taosArrayPush(pRes, &block); numOfBlocks++; - qDebug("s-task:%s scan exec numOfBlocks:%d, limit:%d", pTask->id.idStr, numOfBlocks, batchSz); - if (numOfBlocks >= batchSz) { + if (numOfBlocks >= batchSize || code != TSDB_CODE_SUCCESS) { + qDebug("s-task:%s scan exec numOfBlocks:%d, limit:%d, code:%s", pTask->id.idStr, numOfBlocks, batchSize, + tstrerror(code)); break; } } From 5e46f7a642e5fa9f3f072de62486a414a56d6031 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Tue, 1 Aug 2023 10:20:56 +0800 Subject: [PATCH 47/83] docs:add doc for schemaless --- docs/en/14-reference/12-config/index.md | 9 ++++++ .../13-schemaless/13-schemaless.md | 24 ++++++++++++++- docs/zh/14-reference/12-config/index.md | 11 ++++++- .../13-schemaless/13-schemaless.md | 30 ++++++++++++++++--- 4 files changed, 68 insertions(+), 6 deletions(-) diff --git a/docs/en/14-reference/12-config/index.md b/docs/en/14-reference/12-config/index.md index a080ef75b4..c0512aef7b 100755 --- a/docs/en/14-reference/12-config/index.md +++ b/docs/en/14-reference/12-config/index.md @@ -670,6 +670,15 @@ The charset that takes effect is UTF-8. | Value Range | 0: not consistent; 1: consistent. | | Default | 0 | +### smlTsDefaultName + +| Attribute | Description | +| -------- | -------------------------------------------------------- | +| Applicable | Client only | +| Meaning | The name of the time column for schemaless automatic table creation is set through this configuration | +| Type | String | +| Default Value | _ts | + ## Compress Parameters ### compressMsgSize diff --git a/docs/en/14-reference/13-schemaless/13-schemaless.md b/docs/en/14-reference/13-schemaless/13-schemaless.md index 3ae9098a73..54be18eea3 100644 --- a/docs/en/14-reference/13-schemaless/13-schemaless.md +++ b/docs/en/14-reference/13-schemaless/13-schemaless.md @@ -34,7 +34,27 @@ In the schemaless writing data line protocol, each data item in the field_set ne - If there are English double quotes on both sides, it indicates the BINARY(32) type. For example, `"abc"`. - If there are double quotes on both sides and an L prefix, it means NCHAR(32) type. For example, `L"error message"`. -- Spaces, equal signs (=), commas (,), and double quotes (") need to be escaped with a backslash (\\) in front. (All refer to the ASCII character) +- Spaces, equals sign (=), comma (,), double quote ("), and backslash (\\) need to be escaped with a backslash (\\) in front. (All refer to the ASCII character). The rules are as follows: + +| **Serial number** | **Element** | **Escape characters** | +| -------- | ----------- | ----------------------------- | +| 1 | Measurement | Comma, Space | +| 2 | Tag key | Comma, Equals Sign, Space | +| 3 | Tag value | Comma, Equals Sign, Space | +| 4 | Field key | Comma, Equals Sign, Space | +| 5 | Field value | Double quote, Backslash | + +With two contiguous backslashes, the first is interpreted as an escape character. Examples of backslash escape rules are as follows: + +| **Serial number** | **Backslashes** | **Interpreted as** | +| -------- | ----------- | ----------------------------- | +| 1 | \ | \ | +| 2 | \\\\ | \ | +| 3 | \\\\\\ | \\\\ | +| 4 | \\\\\\\\ | \\\\ | +| 5 | \\\\\\\\\\ | \\\\\\ | +| 6 | \\\\\\\\\\\\ | \\\\\\ | + - Numeric types will be distinguished from data types by the suffix. | **Serial number** | **Postfix** | **Mapping type** | **Size (bytes)** | @@ -88,6 +108,8 @@ You can configure smlChildTableName in taos.cfg to specify table names, for exam 8. It is assumed that the order of field_set in a supertable is consistent, meaning that the first record contains all fields and subsequent records store fields in the same order. If the order is not consistent, set smlDataFormat in taos.cfg to false. Otherwise, data will be written out of order and a database error will occur. Note: TDengine 3.0.3.0 and later automatically detect whether order is consistent. This parameter is no longer used. +9. Due to the fact that SQL table names do not support period (.), schemaless has also processed period (.). If there is a period (.) in the table name automatically created by schemaless, it will be automatically replaced with an underscore (\_). If you manually specify a sub table name, if there is a dot (.) in the sub table name, it will also be converted to an underscore (\_) +10. Taos.cfg adds the configuration of smlTsDefaultName (with a string value), which only works on the client side. After configuration, the time column name of the schemaless automatic table creation can be set through this configuration. If not configured, defaults to _ts. :::tip All processing logic of schemaless will still follow TDengine's underlying restrictions on data structures, such as the total length of each row of data cannot exceed 48 KB(64 KB since version 3.0.5.0) and the total length of a tag value cannot exceed 16 KB. See [TDengine SQL Boundary Limits](/taos-sql/limit) for specific constraints in this area. diff --git a/docs/zh/14-reference/12-config/index.md b/docs/zh/14-reference/12-config/index.md index ba5eb63859..2f5f0fc3e8 100755 --- a/docs/zh/14-reference/12-config/index.md +++ b/docs/zh/14-reference/12-config/index.md @@ -685,7 +685,16 @@ charset 的有效值是 UTF-8。 | 适用范围 | 仅客户端适用 | | 含义 | schemaless 列数据是否顺序一致,从3.0.3.0开始,该配置废弃 | | 值域 | 0:不一致;1: 一致 | -| 缺省值 | 0 | +| 缺省值 | 0 + +### smlTsDefaultName + +| 属性 | 说明 | +| -------- | -------------------------------------------------------- | +| 适用范围 | 仅客户端适用 | +| 含义 | schemaless自动建表的时间列名字通过该配置设置 | +| 类型 | 字符串 | +| 缺省值 | _ts | ## 其他 diff --git a/docs/zh/14-reference/13-schemaless/13-schemaless.md b/docs/zh/14-reference/13-schemaless/13-schemaless.md index 6c2007938b..9f5bae081c 100644 --- a/docs/zh/14-reference/13-schemaless/13-schemaless.md +++ b/docs/zh/14-reference/13-schemaless/13-schemaless.md @@ -35,12 +35,32 @@ tag_set 中的所有的数据自动转化为 nchar 数据类型,并不需要 - 如果两边有英文双引号,表示 BINARY(32) 类型。例如 `"abc"`。 - 如果两边有英文双引号而且带有 L 前缀,表示 NCHAR(32) 类型。例如 `L"报错信息"`。 -- 对空格、等号(=)、逗号(,)、双引号("),前面需要使用反斜杠(\)进行转义。(都指的是英文半角符号) +- 对空格、等号(=)、逗号(,)、双引号(")、反斜杠(\),前面需要使用反斜杠(\)进行转义。(都指的是英文半角符号)。具体转义规则如下: + +| **序号** | **域** | **需转义字符** | +| -------- | ----------- | ----------------------------- | +| 1 | 超级表名 | 逗号,空格 | +| 2 | 标签名 | 逗号,等号,空格 | +| 3 | 标签值 | 逗号,等号,空格 | +| 4 | 列名 | 逗号,等号,空格 | +| 5 | 列值 | 双引号,反斜杠 | + +两个连续的反斜杠,第一个作为转义符,只有一个反斜杠则无需转义. 反斜杠转义规则举例如下: + +| **序号** | **反斜杠** | **转义为** | +| -------- | ----------- | ----------------------------- | +| 1 | \ | \ | +| 2 | \\\\ | \ | +| 3 | \\\\\\ | \\\\ | +| 4 | \\\\\\\\ | \\\\ | +| 5 | \\\\\\\\\\ | \\\\\\ | +| 6 | \\\\\\\\\\\\ | \\\\\\ | + - 数值类型将通过后缀来区分数据类型: -| **序号** | **后缀** | **映射类型** | **大小(字节)** | +| **序号** | **后缀** | **映射类型** | **大小(字节)** | | -------- | ----------- | ----------------------------- | -------------- | -| 1 | 无或 f64 | double | 8 | +| 1 | 无或 f64 | double | 8 | | 2 | f32 | float | 4 | | 3 | i8/u8 | TinyInt/UTinyInt | 1 | | 4 | i16/u16 | SmallInt/USmallInt | 2 | @@ -84,7 +104,9 @@ st,t1=3,t2=4,t3=t3 c1=3i64,c3="passit",c2=false,c4=4f64 1626006833639000000 6. 对 BINARY 或 NCHAR 列,如果数据行中所提供值的长度超出了列类型的限制,自动增加该列允许存储的字符长度上限(只增不减),以保证数据的完整保存。 7. 整个处理过程中遇到的错误会中断写入过程,并返回错误代码。 8. 为了提高写入的效率,默认假设同一个超级表中 field_set 的顺序是一样的(第一条数据包含所有的 field,后面的数据按照这个顺序),如果顺序不一样,需要配置参数 smlDataFormat 为 false,否则,数据写入按照相同顺序写入,库中数据会异常,从3.0.3.0开始,自动检测顺序是否一致,该配置废弃。 - +9. 由于sql建表表名不支持点号(.),所以schemaless也对点号(.)做了处理,如果schemaless自动建表的表名如果有点号(.),会自动替换为下划线(\_)。如果手动指定子表名的话,子表名里有点号(.),同样转化为下划线(\_)。 +10. taos.cfg 增加 smlTsDefaultName 配置(值为字符串),只在client端起作用,配置后,schemaless自动建表的时间列名字可以通过该配置设置。不配置的话,默认为 _ts + :::tip 无模式所有的处理逻辑,仍会遵循 TDengine 对数据结构的底层限制,例如每行数据的总长度不能超过 48KB(从 3.0.5.0 版本开始为 64KB),标签值的总长度不超过16KB。这方面的具体限制约束请参见 [TDengine SQL 边界限制](/taos-sql/limit) From e11cda17c0b326877798862f27a4a8d2f32a5331 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Tue, 1 Aug 2023 10:30:24 +0800 Subject: [PATCH 48/83] fix(stream): remove invalid check. --- source/libs/stream/src/streamExec.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/source/libs/stream/src/streamExec.c b/source/libs/stream/src/streamExec.c index 1f126e002b..c83e29ae2f 100644 --- a/source/libs/stream/src/streamExec.c +++ b/source/libs/stream/src/streamExec.c @@ -209,10 +209,8 @@ int32_t streamScanExec(SStreamTask* pTask, int32_t batchSize) { block.info.childId = pTask->info.selfChildId; taosArrayPush(pRes, &block); - numOfBlocks++; - if (numOfBlocks >= batchSize || code != TSDB_CODE_SUCCESS) { - qDebug("s-task:%s scan exec numOfBlocks:%d, limit:%d, code:%s", pTask->id.idStr, numOfBlocks, batchSize, - tstrerror(code)); + if ((++numOfBlocks) >= batchSize) { + qDebug("s-task:%s scan exec numOfBlocks:%d, output limit:%d reached", pTask->id.idStr, numOfBlocks, batchSize); break; } } From 2bf8b642c3bfd09e82ddbacef5d76c19cbe4119d Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Tue, 1 Aug 2023 11:20:04 +0800 Subject: [PATCH 49/83] docs: add qstudio in 3rd parties list (#22270) --- docs/en/20-third-party/50-qstudio.md | 40 +++++++++++++++++ .../qstudio/qstudio-browse-data.webp | Bin 0 -> 96666 bytes .../20-third-party/qstudio/qstudio-chart.webp | Bin 0 -> 151716 bytes .../qstudio-connect-tdengine-test.webp | Bin 0 -> 34830 bytes .../qstudio/qstudio-connect-tdengine.webp | Bin 0 -> 95490 bytes .../qstudio-jdbc-connector-download.webp | Bin 0 -> 39536 bytes .../qstudio/qstudio-sql-execution.webp | Bin 0 -> 79490 bytes docs/zh/20-third-party/50-qstudio.md | 41 ++++++++++++++++++ .../qstudio/qstudio-browse-data.webp | Bin 0 -> 96666 bytes .../20-third-party/qstudio/qstudio-chart.webp | Bin 0 -> 151716 bytes .../qstudio-connect-tdengine-test.webp | Bin 0 -> 34830 bytes .../qstudio/qstudio-connect-tdengine.webp | Bin 0 -> 95490 bytes .../qstudio-jdbc-connector-download.webp | Bin 0 -> 39536 bytes .../qstudio/qstudio-sql-execution.webp | Bin 0 -> 79490 bytes 14 files changed, 81 insertions(+) create mode 100644 docs/en/20-third-party/50-qstudio.md create mode 100644 docs/en/20-third-party/qstudio/qstudio-browse-data.webp create mode 100644 docs/en/20-third-party/qstudio/qstudio-chart.webp create mode 100644 docs/en/20-third-party/qstudio/qstudio-connect-tdengine-test.webp create mode 100644 docs/en/20-third-party/qstudio/qstudio-connect-tdengine.webp create mode 100644 docs/en/20-third-party/qstudio/qstudio-jdbc-connector-download.webp create mode 100644 docs/en/20-third-party/qstudio/qstudio-sql-execution.webp create mode 100644 docs/zh/20-third-party/50-qstudio.md create mode 100644 docs/zh/20-third-party/qstudio/qstudio-browse-data.webp create mode 100644 docs/zh/20-third-party/qstudio/qstudio-chart.webp create mode 100644 docs/zh/20-third-party/qstudio/qstudio-connect-tdengine-test.webp create mode 100644 docs/zh/20-third-party/qstudio/qstudio-connect-tdengine.webp create mode 100644 docs/zh/20-third-party/qstudio/qstudio-jdbc-connector-download.webp create mode 100644 docs/zh/20-third-party/qstudio/qstudio-sql-execution.webp diff --git a/docs/en/20-third-party/50-qstudio.md b/docs/en/20-third-party/50-qstudio.md new file mode 100644 index 0000000000..1c30a118fe --- /dev/null +++ b/docs/en/20-third-party/50-qstudio.md @@ -0,0 +1,40 @@ +--- +sidebar_label: qStudio +title: qStudio +description: Step-by-Step Guide to Accessing TDengine Data with qStudio +--- + +qStudio is a free cross-platform SQL data analysis tool that allows easy browsing of tables, variables, functions, and configuration settings in a database. The latest version of qStudio includes built-in support for TDengine. + +## Prerequisites + +To connect TDengine using qStudio, you need to complete the following preparations: + +- Install qStudio: qStudio supports major operating systems, including Windows, macOS, and Linux. Please ensure you download the correct installation package for your platform from the download page (https://www.timestored.com/qstudio/download/). +- Set up TDengine instance: Make sure TDengine is installed and running correctly, and the taosAdapter is installed and running. For detailed information, refer to the taosAdapter User Manual. + +## Connecting to TDengine with qStudio + +1. Launch the qStudio application and select "Server" and then "Add Server..." from the menu. Choose TDengine from the Server Type dropdown. + + ![qConnecting TDengine with qStudio](./qstudio/qstudio-connect-tdengine.webp) + +2. Configure the TDengine connection by entering the host address, port number, username, and password. If TDengine is deployed on the local machine, you can fill in the username and password only. The default username is "root," and the default password is "taosdata." Click "Test" to test the connection's availability. If the TDengine Java connector is not installed on the local machine, qStudio will prompt you to download and install it. + + ![Download Java Connector](./qstudio/qstudio-jdbc-connector-download.webp) + +3. Once connected successfully, the screen will display as shown below. If the connection fails, check that the TDengine service and taosAdapter are running correctly, and ensure that the host address, port number, username, and password are correct. + + ![Successful Connection](./qstudio/qstudio-connect-tdengine-test.webp) + +4. Use qStudio to select databases and tables to browse data from the TDengine server. + + ![Browsing TDengine Data with qStudio](./qstudio/qstudio-browse-data.webp) + +5. You can also perform operations on TDengine data by executing SQL commands. + + ![qStudio SQL Commands](./qstudio/qstudio-sql-execution.webp) + +6. qStudio supports charting functions based on the data. For more information, please refer to the qStudio documentation (https://www.timestored.com/qstudio/help). + + ![qStudio Chart](./qstudio/qstudio-chart.webp) diff --git a/docs/en/20-third-party/qstudio/qstudio-browse-data.webp b/docs/en/20-third-party/qstudio/qstudio-browse-data.webp new file mode 100644 index 0000000000000000000000000000000000000000..0de3a569f74615db5a9220d810244382d280fb61 GIT binary patch literal 96666 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 U&cRmz=7NFo@Ls;(@_%0c0R@S%q5uE@ literal 0 HcmV?d00001 diff --git a/docs/en/20-third-party/qstudio/qstudio-chart.webp b/docs/en/20-third-party/qstudio/qstudio-chart.webp new file mode 100644 index 0000000000000000000000000000000000000000..397d525cd292c5fecf7f90ea1de6c01d82a788e9 GIT binary patch literal 151716 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 z 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 bk+gnWz>^nU;5PE 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

CK{(k^rK%T!3s<>vO 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 U%;h@(fN~s5r1D=_^#82?0KSt;(EtDd literal 0 HcmV?d00001 diff --git a/docs/zh/20-third-party/50-qstudio.md b/docs/zh/20-third-party/50-qstudio.md new file mode 100644 index 0000000000..0fc1ba6970 --- /dev/null +++ b/docs/zh/20-third-party/50-qstudio.md @@ -0,0 +1,41 @@ +--- +sidebar_label: qStudio +title: qStudio +description: 使用 qStudio 存取 TDengine 数据的详细指南 +--- + +qStudio 是一款免费的多平台 SQL 数据分析工具,可以轻松浏览数据库中的表、变量、函数和配置设置。最新版本 qStudio 内嵌支持 TDengine。 + +## 前置条件 + +使用 qStudio 连接 TDengine 需要以下几方面的准备工作。 + +- 安装 qStudio。qStudio 支持主流操作系统包括 Windows、macOS 和 Linux。请注意[下载](https://www.timestored.com/qstudio/download/)正确平台的安装包。 +- 安装 TDengine 实例,请确认 TDengine 正常运行,并且 taosAdapter 已经安装并正常运行,具体细节请参考 [taosAdapter 的使用手册](/reference/taosadapter)。 + +## 使用 qStudio 连接 TDengine + +1. 启动 qStudio 应用,从菜单项选择“Server” 和 “Add Server...”,然后在 Server Type 下拉框中选择 TDengine。 + + ![qStudio 连接 TDengine](./qstudio/qstudio-connect-tdengine.webp) + +2. 配置 TDengine 连接,填入主机地址、端口号、用户名和密码。如果 TDengine 部署在本机,可以只填用户名和密码,默认用户名为 root,默认密码为 taosdata。点击“Test”可以对连接是否可用进行测试。如果本机没有安装 TDengine Java + 连接器,qStudio 会提示下载安装。 + + ![下载 Java 连接器](./qstudio/qstudio-jdbc-connector-download.webp) + +3. 连接成功将显示如下图所示。如果显示连接失败,请检查 TDengine 服务和 taosAdapter 是否正确运行,主机地址、端口号、用户名和密码是否正确。 + + ![连接成功](./qstudio/qstudio-connect-tdengine-test.webp) + +4. 使用 qStudio 选择数据库和表可以浏览 TDengine 服务的数据。 + + ![qStudio 浏览 TDengine 数据](./qstudio/qstudio-browse-data.webp) + +5. 也可以通过执行 SQL 命令的方式对 TDengine 数据进行操作。 + + ![qStudio SQL 命令](./qstudio/qstudio-sql-execution.webp) + +6. qStudio 支持根据数据绘制图表等功能,请参考 [qStudio 的帮助文档](https://www.timestored.com/qstudio/help) + + ![qStudio Chart 功能](./qstudio/qstudio-chart.webp) diff --git a/docs/zh/20-third-party/qstudio/qstudio-browse-data.webp b/docs/zh/20-third-party/qstudio/qstudio-browse-data.webp new file mode 100644 index 0000000000000000000000000000000000000000..0de3a569f74615db5a9220d810244382d280fb61 GIT binary patch literal 96666 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 U&cRmz=7NFo@Ls;(@_%0c0R@S%q5uE@ literal 0 HcmV?d00001 diff --git a/docs/zh/20-third-party/qstudio/qstudio-chart.webp b/docs/zh/20-third-party/qstudio/qstudio-chart.webp new file mode 100644 index 0000000000000000000000000000000000000000..397d525cd292c5fecf7f90ea1de6c01d82a788e9 GIT binary patch literal 151716 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 z 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 bk+gnWz>^nU;5PE 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

CK{(k^rK%T!3s<>vO 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 U%;h@(fN~s5r1D=_^#82?0KSt;(EtDd literal 0 HcmV?d00001 From 0e46041c1a623d9ea3aa8845dfa5fe4fdfc73963 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Tue, 1 Aug 2023 11:21:40 +0800 Subject: [PATCH 50/83] fix: tsdbRetention memory leak --- source/dnode/vnode/src/tsdb/tsdbFS2.c | 18 +++++++++++++----- source/dnode/vnode/src/tsdb/tsdbFS2.h | 4 +++- source/dnode/vnode/src/tsdb/tsdbRetention.c | 4 +--- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbFS2.c b/source/dnode/vnode/src/tsdb/tsdbFS2.c index 1a0104945f..6e7595c6ef 100644 --- a/source/dnode/vnode/src/tsdb/tsdbFS2.c +++ b/source/dnode/vnode/src/tsdb/tsdbFS2.c @@ -537,6 +537,9 @@ static void tsdbDoWaitBgTask(STFileSystem *fs, STFSBgTask *task) { if (task->numWait == 0) { taosThreadCondDestroy(task->done); + if (task->free) { + task->free(task->arg); + } taosMemoryFree(task); } } @@ -546,6 +549,9 @@ static void tsdbDoDoneBgTask(STFileSystem *fs, STFSBgTask *task) { taosThreadCondBroadcast(task->done); } else { taosThreadCondDestroy(task->done); + if (task->free) { + task->free(task->arg); + } taosMemoryFree(task); } } @@ -627,7 +633,7 @@ int32_t tsdbFSEditCommit(STFileSystem *fs) { SSttLvl *lvl = TARRAY2_FIRST(fset->lvlArr); if (lvl->level != 0 || TARRAY2_SIZE(lvl->fobjArr) < fs->tsdb->pVnode->config.sttTrigger) continue; - code = tsdbFSScheduleBgTask(fs, TSDB_BG_TASK_MERGER, tsdbMerge, fs->tsdb, NULL); + code = tsdbFSScheduleBgTask(fs, TSDB_BG_TASK_MERGER, tsdbMerge, NULL, fs->tsdb, NULL); TSDB_CHECK_CODE(code, lino, _exit); break; @@ -774,8 +780,8 @@ static int32_t tsdbFSRunBgTask(void *arg) { return 0; } -static int32_t tsdbFSScheduleBgTaskImpl(STFileSystem *fs, EFSBgTaskT type, int32_t (*run)(void *), void *arg, - int64_t *taskid) { +static int32_t tsdbFSScheduleBgTaskImpl(STFileSystem *fs, EFSBgTaskT type, int32_t (*run)(void *), void (*free)(void *), + void *arg, int64_t *taskid) { if (fs->stop) { return 0; // TODO: use a better error code } @@ -798,6 +804,7 @@ static int32_t tsdbFSScheduleBgTaskImpl(STFileSystem *fs, EFSBgTaskT type, int32 task->type = type; task->run = run; + task->free = free; task->arg = arg; task->scheduleTime = taosGetTimestampMs(); task->taskid = ++fs->taskid; @@ -819,9 +826,10 @@ static int32_t tsdbFSScheduleBgTaskImpl(STFileSystem *fs, EFSBgTaskT type, int32 return 0; } -int32_t tsdbFSScheduleBgTask(STFileSystem *fs, EFSBgTaskT type, int32_t (*run)(void *), void *arg, int64_t *taskid) { +int32_t tsdbFSScheduleBgTask(STFileSystem *fs, EFSBgTaskT type, int32_t (*run)(void *), void (*free)(void *), void *arg, + int64_t *taskid) { taosThreadMutexLock(fs->mutex); - int32_t code = tsdbFSScheduleBgTaskImpl(fs, type, run, arg, taskid); + int32_t code = tsdbFSScheduleBgTaskImpl(fs, type, run, free, arg, taskid); taosThreadMutexUnlock(fs->mutex); return code; } diff --git a/source/dnode/vnode/src/tsdb/tsdbFS2.h b/source/dnode/vnode/src/tsdb/tsdbFS2.h index 8270581e58..e814ab2fff 100644 --- a/source/dnode/vnode/src/tsdb/tsdbFS2.h +++ b/source/dnode/vnode/src/tsdb/tsdbFS2.h @@ -59,7 +59,8 @@ int32_t tsdbFSEditBegin(STFileSystem *fs, const TFileOpArray *opArray, EFEditT e int32_t tsdbFSEditCommit(STFileSystem *fs); int32_t tsdbFSEditAbort(STFileSystem *fs); // background task -int32_t tsdbFSScheduleBgTask(STFileSystem *fs, EFSBgTaskT type, int32_t (*run)(void *), void *arg, int64_t *taskid); +int32_t tsdbFSScheduleBgTask(STFileSystem *fs, EFSBgTaskT type, int32_t (*run)(void *), void (*free)(void *), void *arg, + int64_t *taskid); int32_t tsdbFSWaitBgTask(STFileSystem *fs, int64_t taskid); int32_t tsdbFSWaitAllBgTask(STFileSystem *fs); int32_t tsdbFSDisableBgTask(STFileSystem *fs); @@ -70,6 +71,7 @@ int32_t tsdbFSGetFSet(STFileSystem *fs, int32_t fid, STFileSet **fset); struct STFSBgTask { EFSBgTaskT type; int32_t (*run)(void *arg); + void (*free)(void *arg); void *arg; TdThreadCond done[1]; diff --git a/source/dnode/vnode/src/tsdb/tsdbRetention.c b/source/dnode/vnode/src/tsdb/tsdbRetention.c index ae5ac4ae36..043de33728 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRetention.c +++ b/source/dnode/vnode/src/tsdb/tsdbRetention.c @@ -251,7 +251,6 @@ _exit: if (code) { TSDB_ERROR_LOG(TD_VID(rtner->tsdb->pVnode), lino, code); } - taosMemoryFree(arg); return code; } @@ -262,9 +261,8 @@ int32_t tsdbAsyncRetention(STsdb *tsdb, int64_t now, int64_t *taskid) { arg->tsdb = tsdb; arg->now = now; - int32_t code = tsdbFSScheduleBgTask(tsdb->pFS, TSDB_BG_TASK_RETENTION, tsdbDoRetention2, arg, taskid); + int32_t code = tsdbFSScheduleBgTask(tsdb->pFS, TSDB_BG_TASK_RETENTION, tsdbDoRetention2, taosMemoryFree, arg, taskid); if (code) taosMemoryFree(arg); - return code; } From 1b39147496546e3cb1909936d71954632498d725 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Tue, 1 Aug 2023 11:36:37 +0800 Subject: [PATCH 51/83] more refact --- source/dnode/vnode/src/tsdb/tsdbRetention.c | 40 ++++++++++++--------- source/dnode/vnode/src/vnd/vnodeRetention.c | 23 ++---------- 2 files changed, 26 insertions(+), 37 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbRetention.c b/source/dnode/vnode/src/tsdb/tsdbRetention.c index 043de33728..3af9d2a07a 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRetention.c +++ b/source/dnode/vnode/src/tsdb/tsdbRetention.c @@ -125,6 +125,7 @@ _exit: typedef struct { STsdb *tsdb; + int32_t sync; int64_t now; } SRtnArg; @@ -254,23 +255,30 @@ _exit: return code; } -int32_t tsdbAsyncRetention(STsdb *tsdb, int64_t now, int64_t *taskid) { - SRtnArg *arg = taosMemoryMalloc(sizeof(*arg)); - if (arg == NULL) return TSDB_CODE_OUT_OF_MEMORY; - - arg->tsdb = tsdb; - arg->now = now; - - int32_t code = tsdbFSScheduleBgTask(tsdb->pFS, TSDB_BG_TASK_RETENTION, tsdbDoRetention2, taosMemoryFree, arg, taskid); - if (code) taosMemoryFree(arg); - return code; +static void tsdbFreeRtnArg(void *arg) { + SRtnArg *rArg = (SRtnArg *)arg; + if (rArg->sync) { + tsem_post(&rArg->tsdb->pVnode->canCommit); + } + taosMemoryFree(arg); } -int32_t tsdbSyncRetention(STsdb *tsdb, int64_t now) { +int32_t tsdbRetention(STsdb *tsdb, int64_t now, int32_t sync) { + SRtnArg *arg = taosMemoryMalloc(sizeof(*arg)); + if (arg == NULL) return TSDB_CODE_OUT_OF_MEMORY; + arg->tsdb = tsdb; + arg->sync = sync; + arg->now = now; + + if (sync) { + tsem_wait(&tsdb->pVnode->canCommit); + } + int64_t taskid; - - int32_t code = tsdbAsyncRetention(tsdb, now, &taskid); - if (code) return code; - - return tsdbFSWaitBgTask(tsdb->pFS, taskid); + int32_t code = + tsdbFSScheduleBgTask(tsdb->pFS, TSDB_BG_TASK_RETENTION, tsdbDoRetention2, tsdbFreeRtnArg, arg, &taskid); + if (code) { + tsdbFreeRtnArg(arg); + } + return code; } \ No newline at end of file diff --git a/source/dnode/vnode/src/vnd/vnodeRetention.c b/source/dnode/vnode/src/vnd/vnodeRetention.c index 7af1f8e28f..f3344d1d7d 100644 --- a/source/dnode/vnode/src/vnd/vnodeRetention.c +++ b/source/dnode/vnode/src/vnd/vnodeRetention.c @@ -15,27 +15,8 @@ #include "vnd.h" -extern int32_t tsdbSyncRetention(STsdb *tsdb, int64_t now); -extern int32_t tsdbAsyncRetention(STsdb *tsdb, int64_t now, int64_t *taskid); +extern int32_t tsdbRetention(STsdb *tsdb, int64_t now, int32_t sync); int32_t vnodeDoRetention(SVnode *pVnode, int64_t now) { - int32_t code; - int32_t lino; - - if (pVnode->config.sttTrigger == 1) { - tsem_wait(&pVnode->canCommit); - code = tsdbSyncRetention(pVnode->pTsdb, now); - TSDB_CHECK_CODE(code, lino, _exit); - - // code = smaDoRetention(pVnode->pSma, now); - // TSDB_CHECK_CODE(code, lino, _exit); - tsem_post(&pVnode->canCommit); - } else { - int64_t taskid; - code = tsdbAsyncRetention(pVnode->pTsdb, now, &taskid); - TSDB_CHECK_CODE(code, lino, _exit); - } - -_exit: - return code; + return tsdbRetention(pVnode->pTsdb, now, pVnode->config.sttTrigger == 1); } \ No newline at end of file From cfe319ba998b559c7037fb10119c94d35f8ded0e Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Tue, 1 Aug 2023 11:55:42 +0800 Subject: [PATCH 52/83] docs: fix qstudio links (#22273) * docs: add qstudio in 3rd parties list * docs: fix qstudio link --- docs/en/20-third-party/50-qstudio.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/20-third-party/50-qstudio.md b/docs/en/20-third-party/50-qstudio.md index 1c30a118fe..8339678a0e 100644 --- a/docs/en/20-third-party/50-qstudio.md +++ b/docs/en/20-third-party/50-qstudio.md @@ -10,7 +10,7 @@ qStudio is a free cross-platform SQL data analysis tool that allows easy browsin To connect TDengine using qStudio, you need to complete the following preparations: -- Install qStudio: qStudio supports major operating systems, including Windows, macOS, and Linux. Please ensure you download the correct installation package for your platform from the download page (https://www.timestored.com/qstudio/download/). +- Install qStudio: qStudio supports major operating systems, including Windows, macOS, and Linux. Please ensure you download the correct installation package for your platform from the [download page](https://www.timestored.com/qstudio/download/). - Set up TDengine instance: Make sure TDengine is installed and running correctly, and the taosAdapter is installed and running. For detailed information, refer to the taosAdapter User Manual. ## Connecting to TDengine with qStudio @@ -35,6 +35,6 @@ To connect TDengine using qStudio, you need to complete the following preparatio ![qStudio SQL Commands](./qstudio/qstudio-sql-execution.webp) -6. qStudio supports charting functions based on the data. For more information, please refer to the qStudio documentation (https://www.timestored.com/qstudio/help). +6. qStudio supports charting functions based on the data. For more information, please refer to the [qStudio documentation](https://www.timestored.com/qstudio/help). ![qStudio Chart](./qstudio/qstudio-chart.webp) From 0666baaf0696f8c36582193ddf0355deebea0586 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Tue, 1 Aug 2023 13:37:47 +0800 Subject: [PATCH 53/83] fix: wget check if file exists --- tests/docs-examples-test/test_R.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/docs-examples-test/test_R.sh b/tests/docs-examples-test/test_R.sh index bc850ecd6e..707ea02704 100755 --- a/tests/docs-examples-test/test_R.sh +++ b/tests/docs-examples-test/test_R.sh @@ -6,7 +6,7 @@ pgrep taosd || taosd >> /dev/null 2>&1 & pgrep taosadapter || taosadapter >> /dev/null 2>&1 & cd ../../docs/examples/R -wget https://repo1.maven.org/maven2/com/taosdata/jdbc/taos-jdbcdriver/3.2.4/taos-jdbcdriver-3.2.4-dist.jar +wget -N https://repo1.maven.org/maven2/com/taosdata/jdbc/taos-jdbcdriver/3.2.4/taos-jdbcdriver-3.2.4-dist.jar jar_path=`find . -name taos-jdbcdriver-*-dist.jar` echo jar_path=$jar_path From 872844592e31d08aec4ae96e5f0785ee9710b4af Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Tue, 1 Aug 2023 13:39:20 +0800 Subject: [PATCH 54/83] test: add readme.txt --- docs/examples/R/readme.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/examples/R/readme.txt diff --git a/docs/examples/R/readme.txt b/docs/examples/R/readme.txt new file mode 100644 index 0000000000..131a324aa4 --- /dev/null +++ b/docs/examples/R/readme.txt @@ -0,0 +1 @@ +apt install -y libbz2-dev libpcre2-dev libicu-dev From f1e0e6491803d2a3c5ca609ff07738045cc30b05 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Tue, 1 Aug 2023 14:31:41 +0800 Subject: [PATCH 55/83] fix(stream): add more check. --- source/libs/stream/src/streamExec.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/libs/stream/src/streamExec.c b/source/libs/stream/src/streamExec.c index c83e29ae2f..bbd26d0442 100644 --- a/source/libs/stream/src/streamExec.c +++ b/source/libs/stream/src/streamExec.c @@ -304,11 +304,12 @@ static int32_t streamDoTransferStateToStreamTask(SStreamTask* pTask) { STimeWindow* pTimeWindow = &pStreamTask->dataRange.window; + // todo. the dropping status should be append to the status after the halt completed. // It must be halted for a source stream task, since when the related scan-history-data task start scan the history - // for the step 2. For a agg task + // for the step 2. int8_t status = pStreamTask->status.taskStatus; if (pStreamTask->info.taskLevel == TASK_LEVEL__SOURCE) { - ASSERT(status == TASK_STATUS__HALT); + ASSERT(status == TASK_STATUS__HALT || status == TASK_STATUS__DROPPING); } else { ASSERT(status == TASK_STATUS__SCAN_HISTORY); pStreamTask->status.taskStatus = TASK_STATUS__HALT; From 2caaae392a11fb19cdeb70f6736ceebd07a3704f Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Tue, 1 Aug 2023 06:38:30 +0000 Subject: [PATCH 56/83] add keep alive parameter --- include/common/tglobal.h | 1 + source/common/src/tglobal.c | 66 ++++++++++++++++++++------- source/libs/transport/inc/transComm.h | 2 +- source/libs/transport/src/transCli.c | 6 +-- source/libs/transport/src/transComm.c | 4 +- source/libs/transport/src/transSvr.c | 2 +- 6 files changed, 57 insertions(+), 24 deletions(-) diff --git a/include/common/tglobal.h b/include/common/tglobal.h index 4f2ed2b065..c1addd9481 100644 --- a/include/common/tglobal.h +++ b/include/common/tglobal.h @@ -58,6 +58,7 @@ extern int32_t tsTagFilterResCacheSize; extern int32_t tsNumOfRpcThreads; extern int32_t tsNumOfRpcSessions; extern int32_t tsTimeToGetAvailableConn; +extern int32_t tsKeepAliveIdle; extern int32_t tsNumOfCommitThreads; extern int32_t tsNumOfTaskQueueThreads; extern int32_t tsNumOfMnodeQueryThreads; diff --git a/source/common/src/tglobal.c b/source/common/src/tglobal.c index f06eeb230f..e64774ba9c 100644 --- a/source/common/src/tglobal.c +++ b/source/common/src/tglobal.c @@ -14,8 +14,8 @@ */ #define _DEFAULT_SOURCE -#include "os.h" #include "tglobal.h" +#include "os.h" #include "tconfig.h" #include "tgrant.h" #include "tlog.h" @@ -49,6 +49,8 @@ bool tsPrintAuth = false; int32_t tsNumOfRpcThreads = 1; int32_t tsNumOfRpcSessions = 10000; int32_t tsTimeToGetAvailableConn = 500000; +int32_t tsKeepAliveIdle = 60; + int32_t tsNumOfCommitThreads = 2; int32_t tsNumOfTaskQueueThreads = 4; int32_t tsNumOfMnodeQueryThreads = 4; @@ -63,7 +65,7 @@ int32_t tsNumOfQnodeFetchThreads = 1; int32_t tsNumOfSnodeStreamThreads = 4; int32_t tsNumOfSnodeWriteThreads = 1; int32_t tsMaxStreamBackendCache = 128; // M -int32_t tsPQSortMemThreshold = 16; // M +int32_t tsPQSortMemThreshold = 16; // M // sync raft int32_t tsElectInterval = 25 * 1000; @@ -119,8 +121,8 @@ int32_t tsQueryPolicy = 1; int32_t tsQueryRspPolicy = 0; int64_t tsQueryMaxConcurrentTables = 200; // unit is TSDB_TABLE_NUM_UNIT bool tsEnableQueryHb = true; -bool tsEnableScience = false; // on taos-cli show float and doulbe with scientific notation if true -bool tsTtlChangeOnWrite = false; // ttl delete time changes on last write if true +bool tsEnableScience = false; // on taos-cli show float and doulbe with scientific notation if true +bool tsTtlChangeOnWrite = false; // ttl delete time changes on last write if true int32_t tsQuerySmaOptimize = 0; int32_t tsQueryRsmaTolerance = 1000; // the tolerance time (ms) to judge from which level to query rsma data. bool tsQueryPlannerTrace = false; @@ -372,7 +374,9 @@ static int32_t taosAddClientCfg(SConfig *pCfg) { if (cfgAddInt32(pCfg, "maxRetryWaitTime", tsMaxRetryWaitTime, 0, 86400000, CFG_SCOPE_BOTH) != 0) return -1; if (cfgAddBool(pCfg, "useAdapter", tsUseAdapter, CFG_SCOPE_CLIENT) != 0) return -1; if (cfgAddBool(pCfg, "crashReporting", tsEnableCrashReport, CFG_SCOPE_SERVER) != 0) return -1; - if (cfgAddInt64(pCfg, "queryMaxConcurrentTables", tsQueryMaxConcurrentTables, INT64_MIN, INT64_MAX, CFG_SCOPE_CLIENT) != 0) return -1; + if (cfgAddInt64(pCfg, "queryMaxConcurrentTables", tsQueryMaxConcurrentTables, INT64_MIN, INT64_MAX, + CFG_SCOPE_CLIENT) != 0) + return -1; if (cfgAddInt32(pCfg, "metaCacheMaxSize", tsMetaCacheMaxSize, -1, INT32_MAX, CFG_SCOPE_CLIENT) != 0) return -1; if (cfgAddInt32(pCfg, "slowLogThreshold", tsSlowLogThreshold, 0, INT32_MAX, CFG_SCOPE_CLIENT) != 0) return -1; if (cfgAddString(pCfg, "slowLogScope", "", CFG_SCOPE_CLIENT) != 0) return -1; @@ -385,7 +389,11 @@ static int32_t taosAddClientCfg(SConfig *pCfg) { if (cfgAddInt32(pCfg, "numOfRpcSessions", tsNumOfRpcSessions, 1, 100000, CFG_SCOPE_BOTH) != 0) return -1; tsTimeToGetAvailableConn = TRANGE(tsTimeToGetAvailableConn, 20, 10000000); - if (cfgAddInt32(pCfg, "timeToGetAvailableConn", tsTimeToGetAvailableConn, 20, 1000000, CFG_SCOPE_BOTH) != 0) return -1; + if (cfgAddInt32(pCfg, "timeToGetAvailableConn", tsTimeToGetAvailableConn, 20, 1000000, CFG_SCOPE_BOTH) != 0) + return -1; + + tsKeepAliveIdle = TRANGE(tsKeepAliveIdle, 1, 72000); + if (cfgAddInt32(pCfg, "keepAliveIdle", tsKeepAliveIdle, 1, 7200000, CFG_SCOPE_BOTH) != 0) return -1; tsNumOfTaskQueueThreads = tsNumOfCores / 2; tsNumOfTaskQueueThreads = TMAX(tsNumOfTaskQueueThreads, 4); @@ -445,7 +453,9 @@ static int32_t taosAddServerCfg(SConfig *pCfg) { if (cfgAddInt32(pCfg, "statusInterval", tsStatusInterval, 1, 30, CFG_SCOPE_SERVER) != 0) return -1; if (cfgAddInt32(pCfg, "minSlidingTime", tsMinSlidingTime, 1, 1000000, CFG_SCOPE_CLIENT) != 0) return -1; if (cfgAddInt32(pCfg, "minIntervalTime", tsMinIntervalTime, 1, 1000000, CFG_SCOPE_CLIENT) != 0) return -1; - if (cfgAddInt32(pCfg, "maxNumOfDistinctRes", tsMaxNumOfDistinctResults, 10 * 10000, 10000 * 10000, CFG_SCOPE_SERVER) != 0) return -1; + if (cfgAddInt32(pCfg, "maxNumOfDistinctRes", tsMaxNumOfDistinctResults, 10 * 10000, 10000 * 10000, + CFG_SCOPE_SERVER) != 0) + return -1; if (cfgAddInt32(pCfg, "countAlwaysReturnValue", tsCountAlwaysReturnValue, 0, 1, CFG_SCOPE_BOTH) != 0) return -1; if (cfgAddInt32(pCfg, "queryBufferSize", tsQueryBufferSize, -1, 500000000000, CFG_SCOPE_SERVER) != 0) return -1; if (cfgAddBool(pCfg, "printAuth", tsPrintAuth, CFG_SCOPE_SERVER) != 0) return -1; @@ -461,6 +471,9 @@ static int32_t taosAddServerCfg(SConfig *pCfg) { tsTimeToGetAvailableConn = TRANGE(tsTimeToGetAvailableConn, 20, 1000000); if (cfgAddInt32(pCfg, "timeToGetAvailableConn", tsNumOfRpcSessions, 20, 1000000, CFG_SCOPE_BOTH) != 0) return -1; + tsKeepAliveIdle = TRANGE(tsKeepAliveIdle, 1, 72000); + if (cfgAddInt32(pCfg, "keepAliveIdle", tsKeepAliveIdle, 1, 7200000, CFG_SCOPE_BOTH) != 0) return -1; + tsNumOfCommitThreads = tsNumOfCores / 2; tsNumOfCommitThreads = TRANGE(tsNumOfCommitThreads, 2, 4); if (cfgAddInt32(pCfg, "numOfCommitThreads", tsNumOfCommitThreads, 1, 1024, CFG_SCOPE_SERVER) != 0) return -1; @@ -473,7 +486,8 @@ static int32_t taosAddServerCfg(SConfig *pCfg) { tsNumOfVnodeQueryThreads = TMAX(tsNumOfVnodeQueryThreads, 4); if (cfgAddInt32(pCfg, "numOfVnodeQueryThreads", tsNumOfVnodeQueryThreads, 4, 1024, CFG_SCOPE_SERVER) != 0) return -1; - if (cfgAddFloat(pCfg, "ratioOfVnodeStreamThreads", tsRatioOfVnodeStreamThreads, 0.01, 100, CFG_SCOPE_SERVER) != 0) return -1; + if (cfgAddFloat(pCfg, "ratioOfVnodeStreamThreads", tsRatioOfVnodeStreamThreads, 0.01, 100, CFG_SCOPE_SERVER) != 0) + return -1; tsNumOfVnodeFetchThreads = tsNumOfCores / 4; tsNumOfVnodeFetchThreads = TMAX(tsNumOfVnodeFetchThreads, 4); @@ -493,7 +507,8 @@ static int32_t taosAddServerCfg(SConfig *pCfg) { tsNumOfSnodeStreamThreads = tsNumOfCores / 4; tsNumOfSnodeStreamThreads = TRANGE(tsNumOfSnodeStreamThreads, 2, 4); - if (cfgAddInt32(pCfg, "numOfSnodeSharedThreads", tsNumOfSnodeStreamThreads, 2, 1024, CFG_SCOPE_SERVER) != 0) return -1; + if (cfgAddInt32(pCfg, "numOfSnodeSharedThreads", tsNumOfSnodeStreamThreads, 2, 1024, CFG_SCOPE_SERVER) != 0) + return -1; tsNumOfSnodeWriteThreads = tsNumOfCores / 4; tsNumOfSnodeWriteThreads = TRANGE(tsNumOfSnodeWriteThreads, 2, 4); @@ -501,14 +516,18 @@ static int32_t taosAddServerCfg(SConfig *pCfg) { tsRpcQueueMemoryAllowed = tsTotalMemoryKB * 1024 * 0.1; tsRpcQueueMemoryAllowed = TRANGE(tsRpcQueueMemoryAllowed, TSDB_MAX_MSG_SIZE * 10LL, TSDB_MAX_MSG_SIZE * 10000LL); - if (cfgAddInt64(pCfg, "rpcQueueMemoryAllowed", tsRpcQueueMemoryAllowed, TSDB_MAX_MSG_SIZE * 10L, INT64_MAX, CFG_SCOPE_BOTH) != 0) + if (cfgAddInt64(pCfg, "rpcQueueMemoryAllowed", tsRpcQueueMemoryAllowed, TSDB_MAX_MSG_SIZE * 10L, INT64_MAX, + CFG_SCOPE_BOTH) != 0) return -1; if (cfgAddInt32(pCfg, "syncElectInterval", tsElectInterval, 10, 1000 * 60 * 24 * 2, CFG_SCOPE_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "syncHeartbeatInterval", tsHeartbeatInterval, 10, 1000 * 60 * 24 * 2, CFG_SCOPE_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "syncHeartbeatTimeout", tsHeartbeatTimeout, 10, 1000 * 60 * 24 * 2, CFG_SCOPE_SERVER) != 0) return -1; + if (cfgAddInt32(pCfg, "syncHeartbeatInterval", tsHeartbeatInterval, 10, 1000 * 60 * 24 * 2, CFG_SCOPE_SERVER) != 0) + return -1; + if (cfgAddInt32(pCfg, "syncHeartbeatTimeout", tsHeartbeatTimeout, 10, 1000 * 60 * 24 * 2, CFG_SCOPE_SERVER) != 0) + return -1; - if (cfgAddInt64(pCfg, "vndCommitMaxInterval", tsVndCommitMaxIntervalMs, 1000, 1000 * 60 * 60, CFG_SCOPE_SERVER) != 0) return -1; + if (cfgAddInt64(pCfg, "vndCommitMaxInterval", tsVndCommitMaxIntervalMs, 1000, 1000 * 60 * 60, CFG_SCOPE_SERVER) != 0) + return -1; if (cfgAddInt64(pCfg, "mndSdbWriteDelta", tsMndSdbWriteDelta, 20, 10000, CFG_SCOPE_SERVER) != 0) return -1; if (cfgAddInt64(pCfg, "mndLogRetention", tsMndLogRetention, 500, 10000, CFG_SCOPE_SERVER) != 0) return -1; @@ -538,7 +557,8 @@ static int32_t taosAddServerCfg(SConfig *pCfg) { if (cfgAddInt32(pCfg, "uptimeInterval", tsUptimeInterval, 1, 100000, CFG_SCOPE_SERVER) != 0) return -1; if (cfgAddInt32(pCfg, "queryRsmaTolerance", tsQueryRsmaTolerance, 0, 900000, CFG_SCOPE_SERVER) != 0) return -1; - if (cfgAddInt64(pCfg, "walFsyncDataSizeLimit", tsWalFsyncDataSizeLimit, 100 * 1024 * 1024, INT64_MAX, CFG_SCOPE_SERVER) != 0) + if (cfgAddInt64(pCfg, "walFsyncDataSizeLimit", tsWalFsyncDataSizeLimit, 100 * 1024 * 1024, INT64_MAX, + CFG_SCOPE_SERVER) != 0) return -1; if (cfgAddBool(pCfg, "udf", tsStartUdfd, CFG_SCOPE_SERVER) != 0) return -1; @@ -549,7 +569,8 @@ static int32_t taosAddServerCfg(SConfig *pCfg) { if (cfgAddInt64(pCfg, "streamBufferSize", tsStreamBufferSize, 0, INT64_MAX, CFG_SCOPE_SERVER) != 0) return -1; if (cfgAddInt64(pCfg, "checkpointInterval", tsCheckpointInterval, 0, INT64_MAX, CFG_SCOPE_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "cacheLazyLoadThreshold", tsCacheLazyLoadThreshold, 0, 100000, CFG_SCOPE_SERVER) != 0) return -1; + if (cfgAddInt32(pCfg, "cacheLazyLoadThreshold", tsCacheLazyLoadThreshold, 0, 100000, CFG_SCOPE_SERVER) != 0) + return -1; if (cfgAddBool(pCfg, "filterScalarMode", tsFilterScalarMode, CFG_SCOPE_SERVER) != 0) return -1; if (cfgAddInt32(pCfg, "keepTimeOffset", tsKeepTimeOffset, 0, 23, CFG_SCOPE_SERVER) != 0) return -1; @@ -604,6 +625,13 @@ static int32_t taosUpdateServerCfg(SConfig *pCfg) { pItem->stype = stype; } + pItem = cfgGetItem(tsCfg, "keepAliveIdle"); + if (pItem != NULL && pItem->stype == CFG_STYPE_DEFAULT) { + tsKeepAliveIdle = TRANGE(tsKeepAliveIdle, 1, 720000); + pItem->i32 = tsKeepAliveIdle; + pItem->stype = stype; + } + pItem = cfgGetItem(tsCfg, "numOfCommitThreads"); if (pItem != NULL && pItem->stype == CFG_STYPE_DEFAULT) { tsNumOfCommitThreads = numOfCores / 2; @@ -833,6 +861,8 @@ static int32_t taosSetClientCfg(SConfig *pCfg) { tsNumOfRpcSessions = cfgGetItem(pCfg, "numOfRpcSessions")->i32; tsTimeToGetAvailableConn = cfgGetItem(pCfg, "timeToGetAvailableConn")->i32; + + tsKeepAliveIdle = cfgGetItem(pCfg, "keepAliveIdle")->i32; return 0; } @@ -872,6 +902,8 @@ static int32_t taosSetServerCfg(SConfig *pCfg) { tsNumOfRpcSessions = cfgGetItem(pCfg, "numOfRpcSessions")->i32; tsTimeToGetAvailableConn = cfgGetItem(pCfg, "timeToGetAvailableConn")->i32; + tsKeepAliveIdle = cfgGetItem(pCfg, "keepAliveIdle")->i32; + tsNumOfCommitThreads = cfgGetItem(pCfg, "numOfCommitThreads")->i32; tsNumOfMnodeReadThreads = cfgGetItem(pCfg, "numOfMnodeReadThreads")->i32; tsNumOfVnodeQueryThreads = cfgGetItem(pCfg, "numOfVnodeQueryThreads")->i32; @@ -902,7 +934,7 @@ static int32_t taosSetServerCfg(SConfig *pCfg) { tstrncpy(tsTelemServer, cfgGetItem(pCfg, "telemetryServer")->str, TSDB_FQDN_LEN); tsTelemPort = (uint16_t)cfgGetItem(pCfg, "telemetryPort")->i32; - tmqMaxTopicNum= cfgGetItem(pCfg, "tmqMaxTopicNum")->i32; + tmqMaxTopicNum = cfgGetItem(pCfg, "tmqMaxTopicNum")->i32; tsTransPullupInterval = cfgGetItem(pCfg, "transPullupInterval")->i32; tsMqRebalanceInterval = cfgGetItem(pCfg, "mqRebalanceInterval")->i32; @@ -1014,7 +1046,7 @@ int32_t taosApplyLocalCfg(SConfig *pCfg, char *name) { taosSetCoreDump(enableCore); } else if (strcasecmp("enableQueryHb", name) == 0) { tsEnableQueryHb = cfgGetItem(pCfg, "enableQueryHb")->bval; - } else if (strcasecmp("ttlChangeOnWrite", name) == 0) { + } else if (strcasecmp("ttlChangeOnWrite", name) == 0) { tsTtlChangeOnWrite = cfgGetItem(pCfg, "ttlChangeOnWrite")->bval; } break; diff --git a/source/libs/transport/inc/transComm.h b/source/libs/transport/inc/transComm.h index 3b304e2c77..a6b7a20f76 100644 --- a/source/libs/transport/inc/transComm.h +++ b/source/libs/transport/inc/transComm.h @@ -293,7 +293,7 @@ bool transReadComplete(SConnBuffer* connBuf); int transResetBuffer(SConnBuffer* connBuf); int transDumpFromBuffer(SConnBuffer* connBuf, char** buf); -int transSetConnOption(uv_tcp_t* stream); +int transSetConnOption(uv_tcp_t* stream, int keepalive); void transRefSrvHandle(void* handle); void transUnrefSrvHandle(void* handle); diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index 01223a2be9..71379daa50 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -1202,7 +1202,7 @@ static void cliHandleBatchReq(SCliBatch* pBatch, SCliThrd* pThrd) { cliHandleFastFail(conn, -1); return; } - ret = transSetConnOption((uv_tcp_t*)conn->stream); + ret = transSetConnOption((uv_tcp_t*)conn->stream, 20); if (ret != 0) { tError("%s conn %p failed to set socket opt, reason:%s", transLabel(pTransInst), conn, uv_err_name(ret)); cliHandleFastFail(conn, -1); @@ -1610,7 +1610,7 @@ void cliHandleReq(SCliMsg* pMsg, SCliThrd* pThrd) { tGTrace("%s conn %p try to connect to %s", pTransInst->label, conn, conn->dstAddr); pThrd->newConnCount++; - int32_t fd = taosCreateSocketWithTimeout(TRANS_CONN_TIMEOUT * 4); + int32_t fd = taosCreateSocketWithTimeout(TRANS_CONN_TIMEOUT * 10); if (fd == -1) { tGError("%s conn %p failed to create socket, reason:%s", transLabel(pTransInst), conn, tstrerror(TAOS_SYSTEM_ERROR(errno))); @@ -1624,7 +1624,7 @@ void cliHandleReq(SCliMsg* pMsg, SCliThrd* pThrd) { cliHandleExcept(conn); return; } - ret = transSetConnOption((uv_tcp_t*)conn->stream); + ret = transSetConnOption((uv_tcp_t*)conn->stream, tsKeepAliveIdle); if (ret != 0) { tGError("%s conn %p failed to set socket opt, reason:%s", transLabel(pTransInst), conn, uv_err_name(ret)); cliHandleExcept(conn); diff --git a/source/libs/transport/src/transComm.c b/source/libs/transport/src/transComm.c index b14db9497e..5e602b1ea2 100644 --- a/source/libs/transport/src/transComm.c +++ b/source/libs/transport/src/transComm.c @@ -203,10 +203,10 @@ bool transReadComplete(SConnBuffer* connBuf) { return (p->left == 0 || p->invalid) ? true : false; } -int transSetConnOption(uv_tcp_t* stream) { +int transSetConnOption(uv_tcp_t* stream, int keepalive) { #if defined(WINDOWS) || defined(DARWIN) #else - uv_tcp_keepalive(stream, 1, 20); + uv_tcp_keepalive(stream, 1, keepalive); #endif return uv_tcp_nodelay(stream, 1); // int ret = uv_tcp_keepalive(stream, 5, 60); diff --git a/source/libs/transport/src/transSvr.c b/source/libs/transport/src/transSvr.c index f23e176c79..a546ee8159 100644 --- a/source/libs/transport/src/transSvr.c +++ b/source/libs/transport/src/transSvr.c @@ -760,7 +760,7 @@ void uvOnConnectionCb(uv_stream_t* q, ssize_t nread, const uv_buf_t* buf) { uv_tcp_init(pThrd->loop, pConn->pTcp); pConn->pTcp->data = pConn; - transSetConnOption((uv_tcp_t*)pConn->pTcp); + // transSetConnOption((uv_tcp_t*)pConn->pTcp); if (uv_accept(q, (uv_stream_t*)(pConn->pTcp)) == 0) { uv_os_fd_t fd; From 07c40943a4fd832d09de8a0b2a83191930898ff2 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Tue, 1 Aug 2023 15:01:06 +0800 Subject: [PATCH 57/83] fix: TD-25408 --- source/dnode/vnode/src/tsdb/tsdbDataFileRW.c | 12 +++++++++++- source/dnode/vnode/src/tsdb/tsdbSttFileRW.c | 5 +++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c b/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c index 9d07bcb446..dc5e3649cc 100644 --- a/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c +++ b/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c @@ -1229,11 +1229,16 @@ static int32_t tsdbDataFileDoWriteTombRecord(SDataFileWriter *writer, const STom int32_t c = tTombRecordCompare(record, record1); if (c < 0) { - break; + goto _write; } else if (c > 0) { code = tTombBlockPut(writer->tombBlock, record1); TSDB_CHECK_CODE(code, lino, _exit); + tsdbTrace("vgId:%d write tomb record to tomb file:%s, cid:%" PRId64 ", suid:%" PRId64 ", uid:%" PRId64 + ", version:%" PRId64, + TD_VID(writer->config->tsdb->pVnode), writer->fd[TSDB_FTYPE_TOMB]->path, writer->config->cid, + record1->suid, record1->uid, record1->version); + if (TOMB_BLOCK_SIZE(writer->tombBlock) >= writer->config->maxRow) { code = tsdbDataFileDoWriteTombBlock(writer); TSDB_CHECK_CODE(code, lino, _exit); @@ -1266,6 +1271,11 @@ _write: code = tTombBlockPut(writer->tombBlock, record); TSDB_CHECK_CODE(code, lino, _exit); + tsdbTrace("vgId:%d write tomb record to tomb file:%s, cid:%" PRId64 ", suid:%" PRId64 ", uid:%" PRId64 + ", version:%" PRId64, + TD_VID(writer->config->tsdb->pVnode), writer->fd[TSDB_FTYPE_TOMB]->path, writer->config->cid, record->suid, + record->uid, record->version); + if (TOMB_BLOCK_SIZE(writer->tombBlock) >= writer->config->maxRow) { code = tsdbDataFileDoWriteTombBlock(writer); TSDB_CHECK_CODE(code, lino, _exit); diff --git a/source/dnode/vnode/src/tsdb/tsdbSttFileRW.c b/source/dnode/vnode/src/tsdb/tsdbSttFileRW.c index db8d14d228..d4989ac5e9 100644 --- a/source/dnode/vnode/src/tsdb/tsdbSttFileRW.c +++ b/source/dnode/vnode/src/tsdb/tsdbSttFileRW.c @@ -975,6 +975,11 @@ int32_t tsdbSttFileWriteTombRecord(SSttFileWriter *writer, const STombRecord *re _exit: if (code) { TSDB_ERROR_LOG(TD_VID(writer->config->tsdb->pVnode), lino, code); + } else { + tsdTrace("vgId:%d write tomb record to stt file:%s, cid:%" PRId64 ", suid:%" PRId64 ", uid:%" PRId64 + ", version:%" PRId64, + TD_VID(writer->config->tsdb->pVnode), writer->fd->path, writer->config->cid, record->suid, record->uid, + record->version); } return code; } From 78c23f407e03ea0cf02779f51f3f0b04be5c8968 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Tue, 1 Aug 2023 15:04:14 +0800 Subject: [PATCH 58/83] fix compile issue --- source/dnode/vnode/src/tsdb/tsdbSttFileRW.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbSttFileRW.c b/source/dnode/vnode/src/tsdb/tsdbSttFileRW.c index d4989ac5e9..27fae9dc6e 100644 --- a/source/dnode/vnode/src/tsdb/tsdbSttFileRW.c +++ b/source/dnode/vnode/src/tsdb/tsdbSttFileRW.c @@ -976,10 +976,10 @@ _exit: if (code) { TSDB_ERROR_LOG(TD_VID(writer->config->tsdb->pVnode), lino, code); } else { - tsdTrace("vgId:%d write tomb record to stt file:%s, cid:%" PRId64 ", suid:%" PRId64 ", uid:%" PRId64 - ", version:%" PRId64, - TD_VID(writer->config->tsdb->pVnode), writer->fd->path, writer->config->cid, record->suid, record->uid, - record->version); + tsdbTrace("vgId:%d write tomb record to stt file:%s, cid:%" PRId64 ", suid:%" PRId64 ", uid:%" PRId64 + ", version:%" PRId64, + TD_VID(writer->config->tsdb->pVnode), writer->fd->path, writer->config->cid, record->suid, record->uid, + record->version); } return code; } From b3fae65d901fb3f1d1b4a0b12ae74284dbe72d0f Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 1 Aug 2023 15:53:42 +0800 Subject: [PATCH 59/83] enh(tsdb/cache/read): lazy init table map hash and entries --- source/dnode/vnode/src/tsdb/tsdbCache.c | 39 +++++++++++++++++---- source/dnode/vnode/src/tsdb/tsdbCacheRead.c | 15 +------- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index a5b5dea505..5a384c6bb5 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -1592,6 +1592,29 @@ _err: return code; } +static void freeTableInfoFunc(void *param) { + void **p = (void **)param; + taosMemoryFreeClear(*p); +} + +static STableLoadInfo *getTableLoadInfo(SCacheRowsReader *pReader, uint64_t uid) { + STableLoadInfo *pInfo = NULL; + + if (!pReader->pTableMap) { + pReader->pTableMap = tSimpleHashInit(pReader->numOfTables, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT)); + + tSimpleHashSetFreeFp(pReader->pTableMap, freeTableInfoFunc); + } + + pInfo = *(STableLoadInfo **)tSimpleHashGet(pReader->pTableMap, &uid, sizeof(uid)); + if (!pInfo) { + pInfo = taosMemoryCalloc(1, sizeof(STableLoadInfo)); + tSimpleHashPut(pReader->pTableMap, &uid, sizeof(uint64_t), &pInfo, POINTER_BYTES); + } + + return pInfo; +} + static int32_t loadTombFromBlk(const TTombBlkArray *pTombBlkArray, SCacheRowsReader *pReader, void *pFileReader, bool isFile) { int32_t code = 0; @@ -1618,7 +1641,7 @@ static int32_t loadTombFromBlk(const TTombBlkArray *pTombBlkArray, SCacheRowsRea } uint64_t uid = uidList[j]; - STableLoadInfo *pInfo = *(STableLoadInfo **)tSimpleHashGet(pReader->pTableMap, &uid, sizeof(uid)); + STableLoadInfo *pInfo = getTableLoadInfo(pReader, uid); if (pInfo->pTombData == NULL) { pInfo->pTombData = taosArrayInit(4, sizeof(SDelData)); } @@ -1660,13 +1683,16 @@ static int32_t loadTombFromBlk(const TTombBlkArray *pTombBlkArray, SCacheRowsRea } if (newTable) { - pInfo = *(STableLoadInfo **)tSimpleHashGet(pReader->pTableMap, &uid, sizeof(uid)); + pInfo = getTableLoadInfo(pReader, uid); if (pInfo->pTombData == NULL) { pInfo->pTombData = taosArrayInit(4, sizeof(SDelData)); } } if (record.version <= pReader->info.verRange.maxVer) { + tsdbError("tomb xx load/cache: vgId:%d fid:%d commit %" PRId64 "~%" PRId64 "~%" PRId64 " tomb records", + TD_VID(pReader->pTsdb->pVnode), pReader->pCurFileSet->fid, record.skey, record.ekey, uid); + SDelData delData = {.version = record.version, .sKey = record.skey, .eKey = record.ekey}; taosArrayPush(pInfo->pTombData, &delData); } @@ -2458,13 +2484,14 @@ static int32_t nextRowIterGet(CacheNextRowIter *pIter, TSDBROW **ppRow, bool *pI pIter->pSkyline = taosArrayInit(32, sizeof(TSDBKEY)); uint64_t uid = pIter->idx.uid; - STableLoadInfo *pInfo = *(STableLoadInfo **)tSimpleHashGet(pIter->pr->pTableMap, &uid, sizeof(uid)); + STableLoadInfo *pInfo = getTableLoadInfo(pIter->pr, uid); SArray *pTombData = pInfo->pTombData; - if (pTombData) { - taosArrayAddAll(pTombData, pIter->pMemDelData); - code = tsdbBuildDeleteSkyline(pTombData, 0, (int32_t)(TARRAY_SIZE(pTombData) - 1), pIter->pSkyline); + if (pTombData) { + taosArrayAddAll(pIter->pMemDelData, pTombData); } + code = tsdbBuildDeleteSkyline(pIter->pMemDelData, 0, (int32_t)(TARRAY_SIZE(pIter->pMemDelData) - 1), + pIter->pSkyline); pIter->iSkyline = taosArrayGetSize(pIter->pSkyline) - 1; } diff --git a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c index f17041e98b..eb899fb82c 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c @@ -143,11 +143,6 @@ static int32_t uidComparFunc(const void* p1, const void* p2) { } } -static void freeTableInfoFunc(void* param) { - void** p = (void**)param; - taosMemoryFreeClear(*p); -} - int32_t tsdbCacherowsReaderOpen(void* pVnode, int32_t type, void* pTableIdList, int32_t numOfTables, int32_t numOfCols, SArray* pCidList, int32_t* pSlotIds, uint64_t suid, void** pReader, const char* idstr) { *pReader = NULL; @@ -173,25 +168,17 @@ int32_t tsdbCacherowsReaderOpen(void* pVnode, int32_t type, void* pTableIdList, p->pTableList = pTableIdList; p->numOfTables = numOfTables; - p->pTableMap = tSimpleHashInit(numOfTables, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT)); - if (p->pTableMap == NULL) { - tsdbCacherowsReaderClose(p); - return TSDB_CODE_OUT_OF_MEMORY; - } p->uidList = taosMemoryMalloc(numOfTables * sizeof(uint64_t)); if (p->uidList == NULL) { tsdbCacherowsReaderClose(p); return TSDB_CODE_OUT_OF_MEMORY; } + for (int32_t i = 0; i < numOfTables; ++i) { uint64_t uid = p->pTableList[i].uid; p->uidList[i] = uid; - STableLoadInfo* pInfo = taosMemoryCalloc(1, sizeof(STableLoadInfo)); - tSimpleHashPut(p->pTableMap, &uid, sizeof(uint64_t), &pInfo, POINTER_BYTES); } - tSimpleHashSetFreeFp(p->pTableMap, freeTableInfoFunc); - taosSort(p->uidList, numOfTables, sizeof(uint64_t), uidComparFunc); int32_t code = setTableSchema(p, suid, idstr); From c0a0e075978224f6fd39c3c2263aec79f5466015 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 1 Aug 2023 16:02:09 +0800 Subject: [PATCH 60/83] cache/read: lazy init uidList when laoding from tsdb --- source/dnode/vnode/src/tsdb/tsdbCache.c | 29 ++++++++++++++++++++- source/dnode/vnode/src/tsdb/tsdbCacheRead.c | 23 ---------------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 5a384c6bb5..62c61dd397 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -1615,10 +1615,37 @@ static STableLoadInfo *getTableLoadInfo(SCacheRowsReader *pReader, uint64_t uid) return pInfo; } +static int32_t uidComparFunc(const void *p1, const void *p2) { + uint64_t pu1 = *(uint64_t *)p1; + uint64_t pu2 = *(uint64_t *)p2; + if (pu1 == pu2) { + return 0; + } else { + return (pu1 < pu2) ? -1 : 1; + } +} + +static uint64_t *getUidList(SCacheRowsReader *pReader) { + if (!pReader->uidList) { + int32_t numOfTables = pReader->numOfTables; + + pReader->uidList = taosMemoryMalloc(numOfTables * sizeof(uint64_t)); + + for (int32_t i = 0; i < numOfTables; ++i) { + uint64_t uid = pReader->pTableList[i].uid; + pReader->uidList[i] = uid; + } + + taosSort(pReader->uidList, numOfTables, sizeof(uint64_t), uidComparFunc); + } + + return pReader->uidList; +} + static int32_t loadTombFromBlk(const TTombBlkArray *pTombBlkArray, SCacheRowsReader *pReader, void *pFileReader, bool isFile) { int32_t code = 0; - uint64_t *uidList = pReader->uidList; + uint64_t *uidList = getUidList(pReader); int32_t numOfTables = pReader->numOfTables; int64_t suid = pReader->info.suid; diff --git a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c index eb899fb82c..d51305f446 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c @@ -133,16 +133,6 @@ int32_t tsdbReuseCacherowsReader(void* reader, void* pTableIdList, int32_t numOf return TSDB_CODE_SUCCESS; } -static int32_t uidComparFunc(const void* p1, const void* p2) { - uint64_t pu1 = *(uint64_t*)p1; - uint64_t pu2 = *(uint64_t*)p2; - if (pu1 == pu2) { - return 0; - } else { - return (pu1 < pu2) ? -1 : 1; - } -} - int32_t tsdbCacherowsReaderOpen(void* pVnode, int32_t type, void* pTableIdList, int32_t numOfTables, int32_t numOfCols, SArray* pCidList, int32_t* pSlotIds, uint64_t suid, void** pReader, const char* idstr) { *pReader = NULL; @@ -168,19 +158,6 @@ int32_t tsdbCacherowsReaderOpen(void* pVnode, int32_t type, void* pTableIdList, p->pTableList = pTableIdList; p->numOfTables = numOfTables; - p->uidList = taosMemoryMalloc(numOfTables * sizeof(uint64_t)); - if (p->uidList == NULL) { - tsdbCacherowsReaderClose(p); - return TSDB_CODE_OUT_OF_MEMORY; - } - - for (int32_t i = 0; i < numOfTables; ++i) { - uint64_t uid = p->pTableList[i].uid; - p->uidList[i] = uid; - } - - taosSort(p->uidList, numOfTables, sizeof(uint64_t), uidComparFunc); - int32_t code = setTableSchema(p, suid, idstr); if (code != TSDB_CODE_SUCCESS) { tsdbCacherowsReaderClose(p); From 72ac5a4e3bae633284465c195119d966ef7b8938 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 1 Aug 2023 16:08:20 +0800 Subject: [PATCH 61/83] tsdb/cache: use read util's uid compare functor --- source/dnode/vnode/src/tsdb/tsdbCache.c | 10 ---------- source/dnode/vnode/src/tsdb/tsdbReadUtil.c | 2 +- source/dnode/vnode/src/tsdb/tsdbReadUtil.h | 2 ++ 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 62c61dd397..adcd47029c 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -1615,16 +1615,6 @@ static STableLoadInfo *getTableLoadInfo(SCacheRowsReader *pReader, uint64_t uid) return pInfo; } -static int32_t uidComparFunc(const void *p1, const void *p2) { - uint64_t pu1 = *(uint64_t *)p1; - uint64_t pu2 = *(uint64_t *)p2; - if (pu1 == pu2) { - return 0; - } else { - return (pu1 < pu2) ? -1 : 1; - } -} - static uint64_t *getUidList(SCacheRowsReader *pReader) { if (!pReader->uidList) { int32_t numOfTables = pReader->numOfTables; diff --git a/source/dnode/vnode/src/tsdb/tsdbReadUtil.c b/source/dnode/vnode/src/tsdb/tsdbReadUtil.c index 635a74d8dd..d560f0d5af 100644 --- a/source/dnode/vnode/src/tsdb/tsdbReadUtil.c +++ b/source/dnode/vnode/src/tsdb/tsdbReadUtil.c @@ -22,7 +22,7 @@ #include "tsdbUtil2.h" #include "tsimplehash.h" -static int32_t uidComparFunc(const void* p1, const void* p2) { +int32_t uidComparFunc(const void* p1, const void* p2) { uint64_t pu1 = *(uint64_t*)p1; uint64_t pu2 = *(uint64_t*)p2; if (pu1 == pu2) { diff --git a/source/dnode/vnode/src/tsdb/tsdbReadUtil.h b/source/dnode/vnode/src/tsdb/tsdbReadUtil.h index 5c4737440d..3bb7b8f3a5 100644 --- a/source/dnode/vnode/src/tsdb/tsdbReadUtil.h +++ b/source/dnode/vnode/src/tsdb/tsdbReadUtil.h @@ -215,6 +215,8 @@ typedef struct SBrinRecordIter { SBrinRecord record; } SBrinRecordIter; +int32_t uidComparFunc(const void* p1, const void* p2); + STableBlockScanInfo* getTableBlockScanInfo(SSHashObj* pTableMap, uint64_t uid, const char* id); SSHashObj* createDataBlockScanInfo(STsdbReader* pTsdbReader, SBlockInfoBuf* pBuf, const STableKeyInfo* idList, From 94b9599f958dcb9c1d34eaab692eaa8f96a07c7b Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 1 Aug 2023 16:39:14 +0800 Subject: [PATCH 62/83] fix null pointer dereference --- source/dnode/vnode/src/tsdb/tsdbCache.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index adcd47029c..401255a660 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -1598,21 +1598,21 @@ static void freeTableInfoFunc(void *param) { } static STableLoadInfo *getTableLoadInfo(SCacheRowsReader *pReader, uint64_t uid) { - STableLoadInfo *pInfo = NULL; - if (!pReader->pTableMap) { pReader->pTableMap = tSimpleHashInit(pReader->numOfTables, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT)); tSimpleHashSetFreeFp(pReader->pTableMap, freeTableInfoFunc); } - pInfo = *(STableLoadInfo **)tSimpleHashGet(pReader->pTableMap, &uid, sizeof(uid)); - if (!pInfo) { - pInfo = taosMemoryCalloc(1, sizeof(STableLoadInfo)); + STableLoadInfo **ppInfo = tSimpleHashGet(pReader->pTableMap, &uid, sizeof(uid)); + if (!ppInfo) { + STableLoadInfo *pInfo = taosMemoryCalloc(1, sizeof(STableLoadInfo)); tSimpleHashPut(pReader->pTableMap, &uid, sizeof(uint64_t), &pInfo, POINTER_BYTES); + + ppInfo = &pInfo; } - return pInfo; + return *ppInfo; } static uint64_t *getUidList(SCacheRowsReader *pReader) { From c997662ba0f51b2f61e1bc0fd26d49cc378e561b Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 1 Aug 2023 16:50:00 +0800 Subject: [PATCH 63/83] tsdb/cache: build skyline only if there's del data --- source/dnode/vnode/src/tsdb/tsdbCache.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 401255a660..7706fbd501 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -2507,9 +2507,11 @@ static int32_t nextRowIterGet(CacheNextRowIter *pIter, TSDBROW **ppRow, bool *pI if (pTombData) { taosArrayAddAll(pIter->pMemDelData, pTombData); } - code = tsdbBuildDeleteSkyline(pIter->pMemDelData, 0, (int32_t)(TARRAY_SIZE(pIter->pMemDelData) - 1), - pIter->pSkyline); + size_t delSize = TARRAY_SIZE(pIter->pMemDelData); + if (delSize > 0) { + code = tsdbBuildDeleteSkyline(pIter->pMemDelData, 0, (int32_t)(delSize - 1), pIter->pSkyline); + } pIter->iSkyline = taosArrayGetSize(pIter->pSkyline) - 1; } From f72f129d411a6a7cabd8d36c2e1685884359643a Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 1 Aug 2023 17:23:53 +0800 Subject: [PATCH 64/83] cache/skyline: cleanup del array --- source/dnode/vnode/src/tsdb/tsdbCache.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 7706fbd501..4ed5c9dcc4 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -2502,15 +2502,15 @@ static int32_t nextRowIterGet(CacheNextRowIter *pIter, TSDBROW **ppRow, bool *pI uint64_t uid = pIter->idx.uid; STableLoadInfo *pInfo = getTableLoadInfo(pIter->pr, uid); - SArray *pTombData = pInfo->pTombData; - - if (pTombData) { - taosArrayAddAll(pIter->pMemDelData, pTombData); + if (pInfo->pTombData == NULL) { + pInfo->pTombData = taosArrayInit(4, sizeof(SDelData)); } - size_t delSize = TARRAY_SIZE(pIter->pMemDelData); + taosArrayAddAll(pInfo->pTombData, pIter->pMemDelData); + + size_t delSize = TARRAY_SIZE(pInfo->pTombData); if (delSize > 0) { - code = tsdbBuildDeleteSkyline(pIter->pMemDelData, 0, (int32_t)(delSize - 1), pIter->pSkyline); + code = tsdbBuildDeleteSkyline(pInfo->pTombData, 0, (int32_t)(delSize - 1), pIter->pSkyline); } pIter->iSkyline = taosArrayGetSize(pIter->pSkyline) - 1; } From 1d5532019fec3053d0a5f5c4b72e2b5441fdb020 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 1 Aug 2023 17:25:15 +0800 Subject: [PATCH 65/83] tsdb/merge-tree: cleanup comment --- source/dnode/vnode/src/tsdb/tsdbMergeTree.c | 1 - 1 file changed, 1 deletion(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c index ea5b574ced..a1bca0ad80 100644 --- a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c +++ b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c @@ -759,7 +759,6 @@ int32_t tMergeTreeOpen2(SMergeTree *pMTree, SMergeTreeConf *pConf) { pMTree->ignoreEarlierTs = false; - // todo handle other level of stt files, here only deal with the first level stt int32_t size = ((STFileSet *)pConf->pCurrentFileset)->lvlArr->size; if (size == 0) { goto _end; From 4716fc6400662098927c0d5d30082c6a332d2bc7 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 1 Aug 2023 17:49:05 +0800 Subject: [PATCH 66/83] cache/fs: remove fs state's tsdb handle --- source/dnode/vnode/src/tsdb/tsdbCache.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 4ed5c9dcc4..57bab6c7f3 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -1835,7 +1835,6 @@ struct CacheNextRowIter; typedef struct SFSNextRowIter { SFSNEXTROWSTATES state; // [input] - STsdb *pTsdb; // [input] SBlockIdx *pBlockIdxExp; // [input] STSchema *pTSchema; // [input] tb_uid_t suid; @@ -1871,6 +1870,7 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow, bool *pIgnoreEarlie int nCols) { SFSNextRowIter *state = (SFSNextRowIter *)iter; int32_t code = 0; + STsdb *pTsdb = state->pr->pTsdb; if (SFSNEXTROW_FS == state->state) { state->nFileSet = TARRAY2_SIZE(state->aDFileSet); @@ -1893,7 +1893,7 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow, bool *pIgnoreEarlie STFileObj **pFileObj = state->pFileSet->farr; if (pFileObj[0] != NULL || pFileObj[3] != NULL) { if (state->pFileSet != state->pr->pCurFileSet) { - SDataFileReaderConfig conf = {.tsdb = state->pTsdb, .szPage = state->pTsdb->pVnode->config.tsdbPageSize}; + SDataFileReaderConfig conf = {.tsdb = pTsdb, .szPage = pTsdb->pVnode->config.tsdbPageSize}; const char *filesName[4] = {0}; if (pFileObj[0] != NULL) { conf.files[0].file = *pFileObj[0]->f; @@ -1963,8 +1963,8 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow, bool *pIgnoreEarlie state->pr->pCurFileSet = state->pFileSet; } - code = lastIterOpen(&state->lastIter, state->pFileSet, state->pTsdb, state->pTSchema, state->suid, state->uid, - state->pr, state->lastTs, aCols, nCols); + code = lastIterOpen(&state->lastIter, state->pFileSet, pTsdb, state->pTSchema, state->suid, state->uid, state->pr, + state->lastTs, aCols, nCols); if (code != TSDB_CODE_SUCCESS) { goto _err; } @@ -2384,7 +2384,6 @@ static int32_t nextRowIterOpen(CacheNextRowIter *pIter, tb_uid_t uid, STsdb *pTs pIter->fsState.pRowIter = pIter; pIter->fsState.state = SFSNEXTROW_FS; - pIter->fsState.pTsdb = pTsdb; pIter->fsState.aDFileSet = pReadSnap->pfSetArray; pIter->fsState.pBlockIdxExp = &pIter->idx; pIter->fsState.pTSchema = pTSchema; From 7ad628417a196d16f51675f427ba451e62a48e5d Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 1 Aug 2023 17:57:38 +0800 Subject: [PATCH 67/83] fix mem issue: stack-use-after-scope --- source/dnode/vnode/src/tsdb/tsdbCache.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 57bab6c7f3..32ae2cdbd6 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -1604,12 +1604,13 @@ static STableLoadInfo *getTableLoadInfo(SCacheRowsReader *pReader, uint64_t uid) tSimpleHashSetFreeFp(pReader->pTableMap, freeTableInfoFunc); } + STableLoadInfo *pInfo = NULL; STableLoadInfo **ppInfo = tSimpleHashGet(pReader->pTableMap, &uid, sizeof(uid)); if (!ppInfo) { - STableLoadInfo *pInfo = taosMemoryCalloc(1, sizeof(STableLoadInfo)); + pInfo = taosMemoryCalloc(1, sizeof(STableLoadInfo)); tSimpleHashPut(pReader->pTableMap, &uid, sizeof(uint64_t), &pInfo, POINTER_BYTES); - ppInfo = &pInfo; + return pInfo; } return *ppInfo; From 71b000f08cf977ffc470d05b926f000e39edd69a Mon Sep 17 00:00:00 2001 From: liuyao <54liuyao@163.com> Date: Tue, 1 Aug 2023 17:32:53 +0800 Subject: [PATCH 68/83] reload state window state --- source/libs/executor/src/timewindowoperator.c | 37 +++++++++++++++---- source/libs/stream/src/streamExec.c | 1 + source/libs/stream/src/streamState.c | 1 + 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/source/libs/executor/src/timewindowoperator.c b/source/libs/executor/src/timewindowoperator.c index 34b1262f09..3a5ff91f68 100644 --- a/source/libs/executor/src/timewindowoperator.c +++ b/source/libs/executor/src/timewindowoperator.c @@ -4057,13 +4057,20 @@ bool isEqualStateKey(SStateWindowInfo* pWin, char* pKeyData) { bool compareStateKey(void* data, void* key) { if (!data || !key) { - return false; + return true; } SStateKeys* stateKey = (SStateKeys*)key; stateKey->pData = (char*)key + sizeof(SStateKeys); return compareVal(data, stateKey); } +bool compareWinStateKey(SStateKeys* left, SStateKeys* right) { + if (!left || !right) { + return false; + } + return compareVal(left->pData, right); +} + void setStateOutputBuf(SStreamAggSupporter* pAggSup, TSKEY ts, uint64_t groupId, char* pKeyData, SStateWindowInfo* pCurWin, SStateWindowInfo* pNextWin) { int32_t size = pAggSup->resultRowSize; @@ -4086,10 +4093,14 @@ void setStateOutputBuf(SStreamAggSupporter* pAggSup, TSKEY ts, uint64_t groupId, pCurWin->winInfo.pOutputBuf = taosMemoryCalloc(1, size); pCurWin->pStateKey = (SStateKeys*)((char*)pCurWin->winInfo.pOutputBuf + (pAggSup->resultRowSize - pAggSup->stateKeySize)); - pCurWin->pStateKey->bytes = pAggSup->stateKeySize - sizeof(SStateKeys); - pCurWin->pStateKey->type = pAggSup->stateKeyType; - pCurWin->pStateKey->pData = (char*)pCurWin->pStateKey + sizeof(SStateKeys); - pCurWin->pStateKey->isNull = false; + pCurWin->pStateKey->bytes = pAggSup->stateKeySize - sizeof(SStateKeys); + pCurWin->pStateKey->type = pAggSup->stateKeyType; + pCurWin->pStateKey->pData = (char*)pCurWin->pStateKey + sizeof(SStateKeys); + pCurWin->pStateKey->isNull = false; + pCurWin->winInfo.sessionWin.groupId = groupId; + pCurWin->winInfo.sessionWin.win.skey = ts; + pCurWin->winInfo.sessionWin.win.ekey = ts; + qDebug("===stream===reset state win key. skey:%" PRId64 ", endkey:%" PRId64, pCurWin->winInfo.sessionWin.win.skey, pCurWin->winInfo.sessionWin.win.ekey); } if (code == TSDB_CODE_SUCCESS) { @@ -4241,6 +4252,7 @@ static SSDataBlock* doStreamStateAgg(SOperatorInfo* pOperator) { SExprSupp* pSup = &pOperator->exprSupp; SStreamStateAggOperatorInfo* pInfo = pOperator->info; SOptrBasicInfo* pBInfo = &pInfo->binfo; + qDebug("===stream=== stream state agg"); if (pOperator->status == OP_RES_TO_RETURN) { doBuildDeleteDataBlock(pOperator, pInfo->pSeDeleted, pInfo->pDelRes, &pInfo->pDelIterator); if (pInfo->pDelRes->info.rows > 0) { @@ -4340,6 +4352,7 @@ static SSDataBlock* doStreamStateAgg(SOperatorInfo* pOperator) { void streamStateReleaseState(SOperatorInfo* pOperator) { SStreamStateAggOperatorInfo* pInfo = pOperator->info; int32_t resSize = taosArrayGetSize(pInfo->historyWins) * sizeof(SSessionKey); + qDebug("===stream=== relase state. save result count:%d", (int32_t)taosArrayGetSize(pInfo->historyWins)); pInfo->streamAggSup.stateStore.streamStateSaveInfo(pInfo->streamAggSup.pState, STREAM_STATE_OP_STATE_NAME, strlen(STREAM_STATE_OP_STATE_NAME), pInfo->historyWins->pData, resSize); SOperatorInfo* downstream = pOperator->pDownstream[0]; if (downstream->fpSet.releaseStreamStateFn) { @@ -4365,6 +4378,7 @@ static void compactStateWindow(SOperatorInfo* pOperator, SResultWindowInfo* pCur compactFunctions(pSup->pCtx, pAggSup->pDummyCtx, numOfOutput, pTaskInfo, &pInfo->twAggSup.timeWindowData); tSimpleHashRemove(pStUpdated, &pNextWin->sessionWin, sizeof(SSessionKey)); if (pNextWin->isOutput && pStDeleted) { + qDebug("===stream=== save delete window info %" PRId64 ", %" PRIu64, pNextWin->sessionWin.win.skey, pNextWin->sessionWin.groupId); saveDeleteRes(pStDeleted, pNextWin->sessionWin); } removeSessionResult(pStUpdated, pAggSup->pResultRows, pNextWin->sessionWin); @@ -4383,19 +4397,28 @@ void streamStateReloadState(SOperatorInfo* pOperator) { int32_t code = pAggSup->stateStore.streamStateGetInfo(pAggSup->pState, STREAM_STATE_OP_STATE_NAME, strlen(STREAM_STATE_OP_STATE_NAME), &pBuf, &size); int32_t num = size / sizeof(SSessionKey); + qDebug("===stream=== reload state. get result count:%d", num); SSessionKey* pSeKeyBuf = (SSessionKey*) pBuf; ASSERT(size == num * sizeof(SSessionKey)); if (!pInfo->pSeUpdated && num > 0) { _hash_fn_t hashFn = taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY); pInfo->pSeUpdated = tSimpleHashInit(64, hashFn); } + if (!pInfo->pSeDeleted && num > 0) { + _hash_fn_t hashFn = taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY); + pInfo->pSeDeleted = tSimpleHashInit(64, hashFn); + } for (int32_t i = 0; i < num; i++) { SStateWindowInfo curInfo = {0}; SStateWindowInfo nextInfo = {0}; SStateWindowInfo dummy = {0}; + qDebug("===stream=== reload state. try process result %" PRId64 ", %" PRIu64 ", index:%d", pSeKeyBuf[i].win.skey, pSeKeyBuf[i].groupId, i); setStateOutputBuf(pAggSup, pSeKeyBuf[i].win.skey, pSeKeyBuf[i].groupId, NULL, &curInfo, &nextInfo); - if (compareStateKey(curInfo.pStateKey,nextInfo.pStateKey)) { - compactStateWindow(pOperator, &curInfo.winInfo, &nextInfo.winInfo, pInfo->pSeUpdated, pInfo->pSeUpdated); + bool cpRes = compareWinStateKey(curInfo.pStateKey,nextInfo.pStateKey); + qDebug("===stream=== reload state. next window info %" PRId64 ", %" PRIu64 ", compare:%d", nextInfo.winInfo.sessionWin.win.skey, nextInfo.winInfo.sessionWin.groupId, cpRes); + if (cpRes) { + compactStateWindow(pOperator, &curInfo.winInfo, &nextInfo.winInfo, pInfo->pSeUpdated, pInfo->pSeDeleted); + qDebug("===stream=== reload state. save result %" PRId64 ", %" PRIu64, curInfo.winInfo.sessionWin.win.skey, curInfo.winInfo.sessionWin.groupId); if (pInfo->twAggSup.calTrigger == STREAM_TRIGGER_AT_ONCE) { saveResult(curInfo.winInfo, pInfo->pSeUpdated); } else if (pInfo->twAggSup.calTrigger == STREAM_TRIGGER_WINDOW_CLOSE) { diff --git a/source/libs/stream/src/streamExec.c b/source/libs/stream/src/streamExec.c index bbd26d0442..34370ebce9 100644 --- a/source/libs/stream/src/streamExec.c +++ b/source/libs/stream/src/streamExec.c @@ -581,6 +581,7 @@ int32_t streamTryExec(SStreamTask* pTask) { if (code != TSDB_CODE_SUCCESS) { return code; } + streamSchedExec(pTask); } else { atomic_store_8(&pTask->status.schedStatus, TASK_SCHED_STATUS__INACTIVE); qDebug("s-task:%s exec completed, status:%s, sched-status:%d", id, streamGetTaskStatusStr(pTask->status.taskStatus), diff --git a/source/libs/stream/src/streamState.c b/source/libs/stream/src/streamState.c index 0a4f73a67c..5b42be182c 100644 --- a/source/libs/stream/src/streamState.c +++ b/source/libs/stream/src/streamState.c @@ -729,6 +729,7 @@ void streamStateFreeVal(void* val) { int32_t streamStateSessionPut(SStreamState* pState, const SSessionKey* key, const void* value, int32_t vLen) { #ifdef USE_ROCKSDB + qDebug("===stream===save skey:%" PRId64 ", ekey:%" PRId64 ", groupId:%" PRIu64, key->win.skey,key->win.ekey, key->groupId); return streamStateSessionPut_rocksdb(pState, key, value, vLen); #else SStateSessionKey sKey = {.key = *key, .opNum = pState->number}; From a593e887fa44c21800bfbdc56a392200f9419a36 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 1 Aug 2023 18:37:23 +0800 Subject: [PATCH 69/83] cache: remove nFileset from fs state --- source/dnode/vnode/src/tsdb/tsdbCache.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 32ae2cdbd6..65a9971d1a 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -1840,7 +1840,6 @@ typedef struct SFSNextRowIter { STSchema *pTSchema; // [input] tb_uid_t suid; tb_uid_t uid; - int32_t nFileSet; int32_t iFileSet; STFileSet *pFileSet; TFileSetArray *aDFileSet; @@ -1874,8 +1873,7 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow, bool *pIgnoreEarlie STsdb *pTsdb = state->pr->pTsdb; if (SFSNEXTROW_FS == state->state) { - state->nFileSet = TARRAY2_SIZE(state->aDFileSet); - state->iFileSet = state->nFileSet; + state->iFileSet = TARRAY2_SIZE(state->aDFileSet); state->state = SFSNEXTROW_FILESET; } From 7d294cac5faf58f12a94cb0555d6d6b9ef9f8ddb Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 1 Aug 2023 18:56:10 +0800 Subject: [PATCH 70/83] tsdb/cache: load current fileset's brinblk once --- source/dnode/vnode/src/inc/tsdb.h | 48 --------------------- source/dnode/vnode/src/tsdb/tsdbCache.c | 11 ++--- source/dnode/vnode/src/tsdb/tsdbCacheRead.c | 1 + source/dnode/vnode/src/tsdb/tsdbReadUtil.h | 45 +++++++++++++++++++ 4 files changed, 52 insertions(+), 53 deletions(-) diff --git a/source/dnode/vnode/src/inc/tsdb.h b/source/dnode/vnode/src/inc/tsdb.h index 75c8eea83a..fa42248c69 100644 --- a/source/dnode/vnode/src/inc/tsdb.h +++ b/source/dnode/vnode/src/inc/tsdb.h @@ -841,48 +841,6 @@ typedef enum { READ_MODE_ALL, } EReadMode; -typedef struct STsdbReaderInfo { - uint64_t suid; - STSchema *pSchema; - EReadMode readMode; - uint64_t rowsNum; - STimeWindow window; - SVersionRange verRange; - int16_t order; -} STsdbReaderInfo; - -typedef struct { - SArray *pTombData; -} STableLoadInfo; - -struct SDataFileReader; - -typedef struct SCacheRowsReader { - STsdb *pTsdb; - STsdbReaderInfo info; - TdThreadMutex readerMutex; - SVnode *pVnode; - STSchema *pSchema; - STSchema *pCurrSchema; - uint64_t uid; - char **transferBuf; // todo remove it soon - int32_t numOfCols; - SArray *pCidList; - int32_t *pSlotIds; - int32_t type; - int32_t tableIndex; // currently returned result tables - STableKeyInfo *pTableList; // table id list - int32_t numOfTables; - uint64_t *uidList; - SSHashObj *pTableMap; - SArray *pLDataIterArray; - struct SDataFileReader *pFileReader; - STFileSet *pCurFileSet; - STsdbReadSnap *pReadSnap; - char *idstr; - int64_t lastTs; -} SCacheRowsReader; - typedef struct { TSKEY ts; int8_t dirty; @@ -892,14 +850,10 @@ typedef struct { int32_t tsdbOpenCache(STsdb *pTsdb); void tsdbCloseCache(STsdb *pTsdb); int32_t tsdbCacheUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, TSDBROW *row); -int32_t tsdbCacheGetBatch(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCacheRowsReader *pr, int8_t ltype); -int32_t tsdbCacheGet(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCacheRowsReader *pr, int8_t ltype); int32_t tsdbCacheDel(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, TSKEY sKey, TSKEY eKey); int32_t tsdbCacheInsertLast(SLRUCache *pCache, tb_uid_t uid, TSDBROW *row, STsdb *pTsdb); int32_t tsdbCacheInsertLastrow(SLRUCache *pCache, STsdb *pTsdb, tb_uid_t uid, TSDBROW *row, bool dup); -int32_t tsdbCacheGetLastH(SLRUCache *pCache, tb_uid_t uid, SCacheRowsReader *pr, LRUHandle **h); -int32_t tsdbCacheGetLastrowH(SLRUCache *pCache, tb_uid_t uid, SCacheRowsReader *pr, LRUHandle **h); int32_t tsdbCacheRelease(SLRUCache *pCache, LRUHandle *h); int32_t tsdbCacheGetBlockIdx(SLRUCache *pCache, SDataFReader *pFileReader, LRUHandle **handle); @@ -909,8 +863,6 @@ int32_t tsdbCacheDeleteLastrow(SLRUCache *pCache, tb_uid_t uid, TSKEY eKey); int32_t tsdbCacheDeleteLast(SLRUCache *pCache, tb_uid_t uid, TSKEY eKey); int32_t tsdbCacheDelete(SLRUCache *pCache, tb_uid_t uid, TSKEY eKey); -// int32_t tsdbCacheLastArray2Row(SArray *pLastArray, STSRow **ppRow, STSchema *pSchema); - // ========== inline functions ========== static FORCE_INLINE int32_t tsdbKeyCmprFn(const void *p1, const void *p2) { TSDBKEY *pKey1 = (TSDBKEY *)p1; diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 65a9971d1a..2cb5f89cb4 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -1922,6 +1922,11 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow, bool *pIgnoreEarlie state->pr->pCurFileSet = state->pFileSet; loadDataTomb(state->pr, state->pr->pFileReader); + + int32_t code = tsdbDataFileReadBrinBlk(state->pr->pFileReader, &state->pr->pBlkArray); + if (code != TSDB_CODE_SUCCESS) { + goto _err; + } } if (!state->pIndexList) { @@ -1929,12 +1934,8 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow, bool *pIgnoreEarlie } else { taosArrayClear(state->pIndexList); } - const TBrinBlkArray *pBlkArray = NULL; - int32_t code = tsdbDataFileReadBrinBlk(state->pr->pFileReader, &pBlkArray); - if (code != TSDB_CODE_SUCCESS) { - goto _err; - } + const TBrinBlkArray *pBlkArray = state->pr->pBlkArray; for (int i = TARRAY2_SIZE(pBlkArray) - 1; i >= 0; --i) { SBrinBlk *pBrinBlk = &pBlkArray->data[i]; diff --git a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c index d51305f446..b24823b436 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c @@ -18,6 +18,7 @@ #include "tcommon.h" #include "tsdb.h" #include "tsdbDataFileRW.h" +#include "tsdbReadUtil.h" #define HASTYPE(_type, _t) (((_type) & (_t)) == (_t)) diff --git a/source/dnode/vnode/src/tsdb/tsdbReadUtil.h b/source/dnode/vnode/src/tsdb/tsdbReadUtil.h index 3bb7b8f3a5..e7a1d6b038 100644 --- a/source/dnode/vnode/src/tsdb/tsdbReadUtil.h +++ b/source/dnode/vnode/src/tsdb/tsdbReadUtil.h @@ -36,6 +36,16 @@ typedef enum { EXTERNAL_ROWS_NEXT = 0x3, } EContentData; +typedef struct STsdbReaderInfo { + uint64_t suid; + STSchema* pSchema; + EReadMode readMode; + uint64_t rowsNum; + STimeWindow window; + SVersionRange verRange; + int16_t order; +} STsdbReaderInfo; + typedef struct SBlockInfoBuf { int32_t currentIndex; SArray* pData; @@ -243,6 +253,41 @@ void loadMemTombData(SArray** ppMemDelData, STbData* pMemTbData, STbData* piM int32_t loadDataFileTombDataForAll(STsdbReader* pReader); int32_t loadSttTombDataForAll(STsdbReader* pReader, SSttFileReader* pSttFileReader, SSttBlockLoadInfo* pLoadInfo); +typedef struct { + SArray* pTombData; +} STableLoadInfo; + +struct SDataFileReader; + +typedef struct SCacheRowsReader { + STsdb* pTsdb; + STsdbReaderInfo info; + TdThreadMutex readerMutex; + SVnode* pVnode; + STSchema* pSchema; + STSchema* pCurrSchema; + uint64_t uid; + char** transferBuf; // todo remove it soon + int32_t numOfCols; + SArray* pCidList; + int32_t* pSlotIds; + int32_t type; + int32_t tableIndex; // currently returned result tables + STableKeyInfo* pTableList; // table id list + int32_t numOfTables; + uint64_t* uidList; + SSHashObj* pTableMap; + SArray* pLDataIterArray; + struct SDataFileReader* pFileReader; + STFileSet* pCurFileSet; + const TBrinBlkArray* pBlkArray; + STsdbReadSnap* pReadSnap; + char* idstr; + int64_t lastTs; +} SCacheRowsReader; + +int32_t tsdbCacheGetBatch(STsdb* pTsdb, tb_uid_t uid, SArray* pLastArray, SCacheRowsReader* pr, int8_t ltype); + #ifdef __cplusplus } #endif From 2a22e55705c49dbcc0170dc20511a3eb2e1bb033 Mon Sep 17 00:00:00 2001 From: kailixu Date: Tue, 1 Aug 2023 19:42:05 +0800 Subject: [PATCH 71/83] fix: null pointer check for mutex on windows --- source/os/src/osThread.c | 42 ++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/source/os/src/osThread.c b/source/os/src/osThread.c index 39ba92fdc5..59b1ab5b3e 100644 --- a/source/os/src/osThread.c +++ b/source/os/src/osThread.c @@ -17,6 +17,15 @@ #include #include "os.h" +#ifdef WINDOWS +#define THREAD_PTR_CHECK(p) \ + do { \ + if (!(p) || !(*(p))) return 0; \ + } while (0); +#else +#define THREAD_PTR_CHECK(p) +#endif + int32_t taosThreadCreate(TdThread *tid, const TdThreadAttr *attr, void *(*start)(void *), void *arg) { return pthread_create(tid, attr, start, arg); } @@ -83,9 +92,13 @@ int32_t taosThreadCondSignal(TdThreadCond *cond) { return pthread_cond_signal(co int32_t taosThreadCondBroadcast(TdThreadCond *cond) { return pthread_cond_broadcast(cond); } -int32_t taosThreadCondWait(TdThreadCond *cond, TdThreadMutex *mutex) { return pthread_cond_wait(cond, mutex); } +int32_t taosThreadCondWait(TdThreadCond *cond, TdThreadMutex *mutex) { + THREAD_PTR_CHECK(mutex) + return pthread_cond_wait(cond, mutex); +} int32_t taosThreadCondTimedWait(TdThreadCond *cond, TdThreadMutex *mutex, const struct timespec *abstime) { + THREAD_PTR_CHECK(mutex) return pthread_cond_timedwait(cond, mutex, abstime); } @@ -124,24 +137,37 @@ int32_t taosThreadKeyDelete(TdThreadKey key) { return pthread_key_delete(key); } int32_t taosThreadKill(TdThread thread, int32_t sig) { return pthread_kill(thread, sig); } // int32_t taosThreadMutexConsistent(TdThreadMutex* mutex) { +// THREAD_PTR_CHECK(mutex) // return pthread_mutex_consistent(mutex); // } -int32_t taosThreadMutexDestroy(TdThreadMutex *mutex) { return pthread_mutex_destroy(mutex); } +int32_t taosThreadMutexDestroy(TdThreadMutex *mutex) { + THREAD_PTR_CHECK(mutex) + return pthread_mutex_destroy(mutex); +} int32_t taosThreadMutexInit(TdThreadMutex *mutex, const TdThreadMutexAttr *attr) { return pthread_mutex_init(mutex, attr); } -int32_t taosThreadMutexLock(TdThreadMutex *mutex) { return pthread_mutex_lock(mutex); } +int32_t taosThreadMutexLock(TdThreadMutex *mutex) { + THREAD_PTR_CHECK(mutex) + return pthread_mutex_lock(mutex); +} // int32_t taosThreadMutexTimedLock(TdThreadMutex * mutex, const struct timespec *abstime) { // return pthread_mutex_timedlock(mutex, abstime); // } -int32_t taosThreadMutexTryLock(TdThreadMutex *mutex) { return pthread_mutex_trylock(mutex); } +int32_t taosThreadMutexTryLock(TdThreadMutex *mutex) { + THREAD_PTR_CHECK(mutex) + return pthread_mutex_trylock(mutex); +} -int32_t taosThreadMutexUnlock(TdThreadMutex *mutex) { return pthread_mutex_unlock(mutex); } +int32_t taosThreadMutexUnlock(TdThreadMutex *mutex) { + THREAD_PTR_CHECK(mutex) + return pthread_mutex_unlock(mutex); +} int32_t taosThreadMutexAttrDestroy(TdThreadMutexAttr *attr) { return pthread_mutexattr_destroy(attr); } @@ -224,6 +250,7 @@ int32_t taosThreadSetSchedParam(TdThread thread, int32_t policy, const struct sc int32_t taosThreadSetSpecific(TdThreadKey key, const void *value) { return pthread_setspecific(key, value); } int32_t taosThreadSpinDestroy(TdThreadSpinlock *lock) { + THREAD_PTR_CHECK(lock) #ifdef TD_USE_SPINLOCK_AS_MUTEX return pthread_mutex_destroy((pthread_mutex_t *)lock); #else @@ -242,6 +269,7 @@ int32_t taosThreadSpinInit(TdThreadSpinlock *lock, int32_t pshared) { } int32_t taosThreadSpinLock(TdThreadSpinlock *lock) { + THREAD_PTR_CHECK(lock) #ifdef TD_USE_SPINLOCK_AS_MUTEX return pthread_mutex_lock((pthread_mutex_t *)lock); #else @@ -250,6 +278,7 @@ int32_t taosThreadSpinLock(TdThreadSpinlock *lock) { } int32_t taosThreadSpinTrylock(TdThreadSpinlock *lock) { + THREAD_PTR_CHECK(lock) #ifdef TD_USE_SPINLOCK_AS_MUTEX return pthread_mutex_trylock((pthread_mutex_t *)lock); #else @@ -258,6 +287,7 @@ int32_t taosThreadSpinTrylock(TdThreadSpinlock *lock) { } int32_t taosThreadSpinUnlock(TdThreadSpinlock *lock) { + THREAD_PTR_CHECK(lock) #ifdef TD_USE_SPINLOCK_AS_MUTEX return pthread_mutex_unlock((pthread_mutex_t *)lock); #else @@ -267,4 +297,4 @@ int32_t taosThreadSpinUnlock(TdThreadSpinlock *lock) { void taosThreadTestCancel(void) { return pthread_testcancel(); } -void taosThreadClear(TdThread *thread) { memset(thread, 0, sizeof(TdThread)); } \ No newline at end of file +void taosThreadClear(TdThread *thread) { memset(thread, 0, sizeof(TdThread)); } From 42da90e459fb985012530a908ec116c054126319 Mon Sep 17 00:00:00 2001 From: kailixu Date: Tue, 1 Aug 2023 19:45:14 +0800 Subject: [PATCH 72/83] chore: code revert --- source/os/src/osThread.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/os/src/osThread.c b/source/os/src/osThread.c index 59b1ab5b3e..4c4e22bdd9 100644 --- a/source/os/src/osThread.c +++ b/source/os/src/osThread.c @@ -297,4 +297,4 @@ int32_t taosThreadSpinUnlock(TdThreadSpinlock *lock) { void taosThreadTestCancel(void) { return pthread_testcancel(); } -void taosThreadClear(TdThread *thread) { memset(thread, 0, sizeof(TdThread)); } +void taosThreadClear(TdThread *thread) { memset(thread, 0, sizeof(TdThread)); } \ No newline at end of file From 4ba4e83b5b7bc50829c831746a8bb6fe82928c80 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Tue, 1 Aug 2023 20:19:13 +0800 Subject: [PATCH 73/83] fix: retention file corruption --- source/dnode/vnode/src/tsdb/tsdbRetention.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbRetention.c b/source/dnode/vnode/src/tsdb/tsdbRetention.c index 3af9d2a07a..a4d5715083 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRetention.c +++ b/source/dnode/vnode/src/tsdb/tsdbRetention.c @@ -100,7 +100,7 @@ static int32_t tsdbDoMigrateFileObj(SRTNer *rtner, const STFileObj *fobj, const .type = fobj->f->type, .did = did[0], .fid = fobj->f->fid, - .cid = rtner->cid, + .cid = fobj->f->cid, .size = fobj->f->size, .stt[0] = { From 29b2f328214b2f3792d7a1f9e8593d8ec7d48a6b Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Wed, 2 Aug 2023 09:49:41 +0800 Subject: [PATCH 74/83] cache reader: cleanup stt init --- source/dnode/vnode/src/tsdb/tsdbCacheRead.c | 22 +++++---------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c index b24823b436..8aed85ab94 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c @@ -181,14 +181,6 @@ int32_t tsdbCacherowsReaderOpen(void* pVnode, int32_t type, void* pTableIdList, } } - SVnodeCfg* pCfg = &((SVnode*)pVnode)->config; - int32_t numOfStt = pCfg->sttTrigger; - p->pLDataIterArray = taosArrayInit(4, POINTER_BYTES); - if (p->pLDataIterArray == NULL) { - tsdbCacherowsReaderClose(p); - return TSDB_CODE_OUT_OF_MEMORY; - } - p->idstr = taosStrdup(idstr); taosThreadMutexInit(&p->readerMutex, NULL); @@ -215,9 +207,11 @@ void* tsdbCacherowsReaderClose(void* pReader) { taosMemoryFree(p->pCurrSchema); - int64_t loadBlocks = 0; - double elapse = 0; - destroySttBlockReader(p->pLDataIterArray, &loadBlocks, &elapse); + if (p->pLDataIterArray) { + int64_t loadBlocks = 0; + double elapse = 0; + destroySttBlockReader(p->pLDataIterArray, &loadBlocks, &elapse); + } if (p->pFileReader) { tsdbDataFileReaderClose(&p->pFileReader); @@ -443,11 +437,6 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 _end: tsdbUntakeReadSnap2((STsdbReader*)pr, pr->pReadSnap, true); - int64_t loadBlocks = 0; - double elapse = 0; - pr->pLDataIterArray = destroySttBlockReader(pr->pLDataIterArray, &loadBlocks, &elapse); - pr->pLDataIterArray = taosArrayInit(4, POINTER_BYTES); - taosThreadMutexUnlock(&pr->readerMutex); if (pRes != NULL) { @@ -457,7 +446,6 @@ _end: } taosMemoryFree(pRes); - // taosArrayDestroyEx(pRow, freeItem); taosArrayDestroy(pRow); taosArrayDestroyEx(pLastCols, freeItem); From ed76525c4fdd280014850da622f06ed198afaf0d Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Wed, 2 Aug 2023 10:28:13 +0800 Subject: [PATCH 75/83] cache/reader: cleanup uid in signle loop --- source/dnode/vnode/src/tsdb/tsdbCacheRead.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c index 8aed85ab94..344d9a4d0a 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c @@ -320,23 +320,21 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 // retrieve the only one last row of all tables in the uid list. if (HASTYPE(pr->type, CACHESCAN_RETRIEVE_TYPE_SINGLE)) { - int64_t st = taosGetTimestampUs(); - int64_t totalLastTs = INT64_MAX; + int64_t st = taosGetTimestampUs(); + int64_t totalLastTs = INT64_MAX; + STableKeyInfo* pTableList = pr->pTableList; for (int32_t i = 0; i < pr->numOfTables; ++i) { - STableKeyInfo* pKeyInfo = &pr->pTableList[i]; + tb_uid_t uid = pTableList[i].uid; - tsdbCacheGetBatch(pr->pTsdb, pKeyInfo->uid, pRow, pr, ltype); - // tsdbCacheGet(pr->pTsdb, pKeyInfo->uid, pRow, pr, ltype); + tsdbCacheGetBatch(pr->pTsdb, uid, pRow, pr, ltype); if (TARRAY_SIZE(pRow) <= 0) { taosArrayClearEx(pRow, freeItem); - // taosArrayClear(pRow); continue; } SLastCol* pColVal = taosArrayGet(pRow, 0); if (COL_VAL_IS_NONE(&pColVal->colVal)) { taosArrayClearEx(pRow, freeItem); - // taosArrayClear(pRow); continue; } @@ -359,9 +357,9 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 p->ts = pColVal->ts; if (k == 0) { if (TARRAY_SIZE(pTableUidList) == 0) { - taosArrayPush(pTableUidList, &pKeyInfo->uid); + taosArrayPush(pTableUidList, &uid); } else { - taosArraySet(pTableUidList, 0, &pKeyInfo->uid); + taosArraySet(pTableUidList, 0, &uid); } } @@ -396,7 +394,6 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 } taosArrayClearEx(pRow, freeItem); - // taosArrayClear(pRow); } if (hasRes) { From 95cc540d9b8be0bc375774c2f4613a96b61509a9 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Wed, 2 Aug 2023 10:48:55 +0800 Subject: [PATCH 76/83] cache/reader: clean uid in all loop --- source/dnode/vnode/src/tsdb/tsdbCacheRead.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c index 344d9a4d0a..83fdc4383e 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c @@ -316,14 +316,13 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 goto _end; } - int8_t ltype = (pr->type & CACHESCAN_RETRIEVE_LAST) >> 3; + int8_t ltype = (pr->type & CACHESCAN_RETRIEVE_LAST) >> 3; + STableKeyInfo* pTableList = pr->pTableList; // retrieve the only one last row of all tables in the uid list. if (HASTYPE(pr->type, CACHESCAN_RETRIEVE_TYPE_SINGLE)) { - int64_t st = taosGetTimestampUs(); - int64_t totalLastTs = INT64_MAX; - STableKeyInfo* pTableList = pr->pTableList; - + int64_t st = taosGetTimestampUs(); + int64_t totalLastTs = INT64_MAX; for (int32_t i = 0; i < pr->numOfTables; ++i) { tb_uid_t uid = pTableList[i].uid; @@ -401,24 +400,21 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 } } else if (HASTYPE(pr->type, CACHESCAN_RETRIEVE_TYPE_ALL)) { for (int32_t i = pr->tableIndex; i < pr->numOfTables; ++i) { - tb_uid_t uid = pr->pTableList[i].uid; + tb_uid_t uid = pTableList[i].uid; tsdbCacheGetBatch(pr->pTsdb, uid, pRow, pr, ltype); if (TARRAY_SIZE(pRow) <= 0) { taosArrayClearEx(pRow, freeItem); - // taosArrayClear(pRow); continue; } SLastCol* pColVal = (SLastCol*)taosArrayGet(pRow, 0); if (COL_VAL_IS_NONE(&pColVal->colVal)) { taosArrayClearEx(pRow, freeItem); - // taosArrayClear(pRow); continue; } saveOneRow(pRow, pResBlock, pr, slotIds, dstSlotIds, pRes, pr->idstr); taosArrayClearEx(pRow, freeItem); - // taosArrayClear(pRow); taosArrayPush(pTableUidList, &uid); From 7fca057a81f22b150c8dd3d6cba27eea9f764899 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Wed, 2 Aug 2023 11:10:12 +0800 Subject: [PATCH 77/83] cache/reader: move pLastCols into single block --- source/dnode/vnode/src/tsdb/tsdbCacheRead.c | 38 ++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c index 83fdc4383e..707a203237 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c @@ -277,7 +277,6 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 int32_t code = TSDB_CODE_SUCCESS; SArray* pRow = taosArrayInit(TARRAY_SIZE(pr->pCidList), sizeof(SLastCol)); bool hasRes = false; - SArray* pLastCols = NULL; void** pRes = taosMemoryCalloc(pr->numOfCols, POINTER_BYTES); if (pRes == NULL) { @@ -293,23 +292,6 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 p->ts = INT64_MIN; } - pLastCols = taosArrayInit(pr->numOfCols, sizeof(SLastCol)); - if (pLastCols == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; - goto _end; - } - - for (int32_t i = 0; i < pr->numOfCols; ++i) { - int32_t slotId = slotIds[i]; - struct STColumn* pCol = &pr->pSchema->columns[slotId]; - SLastCol p = {.ts = INT64_MIN, .colVal.type = pCol->type, .colVal.flag = CV_FLAG_NULL}; - - if (IS_VAR_DATA_TYPE(pCol->type)) { - p.colVal.value.pData = taosMemoryCalloc(pCol->bytes, sizeof(char)); - } - taosArrayPush(pLastCols, &p); - } - taosThreadMutexLock(&pr->readerMutex); code = tsdbTakeReadSnap2((STsdbReader*)pr, tsdbCacheQueryReseek, &pr->pReadSnap); if (code != TSDB_CODE_SUCCESS) { @@ -321,6 +303,23 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 // retrieve the only one last row of all tables in the uid list. if (HASTYPE(pr->type, CACHESCAN_RETRIEVE_TYPE_SINGLE)) { + SArray* pLastCols = taosArrayInit(pr->numOfCols, sizeof(SLastCol)); + if (pLastCols == NULL) { + code = TSDB_CODE_OUT_OF_MEMORY; + goto _end; + } + + for (int32_t i = 0; i < pr->numOfCols; ++i) { + int32_t slotId = slotIds[i]; + struct STColumn* pCol = &pr->pSchema->columns[slotId]; + SLastCol p = {.ts = INT64_MIN, .colVal.type = pCol->type, .colVal.flag = CV_FLAG_NULL}; + + if (IS_VAR_DATA_TYPE(pCol->type)) { + p.colVal.value.pData = taosMemoryCalloc(pCol->bytes, sizeof(char)); + } + taosArrayPush(pLastCols, &p); + } + int64_t st = taosGetTimestampUs(); int64_t totalLastTs = INT64_MAX; for (int32_t i = 0; i < pr->numOfTables; ++i) { @@ -398,6 +397,8 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 if (hasRes) { saveOneRow(pLastCols, pResBlock, pr, slotIds, dstSlotIds, pRes, pr->idstr); } + + taosArrayDestroyEx(pLastCols, freeItem); } else if (HASTYPE(pr->type, CACHESCAN_RETRIEVE_TYPE_ALL)) { for (int32_t i = pr->tableIndex; i < pr->numOfTables; ++i) { tb_uid_t uid = pTableList[i].uid; @@ -440,7 +441,6 @@ _end: taosMemoryFree(pRes); taosArrayDestroy(pRow); - taosArrayDestroyEx(pLastCols, freeItem); return code; } From 2c357f1958e4880763fdd499844b7142c264e0d3 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Wed, 2 Aug 2023 11:18:35 +0800 Subject: [PATCH 78/83] fix(stream): enable filter table based on table statistics. --- source/dnode/vnode/src/tsdb/tsdbMergeTree.c | 69 ++++++++++++++------- 1 file changed, 46 insertions(+), 23 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c index ea5b574ced..bbb5ce79fa 100644 --- a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c +++ b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c @@ -15,6 +15,7 @@ #include "tsdb.h" #include "tsdbFSet2.h" +#include "tsdbMerge.h" #include "tsdbReadUtil.h" #include "tsdbSttFileRW.h" @@ -352,10 +353,14 @@ static int32_t extractSttBlockInfo(SLDataIter *pIter, const TSttBlkArray *pArray return TSDB_CODE_SUCCESS; } -static int32_t uidComparFn(const void *p1, const void *p2) { - const uint64_t *uid1 = p1; +static int32_t suidComparFn(const void *target, const void *p2) { + const uint64_t *targetUid = target; const uint64_t *uid2 = p2; - return (*uid1) - (*uid2); + if (*uid2 == (*targetUid)) { + return 0; + } else { + return (*targetUid) < (*uid2) ? -1:1; + } } static bool existsFromSttBlkStatis(const TStatisBlkArray *pStatisBlkArray, uint64_t suid, uint64_t uid, @@ -372,17 +377,6 @@ static bool existsFromSttBlkStatis(const TStatisBlkArray *pStatisBlkArray, uint6 } } - // for (; i < TARRAY2_SIZE(pStatisBlkArray); ++i) { - // SStatisBlk *p = &pStatisBlkArray->data[i]; - // if (p->minTbid.uid <= uid && p->maxTbid.uid >= uid) { - // break; - // } - // - // if (p->maxTbid.uid < uid) { - // break; - // } - // } - if (i >= TARRAY2_SIZE(pStatisBlkArray)) { return false; } @@ -391,10 +385,39 @@ static bool existsFromSttBlkStatis(const TStatisBlkArray *pStatisBlkArray, uint6 STbStatisBlock block = {0}; tsdbSttFileReadStatisBlock(pReader, p, &block); - int32_t index = tarray2SearchIdx(block.uid, &uid, sizeof(int64_t), uidComparFn, TD_EQ); - tStatisBlockDestroy(&block); + int32_t index = tarray2SearchIdx(block.suid, &suid, sizeof(int64_t), suidComparFn, TD_EQ); + if (index == -1) { + tStatisBlockDestroy(&block); + return false; + } + + int32_t j = index; + if (block.uid->data[j] == uid) { + tStatisBlockDestroy(&block); + return true; + } else if (block.uid->data[j] > uid) { + while (j >= 0 && block.suid->data[j] == suid) { + if (block.uid->data[j] == uid) { + tStatisBlockDestroy(&block); + return true; + } else { + j -= 1; + } + } + } else { + j = index + 1; + while (j < block.suid->size && block.suid->data[j] == suid) { + if (block.uid->data[j] == uid) { + tStatisBlockDestroy(&block); + return true; + } else { + j += 1; + } + } + } - return (index != -1); + tStatisBlockDestroy(&block); + return false; } int32_t tLDataIterOpen2(struct SLDataIter *pIter, SSttFileReader *pSttFileReader, int32_t iStt, int8_t backward, @@ -445,12 +468,12 @@ int32_t tLDataIterOpen2(struct SLDataIter *pIter, SSttFileReader *pSttFileReader tsdbDebug("load the stt file info completed, elapsed time:%.2fms, %s", el, idStr); } - // bool exists = existsFromSttBlkStatis(pBlockLoadInfo->pSttStatisBlkArray, suid, uid, pIter->pReader); - // if (!exists) { - // pIter->iSttBlk = -1; - // pIter->pSttBlk = NULL; - // return TSDB_CODE_SUCCESS; - // } + bool exists = existsFromSttBlkStatis(pBlockLoadInfo->pSttStatisBlkArray, suid, uid, pIter->pReader); + if (!exists) { + pIter->iSttBlk = -1; + pIter->pSttBlk = NULL; + return TSDB_CODE_SUCCESS; + } // find the start block, actually we could load the position to avoid repeatly searching for the start position when // the skey is updated. From 0e51277521bf63b48a9d8e5c5a40727cac7edb37 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Wed, 2 Aug 2023 12:43:57 +0800 Subject: [PATCH 79/83] cache/reader: cleanup contiue nex row --- source/dnode/vnode/src/tsdb/tsdbCache.c | 6 +++--- source/dnode/vnode/src/tsdb/tsdbCacheRead.c | 18 +++--------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 2cb5f89cb4..7d8cf5b678 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -1020,10 +1020,10 @@ int32_t tsdbCacheGetBatch(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCache code = tsdbCacheLoadFromRocks(pTsdb, uid, pLastArray, remainCols, pr, ltype); taosThreadMutexUnlock(&pTsdb->lruMutex); - } - if (remainCols) { - taosArrayDestroy(remainCols); + if (remainCols) { + taosArrayDestroy(remainCols); + } } return code; diff --git a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c index 707a203237..66c8cc06e2 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c @@ -285,9 +285,7 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 } for (int32_t j = 0; j < pr->numOfCols; ++j) { - pRes[j] = - taosMemoryCalloc(1, sizeof(SFirstLastRes) + pr->pSchema->columns[/*-1 == slotIds[j] ? 0 : */ slotIds[j]].bytes + - VARSTR_HEADER_SIZE); + pRes[j] = taosMemoryCalloc(1, sizeof(SFirstLastRes) + pr->pSchema->columns[slotIds[j]].bytes + VARSTR_HEADER_SIZE); SFirstLastRes* p = (SFirstLastRes*)varDataVal(pRes[j]); p->ts = INT64_MIN; } @@ -326,12 +324,7 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 tb_uid_t uid = pTableList[i].uid; tsdbCacheGetBatch(pr->pTsdb, uid, pRow, pr, ltype); - if (TARRAY_SIZE(pRow) <= 0) { - taosArrayClearEx(pRow, freeItem); - continue; - } - SLastCol* pColVal = taosArrayGet(pRow, 0); - if (COL_VAL_IS_NONE(&pColVal->colVal)) { + if (TARRAY_SIZE(pRow) <= 0 || COL_VAL_IS_NONE(&((SLastCol*)TARRAY_DATA(pRow))[0].colVal)) { taosArrayClearEx(pRow, freeItem); continue; } @@ -404,12 +397,7 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 tb_uid_t uid = pTableList[i].uid; tsdbCacheGetBatch(pr->pTsdb, uid, pRow, pr, ltype); - if (TARRAY_SIZE(pRow) <= 0) { - taosArrayClearEx(pRow, freeItem); - continue; - } - SLastCol* pColVal = (SLastCol*)taosArrayGet(pRow, 0); - if (COL_VAL_IS_NONE(&pColVal->colVal)) { + if (TARRAY_SIZE(pRow) <= 0 || COL_VAL_IS_NONE(&((SLastCol*)TARRAY_DATA(pRow))[0].colVal)) { taosArrayClearEx(pRow, freeItem); continue; } From 0feffc687b3b80ce55f140d0fa08112e86d930d2 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Wed, 2 Aug 2023 12:44:45 +0800 Subject: [PATCH 80/83] fix(tsdb): check uid in multiple stt statistics blocks. --- source/dnode/vnode/src/tsdb/tsdbMergeTree.c | 70 ++++++++++++--------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c index bbb5ce79fa..d74584f844 100644 --- a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c +++ b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c @@ -381,42 +381,50 @@ static bool existsFromSttBlkStatis(const TStatisBlkArray *pStatisBlkArray, uint6 return false; } - SStatisBlk *p = &pStatisBlkArray->data[i]; - STbStatisBlock block = {0}; - tsdbSttFileReadStatisBlock(pReader, p, &block); + while(i < TARRAY2_SIZE(pStatisBlkArray)) { + SStatisBlk *p = &pStatisBlkArray->data[i]; + if (p->minTbid.suid > suid) { + return false; + } - int32_t index = tarray2SearchIdx(block.suid, &suid, sizeof(int64_t), suidComparFn, TD_EQ); - if (index == -1) { - tStatisBlockDestroy(&block); - return false; - } - - int32_t j = index; - if (block.uid->data[j] == uid) { - tStatisBlockDestroy(&block); - return true; - } else if (block.uid->data[j] > uid) { - while (j >= 0 && block.suid->data[j] == suid) { - if (block.uid->data[j] == uid) { - tStatisBlockDestroy(&block); - return true; - } else { - j -= 1; - } - } - } else { - j = index + 1; - while (j < block.suid->size && block.suid->data[j] == suid) { - if (block.uid->data[j] == uid) { - tStatisBlockDestroy(&block); - return true; - } else { - j += 1; + STbStatisBlock block = {0}; + tsdbSttFileReadStatisBlock(pReader, p, &block); + + int32_t index = tarray2SearchIdx(block.suid, &suid, sizeof(int64_t), suidComparFn, TD_EQ); + if (index == -1) { + tStatisBlockDestroy(&block); + return false; + } + + int32_t j = index; + if (block.uid->data[j] == uid) { + tStatisBlockDestroy(&block); + return true; + } else if (block.uid->data[j] > uid) { + while (j >= 0 && block.suid->data[j] == suid) { + if (block.uid->data[j] == uid) { + tStatisBlockDestroy(&block); + return true; + } else { + j -= 1; + } + } + } else { + j = index + 1; + while (j < block.suid->size && block.suid->data[j] == suid) { + if (block.uid->data[j] == uid) { + tStatisBlockDestroy(&block); + return true; + } else { + j += 1; + } } } + + tStatisBlockDestroy(&block); + i += 1; } - tStatisBlockDestroy(&block); return false; } From cbca55bc6a607252bbfffa9cb1b9b4d56b442d05 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Wed, 2 Aug 2023 14:47:51 +0800 Subject: [PATCH 81/83] docs: add r language to connector (#22286) * docs: add r language to connector * docs: add r lang english version in connector * docs: fix include path and note format * Update 60-r-lang.mdx minor changes --------- Co-authored-by: danielclow <106956386+danielclow@users.noreply.github.com> --- .../14-reference/03-connector/60-r-lang.mdx | 86 ++++++++++++++++++ .../03-connector/{10-php.mdx => 80-php.mdx} | 0 docs/examples/R/connect_native.r | 2 +- docs/examples/R/connect_rest.r | 8 +- docs/zh/08-connector/43-r-lang.mdx | 88 +++++++++++++++++++ 5 files changed, 181 insertions(+), 3 deletions(-) create mode 100644 docs/en/14-reference/03-connector/60-r-lang.mdx rename docs/en/14-reference/03-connector/{10-php.mdx => 80-php.mdx} (100%) create mode 100644 docs/zh/08-connector/43-r-lang.mdx diff --git a/docs/en/14-reference/03-connector/60-r-lang.mdx b/docs/en/14-reference/03-connector/60-r-lang.mdx new file mode 100644 index 0000000000..852b2022a5 --- /dev/null +++ b/docs/en/14-reference/03-connector/60-r-lang.mdx @@ -0,0 +1,86 @@ +--- +toc_max_heading_level: 4 +sidebar_label: R +title: R Language Connector +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +import Rdemo from "../../07-develop/01-connect/_connect_r.mdx" + +By using the RJDBC library in R, you can enable R programs to access TDengine data. Here are the installation process, configuration steps, and an example code in R. + +## Installation Process + +Before getting started, make sure you have installed the R language environment. Then, follow these steps to install and configure the RJDBC library: + +1. Install Java Development Kit (JDK): RJDBC library requires Java environment. Download the appropriate JDK for your operating system from the official Oracle website and follow the installation guide. + +2. Install the RJDBC library: Execute the following command in the R console to install the RJDBC library. + +```r +install.packages("RJDBC", repos='http://cran.us.r-project.org') +``` + +:::note +On Linux systems, installing the RJDBC package may require installing the necessary components for compilation. For example, on Ubuntu, you can execute the command ``apt install -y libbz2-dev libpcre2-dev libicu-dev`` to install the required components. +On Windows systems, you need to set the **JAVA_HOME** environment variable. +::: + +3. Download the TDengine JDBC driver: Visit the Maven website and download the TDengine JDBC driver (taos-jdbcdriver-X.X.X-dist.jar) to your local machine. + +## Configuration Process + +Once you have completed the installation steps, you need to do some configuration to enable the RJDBC library to connect and access the TDengine time-series database. + +1. Load the RJDBC library and other necessary libraries in your R script: + +```r +library(DBI) +library(rJava) +library(RJDBC) +``` + +2. Set the JDBC driver and JDBC URL: + +```r +# Set the JDBC driver path (specify the location on your local machine) +driverPath <- "/path/to/taos-jdbcdriver-X.X.X-dist.jar" + +# Set the JDBC URL (specify the FQDN and credentials of your TDengine cluster) +url <- "jdbc:TAOS://localhost:6030/?user=root&password=taosdata" +``` + +3. Load the JDBC driver: + +```r +# Load the JDBC driver +drv <- JDBC("com.taosdata.jdbc.TSDBDriver", driverPath) +``` + +4. Create a TDengine database connection: + +```r +# Create a database connection +conn <- dbConnect(drv, url) +``` + +5. Once the connection is established, you can use the ``conn`` object for various database operations such as querying data and inserting data. + +6. Finally, don't forget to close the database connection after you are done: + +```r +# Close the database connection +dbDisconnect(conn) +``` + +## Example Code Using RJDBC in R + +Here's an example code that uses the RJDBC library to connect to a TDengine time-series database and perform a query operation: + + + +Please modify the JDBC driver, JDBC URL, username, password, and SQL query statement according to your specific TDengine time-series database environment and requirements. + +By following the steps and using the provided example code, you can use the RJDBC library in the R language to access the TDengine time-series database and perform tasks such as data querying and analysis. diff --git a/docs/en/14-reference/03-connector/10-php.mdx b/docs/en/14-reference/03-connector/80-php.mdx similarity index 100% rename from docs/en/14-reference/03-connector/10-php.mdx rename to docs/en/14-reference/03-connector/80-php.mdx diff --git a/docs/examples/R/connect_native.r b/docs/examples/R/connect_native.r index 3c5c9e199b..a6abe3e8fb 100644 --- a/docs/examples/R/connect_native.r +++ b/docs/examples/R/connect_native.r @@ -8,7 +8,7 @@ library("rJava") library("RJDBC") args<- commandArgs(trailingOnly = TRUE) -driver_path = args[1] # path to jdbc-driver for example: "/root/taos-jdbcdriver-3.0.0-dist.jar" +driver_path = args[1] # path to jdbc-driver for example: "/root/taos-jdbcdriver-3.2.4-dist.jar" driver = JDBC("com.taosdata.jdbc.TSDBDriver", driver_path) conn = dbConnect(driver, "jdbc:TAOS://127.0.0.1:6030/?user=root&password=taosdata") dbGetQuery(conn, "SELECT server_version()") diff --git a/docs/examples/R/connect_rest.r b/docs/examples/R/connect_rest.r index 5ceec572fc..bc5da3c15a 100644 --- a/docs/examples/R/connect_rest.r +++ b/docs/examples/R/connect_rest.r @@ -2,11 +2,15 @@ if (! "RJDBC" %in% installed.packages()[, "Package"]) { install.packages('RJDBC', repos='http://cran.us.r-project.org') } +# ANCHOR: demo library("DBI") library("rJava") library("RJDBC") -driver_path = "/home/debug/build/lib/taos-jdbcdriver-2.0.38-dist.jar" + +args<- commandArgs(trailingOnly = TRUE) +driver_path = args[1] # path to jdbc-driver for example: "/root/taos-jdbcdriver-3.2.4-dist.jar" driver = JDBC("com.taosdata.jdbc.rs.RestfulDriver", driver_path) conn = dbConnect(driver, "jdbc:TAOS-RS://localhost:6041?user=root&password=taosdata") dbGetQuery(conn, "SELECT server_version()") -dbDisconnect(conn) \ No newline at end of file +dbDisconnect(conn) +# ANCHOR_END: demo diff --git a/docs/zh/08-connector/43-r-lang.mdx b/docs/zh/08-connector/43-r-lang.mdx new file mode 100644 index 0000000000..3a4ed39748 --- /dev/null +++ b/docs/zh/08-connector/43-r-lang.mdx @@ -0,0 +1,88 @@ +--- +toc_max_heading_level: 4 +sidebar_label: R +title: R Language Connector +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +import Rdemo from "../07-develop/01-connect/_connect_r.mdx" + +通过 R 语言中的 RJDBC 库可以使 R 语言程序支持访问 TDengine 数据。以下是安装过程、配置过程以及 R 语言示例代码。 + +## 安装过程 + +在开始之前,请确保已经安装了R语言环境。然后按照以下步骤安装和配置RJDBC库: + +1. 安装Java Development Kit (JDK):RJDBC库需要依赖Java环境。请从Oracle官方网站下载适合您操作系统的JDK,并按照安装指南进行安装。 + +2. 安装RJDBC库:在R控制台中执行以下命令来安装RJDBC库。 + +```r +install.packages("RJDBC", repos='http://cran.us.r-project.org') +``` + +:::note +在 Linux 上安装 RJDBC 包可能需要安装编译需要的组件,以 Ubuntu 为例执行 `apt install -y libbz2-dev libpcre2-dev libicu-dev` 命令安装。 +在 Windows 系统上需要设置 JAVA_HOME 环境变量。 +::: + +3. 下载 TDengine JDBC 驱动程序:访问 maven.org 网站,下载 TDengine JDBC 驱动程序(taos-jdbcdriver-X.X.X-dist.jar)。 + +4. 将 TDengine JDBC 驱动程序放置在适当的位置:在您的计算机上选择一个合适的位置,将 TDengine JDBC 驱动程序文件(taos-jdbcdriver-X.X.X-dist.jar)保存在此处。 + +## 配置过程 + +完成了安装步骤后,您需要进行一些配置,以便RJDBC库能够正确连接和访问TDengine时序数据库。 + +1. 在 R 脚本中加载 RJDBC 和其他必要的库: + +```r +library(DBI) +library(rJava) +library(RJDBC) +``` + +2. 设置 JDBC 驱动程序和 JDBC URL: + +```r +# 设置JDBC驱动程序路径(根据您实际保存的位置进行修改) +driverPath <- "/path/to/taos-jdbcdriver-X.X.X-dist.jar" + +# 设置JDBC URL(根据您的具体环境进行修改) +url <- "jdbc:TAOS://localhost:6030/?user=root&password=taosdata" +``` + +3. 加载 JDBC 驱动程序: + +```r +# 加载JDBC驱动程序 +drv <- JDBC("com.taosdata.jdbc.TSDBDriver", driverPath) +``` + +4. 创建 TDengine 数据库连接: + +```r +# 创建数据库连接 +conn <- dbConnect(drv, url) +``` + +5. 连接成功后,您可以使用 conn 对象进行各种数据库操作,如查询数据、插入数据等。 + +6. 最后,不要忘记在使用完成后关闭数据库连接: + +```r +# 关闭数据库连接 +dbDisconnect(conn) +``` + +## 使用 RJDBC 的 R 语言示例代码 + +以下是一个使用 RJDBC 库连接 TDengine 时序数据库并执行查询操作的示例代码: + + + +请根据您的实际情况修改JDBC驱动程序、JDBC URL、用户名、密码以及SQL查询语句,以适配您的 TDengine 时序数据库环境和要求。 + +通过以上步骤和示例代码,您可以在 R 语言环境中使用 RJDBC 库访问 TDengine 时序数据库,进行数据查询和分析等操作。 From f90f0b70478725fb0e07b3fe0274b254fe8277e1 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 2 Aug 2023 15:51:51 +0800 Subject: [PATCH 82/83] disable infinite count loop --- source/dnode/vnode/src/tsdb/tsdbMergeTree.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c index d74584f844..e0cb54298c 100644 --- a/source/dnode/vnode/src/tsdb/tsdbMergeTree.c +++ b/source/dnode/vnode/src/tsdb/tsdbMergeTree.c @@ -359,7 +359,7 @@ static int32_t suidComparFn(const void *target, const void *p2) { if (*uid2 == (*targetUid)) { return 0; } else { - return (*targetUid) < (*uid2) ? -1:1; + return (*targetUid) < (*uid2) ? -1 : 1; } } @@ -381,7 +381,7 @@ static bool existsFromSttBlkStatis(const TStatisBlkArray *pStatisBlkArray, uint6 return false; } - while(i < TARRAY2_SIZE(pStatisBlkArray)) { + while (i < TARRAY2_SIZE(pStatisBlkArray)) { SStatisBlk *p = &pStatisBlkArray->data[i]; if (p->minTbid.suid > suid) { return false; @@ -476,12 +476,12 @@ int32_t tLDataIterOpen2(struct SLDataIter *pIter, SSttFileReader *pSttFileReader tsdbDebug("load the stt file info completed, elapsed time:%.2fms, %s", el, idStr); } - bool exists = existsFromSttBlkStatis(pBlockLoadInfo->pSttStatisBlkArray, suid, uid, pIter->pReader); - if (!exists) { - pIter->iSttBlk = -1; - pIter->pSttBlk = NULL; - return TSDB_CODE_SUCCESS; - } + // bool exists = existsFromSttBlkStatis(pBlockLoadInfo->pSttStatisBlkArray, suid, uid, pIter->pReader); + // if (!exists) { + // pIter->iSttBlk = -1; + // pIter->pSttBlk = NULL; + // return TSDB_CODE_SUCCESS; + // } // find the start block, actually we could load the position to avoid repeatly searching for the start position when // the skey is updated. From fb4ed263b6bcaf5de06d650dd9257d263a82e6c8 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Wed, 2 Aug 2023 17:02:42 +0800 Subject: [PATCH 83/83] test: make connect_native.r a bit perplexing (#22291) --- docs/examples/R/connect_native.r | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/examples/R/connect_native.r b/docs/examples/R/connect_native.r index a6abe3e8fb..bd764c3ec4 100644 --- a/docs/examples/R/connect_native.r +++ b/docs/examples/R/connect_native.r @@ -12,5 +12,9 @@ driver_path = args[1] # path to jdbc-driver for example: "/root/taos-jdbcdriver- driver = JDBC("com.taosdata.jdbc.TSDBDriver", driver_path) conn = dbConnect(driver, "jdbc:TAOS://127.0.0.1:6030/?user=root&password=taosdata") dbGetQuery(conn, "SELECT server_version()") +dbSendUpdate(conn, "create database if not exists rtest") +dbSendUpdate(conn, "create table if not exists rtest.test (ts timestamp, current float, voltage int, devname varchar(20))") +dbSendUpdate(conn, "insert into rtest.test values (now, 1.2, 220, 'test')") +dbGetQuery(conn, "select * from rtest.test") dbDisconnect(conn) # ANCHOR_END: demo