From 1440c1b942d112d1922a8523efedb2e70d856e65 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Tue, 5 Mar 2024 16:13:14 +0800 Subject: [PATCH] more code --- source/dnode/vnode/src/tsdb/tsdbDataFileRW.c | 53 +++++++++----------- source/dnode/vnode/src/tsdb/tsdbFSetRW.c | 11 ++-- source/dnode/vnode/src/tsdb/tsdbSttFileRW.h | 2 +- 3 files changed, 31 insertions(+), 35 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c b/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c index 1d22d0fe68..a7e7877611 100644 --- a/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c +++ b/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c @@ -770,42 +770,37 @@ int32_t tsdbFileWriteBrinBlock(STsdbFD *fd, SBrinBlock *brinBlock, int8_t cmprAl // write primary keys to file if (brinBlock->numOfPKs > 0) { -#if 0 - SBufferWriter writer; - SValueColumnCompressInfo vcinfo = {.cmprAlg = cmprAlg}; - - tBufferClear(NULL); - tBufferWriterInit(&writer, true, 0, NULL /* TODO */); - - for (int32_t i = 0; i < brinBlk.numOfPKs; i++) { - code = tValueColumnCompress(&brinBlock->firstKeyPKs[i], &vcinfo, NULL /* TODO */, NULL /* TODO */); - if (code) return code; - - code = tValueColumnCompressInfoEncode(&vcinfo, &writer); - if (code) return code; + for (int i = 0; i < 2; i++) { + tBufferClear(&buffers[i]); } - for (int32_t i = 0; i < brinBlk.numOfPKs; i++) { - code = tValueColumnCompress(&brinBlock->lastKeyPKs[i], &vcinfo, NULL /* TODO */, NULL /* TODO */); + // encode + for (int i = 0; i < brinBlock->numOfPKs; i++) { + SValueColumnCompressInfo info = { + .cmprAlg = cmprAlg, + }; + code = tValueColumnCompress(&brinBlock->firstKeyPKs[i], &info, &buffers[1], &buffers[2]); if (code) return code; - - code = tValueColumnCompressInfoEncode(&vcinfo, &writer); + code = tValueColumnCompressInfoEncode(&info, &buffers[0]); + if (code) return code; + } + for (int i = 0; i < brinBlock->numOfPKs; i++) { + SValueColumnCompressInfo info = { + .cmprAlg = cmprAlg, + }; + code = tValueColumnCompress(&brinBlock->lastKeyPKs[i], &info, &buffers[1], &buffers[2]); + if (code) return code; + code = tValueColumnCompressInfoEncode(&info, &buffers[0]); if (code) return code; } // write to file - // TODO - ASSERT(0); - // code = tsdbWriteFile(fd, *fileSize, NULL /* TODO */, tBufferGetSize(NULL)); - // if (code) return code; - // *fileSize += tBufferGetSize(NULL); - // brinBlk->dp->size += tBufferGetSize(NULL); - - // code = tsdbWriteFile(fd, *fileSize, NULL /* TODO */, tBufferGetSize(NULL)); - // if (code) return code; - // *fileSize += tBufferGetSize(NULL); - // brinBlk->dp->size += tBufferGetSize(NULL); -#endif + for (int i = 0; i < 2; i++) { + code = tsdbWriteFile(fd, *fileSize, buffers[i].data, buffers[i].size); + if (code) return code; + brinBlk.dp->size += buffers[i].size; + *fileSize += buffers[i].size; + } } // append to brinBlkArray diff --git a/source/dnode/vnode/src/tsdb/tsdbFSetRW.c b/source/dnode/vnode/src/tsdb/tsdbFSetRW.c index c8b029751f..0db1630a9c 100644 --- a/source/dnode/vnode/src/tsdb/tsdbFSetRW.c +++ b/source/dnode/vnode/src/tsdb/tsdbFSetRW.c @@ -21,7 +21,7 @@ struct SFSetWriter { SSkmInfo skmTb[1]; SSkmInfo skmRow[1]; - uint8_t *bufArr[10]; + SBuffer buffers[10]; struct { TABLEID tbid[1]; @@ -148,7 +148,7 @@ int32_t tsdbFSetWriterOpen(SFSetWriterConfig *config, SFSetWriter **writer) { .compactVersion = config->compactVersion, .skmTb = writer[0]->skmTb, .skmRow = writer[0]->skmRow, - .bufArr = writer[0]->bufArr, + .buffers = writer[0]->buffers, }; for (int32_t ftype = 0; ftype < TSDB_FTYPE_MAX; ++ftype) { dataWriterConfig.files[ftype].exist = config->files[ftype].exist; @@ -172,7 +172,8 @@ int32_t tsdbFSetWriterOpen(SFSetWriterConfig *config, SFSetWriter **writer) { .level = config->level, .skmTb = writer[0]->skmTb, .skmRow = writer[0]->skmRow, - .bufArr = writer[0]->bufArr, + .buffers = writer[0]->buffers, + }; code = tsdbSttFileWriterOpen(&sttWriterConfig, &writer[0]->sttWriter); TSDB_CHECK_CODE(code, lino, _exit); @@ -208,8 +209,8 @@ int32_t tsdbFSetWriterClose(SFSetWriter **writer, bool abort, TFileOpArray *fopA for (int32_t i = 0; i < ARRAY_SIZE(writer[0]->blockData); i++) { tBlockDataDestroy(&writer[0]->blockData[i]); } - for (int32_t i = 0; i < ARRAY_SIZE(writer[0]->bufArr); i++) { - tFree(writer[0]->bufArr[i]); + for (int32_t i = 0; i < ARRAY_SIZE(writer[0]->buffers); i++) { + tBufferDestroy(&writer[0]->buffers[i]); } tDestroyTSchema(writer[0]->skmRow->pTSchema); tDestroyTSchema(writer[0]->skmTb->pTSchema); diff --git a/source/dnode/vnode/src/tsdb/tsdbSttFileRW.h b/source/dnode/vnode/src/tsdb/tsdbSttFileRW.h index 0051a6cd92..a62559472a 100644 --- a/source/dnode/vnode/src/tsdb/tsdbSttFileRW.h +++ b/source/dnode/vnode/src/tsdb/tsdbSttFileRW.h @@ -86,7 +86,7 @@ struct SSttFileWriterConfig { int32_t level; SSkmInfo *skmTb; SSkmInfo *skmRow; - uint8_t **bufArr; + SBuffer *buffers; }; #ifdef __cplusplus