From af1724fb4261e9b67f1ed48e52e5b4adfecfe7ca Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Mon, 20 Jun 2022 03:05:32 +0000 Subject: [PATCH] more refact --- source/dnode/vnode/src/inc/tsdb.h | 18 +++++++++--------- source/dnode/vnode/src/tsdb/tsdbCommit.c | 10 +++++----- source/dnode/vnode/src/tsdb/tsdbMemTable.c | 4 ++-- source/dnode/vnode/src/tsdb/tsdbUtil.c | 20 ++++++++++++++++++++ 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/source/dnode/vnode/src/inc/tsdb.h b/source/dnode/vnode/src/inc/tsdb.h index 4a4ee9d8fb..584a34d7ba 100644 --- a/source/dnode/vnode/src/inc/tsdb.h +++ b/source/dnode/vnode/src/inc/tsdb.h @@ -59,7 +59,6 @@ typedef struct STsdbIndexFile STsdbIndexFile; typedef struct STsdbDataFile STsdbDataFile; typedef struct STsdbLastFile STsdbLastFile; typedef struct STsdbSmaFile STsdbSmaFile; -typedef struct STsdbSmalFile STsdbSmalFile; typedef struct SDFileSet SDFileSet; typedef struct SDataFWriter SDataFWriter; typedef struct SDataFReader SDataFReader; @@ -84,13 +83,11 @@ int32_t tTABLEIDCmprFn(const void *p1, const void *p2); // TSDBKEY int32_t tsdbKeyCmprFn(const void *p1, const void *p2); // KEYINFO -#define KEYINFO_INIT_VAL \ - ((KEYINFO){.maxKey.ts = TSKEY_MIN, \ - .maxKey.version = 0, \ - .minKey.ts = TSKEY_MAX, \ - .minKey.version = INT64_MAX, \ - .minVerion = INT64_MAX, \ - .maxVersion = 0}) +#define tKEYINFOInit() \ + ((KEYINFO){.maxKey = {.ts = TSKEY_MIN, .version = 0}, \ + .minKey = {.ts = TSKEY_MAX, .version = -1}, \ + .minVerion = INT64_MAX, \ + .maxKey = -1}) int32_t tPutKEYINFO(uint8_t *p, KEYINFO *pKeyInfo); int32_t tGetKEYINFO(uint8_t *p, KEYINFO *pKeyInfo); // SColdata @@ -99,7 +96,9 @@ int32_t tColDataCmprFn(const void *p1, const void *p2); int32_t tPutBlockIdx(uint8_t *p, void *ph); int32_t tGetBlockIdx(uint8_t *p, void *ph); // SBlock -#define BLOCK_INIT_VAL ((SBlock){}) +#define tBlockInit() ((SBlock){.info = tKEYINFOInit()}) +void tBlockReset(SBlock *pBlock); +void tBlockClear(SBlock *pBlock); int32_t tPutBlock(uint8_t *p, void *ph); int32_t tGetBlock(uint8_t *p, void *ph); int32_t tBlockCmprFn(const void *p1, const void *p2); @@ -121,6 +120,7 @@ int32_t tGetDelData(uint8_t *p, void *ph); int32_t tsdbRealloc(uint8_t **ppBuf, int64_t size); void tsdbFree(uint8_t *pBuf); // SMapData +#define tMapDataInit() ((SMapData){0}) void tMapDataReset(SMapData *pMapData); void tMapDataClear(SMapData *pMapData); int32_t tMapDataPutItem(SMapData *pMapData, void *pItem, int32_t (*tPutItemFn)(uint8_t *, void *)); diff --git a/source/dnode/vnode/src/tsdb/tsdbCommit.c b/source/dnode/vnode/src/tsdb/tsdbCommit.c index df6ff7caa4..5d610526e8 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCommit.c +++ b/source/dnode/vnode/src/tsdb/tsdbCommit.c @@ -349,7 +349,7 @@ static int32_t tsdbCommitMemoryData(SCommitter *pCommitter, SBlockIdx *pBlockIdx bool toDataOnly) { int32_t code = 0; TSDBROW *pRow; - SBlock block; // TODO + SBlock block = tBlockInit(); while (true) { pRow = tsdbTbDataIterGet(pIter); @@ -382,7 +382,7 @@ static int32_t tsdbCommitMemoryData(SCommitter *pCommitter, SBlockIdx *pBlockIdx code = tMapDataPutItem(&pCommitter->nBlock, &block, tPutBlock); if (code) goto _err; - block = BLOCK_INIT_VAL; + tBlockReset(&block); tsdbBlockDataClear(&pCommitter->bDataN); } @@ -427,7 +427,7 @@ static int32_t tsdbMergeCommitImpl(SCommitter *pCommitter, SBlockIdx *pBlockIdx, int32_t nRow = 0; int32_t c; TSDBROW *pRow; - SBlock block = BLOCK_INIT_VAL; + SBlock block = tBlockInit(); TSDBKEY key1; TSDBKEY key2; @@ -461,7 +461,7 @@ static int32_t tsdbMergeCommitImpl(SCommitter *pCommitter, SBlockIdx *pBlockIdx, if (code) goto _err; } - block = BLOCK_INIT_VAL; + tBlockReset(&block); tsdbBlockDataClear(&pCommitter->bDataN); return code; @@ -474,7 +474,7 @@ _err: static int32_t tsdbMergeCommit(SCommitter *pCommitter, SBlockIdx *pBlockIdx, STbDataIter *pIter, SBlock *pBlock) { int32_t code = 0; TSDBROW *pRow; - SBlock block = BLOCK_INIT_VAL; + SBlock block = tBlockInit(); SBlockData bDataN; TSDBKEY key; int32_t c; diff --git a/source/dnode/vnode/src/tsdb/tsdbMemTable.c b/source/dnode/vnode/src/tsdb/tsdbMemTable.c index a293960545..84465c3219 100644 --- a/source/dnode/vnode/src/tsdb/tsdbMemTable.c +++ b/source/dnode/vnode/src/tsdb/tsdbMemTable.c @@ -42,7 +42,7 @@ int32_t tsdbMemTableCreate(STsdb *pTsdb, SMemTable **ppMemTable) { taosInitRWLatch(&pMemTable->latch); pMemTable->pTsdb = pTsdb; pMemTable->nRef = 1; - pMemTable->info = KEYINFO_INIT_VAL; + pMemTable->info = tKEYINFOInit(); pMemTable->nRow = 0; pMemTable->nDel = 0; pMemTable->aTbData = taosArrayInit(128, sizeof(STbData *)); @@ -318,7 +318,7 @@ static int32_t tsdbGetOrCreateTbData(SMemTable *pMemTable, tb_uid_t suid, tb_uid } pTbData->suid = suid; pTbData->uid = uid; - pTbData->info = KEYINFO_INIT_VAL; + pTbData->info = tKEYINFOInit(); pTbData->pHead = NULL; pTbData->pTail = NULL; pTbData->sl.seed = taosRand(); diff --git a/source/dnode/vnode/src/tsdb/tsdbUtil.c b/source/dnode/vnode/src/tsdb/tsdbUtil.c index 941399283a..1a01656496 100644 --- a/source/dnode/vnode/src/tsdb/tsdbUtil.c +++ b/source/dnode/vnode/src/tsdb/tsdbUtil.c @@ -275,6 +275,26 @@ int32_t tGetBlockIdx(uint8_t *p, void *ph) { } // SBlock ====================================================== +void tBlockReset(SBlock *pBlock) { + pBlock->info = tKEYINFOInit(); + pBlock->nRow = 0; + pBlock->last = -1; + pBlock->cmprAlg = -1; + for (int8_t iSubBlock = 0; iSubBlock < pBlock->nSubBlock; iSubBlock++) { + pBlock->aSubBlock[iSubBlock].offset = -1; + pBlock->aSubBlock[iSubBlock].ksize = -1; + pBlock->aSubBlock[iSubBlock].bsize = -1; + tMapDataReset(&pBlock->aSubBlock->mBlockCol); + } + pBlock->nSubBlock = 0; +} + +void tBlockClear(SBlock *pBlock) { + for (int8_t iSubBlock = 0; iSubBlock < TSDB_MAX_SUBBLOCKS; iSubBlock++) { + tMapDataClear(&pBlock->aSubBlock->mBlockCol); + } +} + int32_t tPutBlock(uint8_t *p, void *ph) { int32_t n = 0; SBlock *pBlock = (SBlock *)ph; -- GitLab