From 930252e35cb5fb21b24790630a157efd17fd49e4 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 29 Jun 2022 07:00:04 +0000 Subject: [PATCH 1/2] more --- .../dnode/vnode/src/tsdb/tsdbReaderWriter.c | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c b/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c index c75d7964a1..ef9d7c0424 100644 --- a/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c +++ b/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c @@ -876,37 +876,37 @@ static int32_t tsdbReadSubBlockData(SDataFReader *pReader, SBlockIdx *pBlockIdx, goto _err; } - // check - p = *ppBuf1; - SBlockDataHdr *pHdr = (SBlockDataHdr *)p; - ASSERT(pHdr->delimiter == TSDB_FILE_DLMT); - ASSERT(pHdr->suid == pBlockIdx->suid); - ASSERT(pHdr->uid == pBlockIdx->uid); - p += sizeof(*pHdr); + // // check + // p = *ppBuf1; + // SBlockDataHdr *pHdr = (SBlockDataHdr *)p; + // ASSERT(pHdr->delimiter == TSDB_FILE_DLMT); + // ASSERT(pHdr->suid == pBlockIdx->suid); + // ASSERT(pHdr->uid == pBlockIdx->uid); + // p += sizeof(*pHdr); - if (!taosCheckChecksumWhole(p, pSubBlock->vsize + pSubBlock->ksize + sizeof(TSCKSUM))) { - code = TSDB_CODE_FILE_CORRUPTED; - goto _err; - } - p += (pSubBlock->vsize + pSubBlock->ksize + sizeof(TSCKSUM)); + // if (!taosCheckChecksumWhole(p, pSubBlock->vsize + pSubBlock->ksize + sizeof(TSCKSUM))) { + // code = TSDB_CODE_FILE_CORRUPTED; + // goto _err; + // } + // p += (pSubBlock->vsize + pSubBlock->ksize + sizeof(TSCKSUM)); - for (int32_t iBlockCol = 0; iBlockCol < pSubBlock->mBlockCol.nItem; iBlockCol++) { - tMapDataGetItemByIdx(&pSubBlock->mBlockCol, iBlockCol, pBlockCol, tGetBlockCol); + // for (int32_t iBlockCol = 0; iBlockCol < pSubBlock->mBlockCol.nItem; iBlockCol++) { + // tMapDataGetItemByIdx(&pSubBlock->mBlockCol, iBlockCol, pBlockCol, tGetBlockCol); - ASSERT(pBlockCol->flag && pBlockCol->flag != HAS_NONE); + // ASSERT(pBlockCol->flag && pBlockCol->flag != HAS_NONE); - if (pBlockCol->flag == HAS_NULL) continue; + // if (pBlockCol->flag == HAS_NULL) continue; - if (!taosCheckChecksumWhole(p, pBlockCol->bsize + pBlockCol->csize + sizeof(TSCKSUM))) { - code = TSDB_CODE_FILE_CORRUPTED; - goto _err; - } - p = p + pBlockCol->bsize + pBlockCol->csize + sizeof(TSCKSUM); - } + // if (!taosCheckChecksumWhole(p, pBlockCol->bsize + pBlockCol->csize + sizeof(TSCKSUM))) { + // code = TSDB_CODE_FILE_CORRUPTED; + // goto _err; + // } + // p = p + pBlockCol->bsize + pBlockCol->csize + sizeof(TSCKSUM); + // } // recover pBlockData->nRow = pSubBlock->nRow; - p = *ppBuf1 + sizeof(*pHdr); + p = *ppBuf1 + sizeof(SBlockDataHdr); code = tsdbRecoverBlockDataKey(pBlockData, pSubBlock, *ppBuf1, ppBuf2); if (code) goto _err; From c595b8cf519500b0538ad6cfe7bfd10ad959c54b Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 29 Jun 2022 07:07:01 +0000 Subject: [PATCH 2/2] more work --- source/dnode/vnode/src/tsdb/tsdbCommit.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCommit.c b/source/dnode/vnode/src/tsdb/tsdbCommit.c index 6f4dacdf41..7d7a7cfc2b 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCommit.c +++ b/source/dnode/vnode/src/tsdb/tsdbCommit.c @@ -405,6 +405,28 @@ _exit: return code; } +static int32_t tsdbCommitBlockData(SCommitter *pCommitter, SBlockData *pBlockData, SBlock *pBlock, SBlockIdx *pBlockIdx, + int8_t toDataOnly) { + int32_t code = 0; + + if (!toDataOnly && pBlockData->nRow < pCommitter->minRow) { + pBlock->last = 1; + } else { + pBlock->last = 0; + } + + code = tsdbWriteBlockData(pCommitter->pWriter, pBlockData, NULL, NULL, pBlockIdx, pBlock, pCommitter->cmprAlg); + if (code) goto _err; + + code = tMapDataPutItem(&pCommitter->nBlockMap, pBlock, tPutBlock); + if (code) goto _err; + + return code; + +_err: + return code; +} + static int32_t tsdbMergeTableData(SCommitter *pCommitter, STbDataIter *pIter, SBlock *pBlockMerge, TSDBKEY toKey, int8_t toDataOnly) { int32_t code = 0; @@ -552,7 +574,7 @@ static int32_t tsdbCommitTableMemData(SCommitter *pCommitter, STbDataIter *pIter continue; _write_block: - if (!toDataOnly && pBlockData->nRow < pCommitter->minKey) { + if (!toDataOnly && pBlockData->nRow < pCommitter->minRow) { pBlock->last = 1; } else { pBlock->last = 0;