From 2c66f44b3165ca0bbe4f5ddbc0af630882b5715e Mon Sep 17 00:00:00 2001 From: Shungang Li Date: Tue, 10 Oct 2023 18:39:51 +0800 Subject: [PATCH] fix(tsdb): ensure sst trigger array size for upgrade --- include/util/tdef.h | 1 + source/dnode/vnode/src/inc/tsdb.h | 6 +++--- source/dnode/vnode/src/tsdb/tsdbCommit.c | 6 +++--- source/dnode/vnode/src/tsdb/tsdbReaderWriter.c | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/include/util/tdef.h b/include/util/tdef.h index 7623b8dee9..287617970c 100644 --- a/include/util/tdef.h +++ b/include/util/tdef.h @@ -382,6 +382,7 @@ typedef enum ELogicConditionType { #define TSDB_MAX_STT_TRIGGER 1 #define TSDB_DEFAULT_SST_TRIGGER 1 #endif +#define TSDB_STT_TRIGGER_ARRAY_SIZE 16 // maximum of TSDB_MAX_STT_TRIGGER of TD_ENTERPRISE and TD_COMMUNITY #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 diff --git a/source/dnode/vnode/src/inc/tsdb.h b/source/dnode/vnode/src/inc/tsdb.h index edcce83a05..66e7b99d55 100644 --- a/source/dnode/vnode/src/inc/tsdb.h +++ b/source/dnode/vnode/src/inc/tsdb.h @@ -625,7 +625,7 @@ struct SDFileSet { SDataFile *pDataF; SSmaFile *pSmaF; uint8_t nSttF; - SSttFile *aSttF[TSDB_MAX_STT_TRIGGER]; + SSttFile *aSttF[TSDB_STT_TRIGGER_ARRAY_SIZE]; }; struct STSDBRowIter { @@ -694,7 +694,7 @@ struct SDataFWriter { SHeadFile fHead; SDataFile fData; SSmaFile fSma; - SSttFile fStt[TSDB_MAX_STT_TRIGGER]; + SSttFile fStt[TSDB_STT_TRIGGER_ARRAY_SIZE]; uint8_t *aBuf[4]; }; @@ -705,7 +705,7 @@ struct SDataFReader { STsdbFD *pHeadFD; STsdbFD *pDataFD; STsdbFD *pSmaFD; - STsdbFD *aSttFD[TSDB_MAX_STT_TRIGGER]; + STsdbFD *aSttFD[TSDB_STT_TRIGGER_ARRAY_SIZE]; uint8_t *aBuf[3]; }; diff --git a/source/dnode/vnode/src/tsdb/tsdbCommit.c b/source/dnode/vnode/src/tsdb/tsdbCommit.c index 908c0eff34..b4c2c0a979 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCommit.c +++ b/source/dnode/vnode/src/tsdb/tsdbCommit.c @@ -69,7 +69,7 @@ typedef struct { SDataIter *pIter; SRBTree rbt; SDataIter dataIter; - SDataIter aDataIter[TSDB_MAX_STT_TRIGGER]; + SDataIter aDataIter[TSDB_STT_TRIGGER_ARRAY_SIZE]; int8_t toLastOnly; }; struct { @@ -865,7 +865,7 @@ static int32_t tsdbCommitDataStart(SCommitter *pCommitter) { TSDB_CHECK_CODE(code, lino, _exit); // merger - for (int32_t iStt = 0; iStt < TSDB_MAX_STT_TRIGGER; iStt++) { + for (int32_t iStt = 0; iStt < TSDB_STT_TRIGGER_ARRAY_SIZE; iStt++) { SDataIter *pIter = &pCommitter->aDataIter[iStt]; pIter->aSttBlk = taosArrayInit(0, sizeof(SSttBlk)); if (pIter->aSttBlk == NULL) { @@ -915,7 +915,7 @@ static void tsdbCommitDataEnd(SCommitter *pCommitter) { tBlockDataDestroy(&pCommitter->dReader.bData); // merger - for (int32_t iStt = 0; iStt < TSDB_MAX_STT_TRIGGER; iStt++) { + for (int32_t iStt = 0; iStt < TSDB_STT_TRIGGER_ARRAY_SIZE; iStt++) { SDataIter *pIter = &pCommitter->aDataIter[iStt]; taosArrayDestroy(pIter->aSttBlk); tBlockDataDestroy(&pIter->bData); diff --git a/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c b/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c index 8c3efda856..f3bcfef703 100644 --- a/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c +++ b/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c @@ -1000,7 +1000,7 @@ int32_t tsdbDataFReaderClose(SDataFReader **ppReader) { tsdbCloseFile(&(*ppReader)->pSmaFD); // stt - for (int32_t iStt = 0; iStt < TSDB_MAX_STT_TRIGGER; iStt++) { + for (int32_t iStt = 0; iStt < TSDB_STT_TRIGGER_ARRAY_SIZE; iStt++) { if ((*ppReader)->aSttFD[iStt]) { tsdbCloseFile(&(*ppReader)->aSttFD[iStt]); }