diff --git a/source/dnode/vnode/src/tsdb/dev/inc/tsdbDataFReaderWriter.h b/source/dnode/vnode/src/tsdb/dev/inc/tsdbDataFReaderWriter.h index 1ebcbf387b125b0d09424f3f7cf4737584eaded9..565aca00b1d027b63d3d132ec6d683a35d61355a 100644 --- a/source/dnode/vnode/src/tsdb/dev/inc/tsdbDataFReaderWriter.h +++ b/source/dnode/vnode/src/tsdb/dev/inc/tsdbDataFReaderWriter.h @@ -30,6 +30,11 @@ typedef struct SDataFileReaderConfig SDataFileReaderConfig; typedef struct SDataFileWriter SDataFileWriter; typedef struct SDataFileWriterConfig SDataFileWriterConfig; +int32_t tsdbDataFileWriterOpen(const SDataFileWriterConfig *config, SDataFileWriter **ppWriter); +int32_t tsdbDataFileWriterClose(SDataFileWriter *pWriter); +int32_t tsdbDataFileWriteTSData(SDataFileWriter *pWriter, SBlockData *pBlockData); +int32_t tsdbDataFileWriteTSDataBlock(SDataFileWriter *pWriter, SBlockData *pBlockData); + struct SDataFileReaderConfig { STsdb *pTsdb; // TODO diff --git a/source/dnode/vnode/src/tsdb/dev/inc/tsdbSttFReaderWriter.h b/source/dnode/vnode/src/tsdb/dev/inc/tsdbSttFReaderWriter.h index 683c9e9e696e5e6b5a9c35091af52ad31bd871d1..7f6cea0abbdc7957ca4a7c8c5a3c9d2379eb61ea 100644 --- a/source/dnode/vnode/src/tsdb/dev/inc/tsdbSttFReaderWriter.h +++ b/source/dnode/vnode/src/tsdb/dev/inc/tsdbSttFReaderWriter.h @@ -22,7 +22,7 @@ extern "C" { #endif -// SSttFReader ========================================== +// SSttFileReader ========================================== typedef struct SSttFSegReader SSttFSegReader; typedef struct SSttFileReader SSttFileReader; typedef struct SSttFileReaderConfig SSttFileReaderConfig; @@ -50,7 +50,7 @@ struct SSttFileReaderConfig { // TODO }; -// SSttFWriter ========================================== +// SSttFileWriter ========================================== typedef struct SSttFileWriter SSttFileWriter; typedef struct SSttFileWriterConfig SSttFileWriterConfig; diff --git a/source/dnode/vnode/src/tsdb/dev/tsdbDataFReaderWriter.c b/source/dnode/vnode/src/tsdb/dev/tsdbDataFReaderWriter.c index bccd5ce97a5144ef5db25af71ee6b6bec8be6d5e..221106899eed2f96f5ee035a9948ec8aba92419d 100644 --- a/source/dnode/vnode/src/tsdb/dev/tsdbDataFReaderWriter.c +++ b/source/dnode/vnode/src/tsdb/dev/tsdbDataFReaderWriter.c @@ -23,4 +23,52 @@ struct SDataFileReader { // SDataFileWriter ============================================= struct SDataFileWriter { // TODO -}; \ No newline at end of file +}; + +int32_t tsdbDataFileWriterOpen(const SDataFileWriterConfig *config, SDataFileWriter **ppWriter) { + int32_t code = 0; + int32_t lino = 0; + int32_t vid = TD_VID(config->pTsdb->pVnode); +// TODO +_exit: + if (code) { + tsdbError("vgId:%d %s failed at line %d since %s", vid, __func__, lino, tstrerror(code)); + } + return code; +} + +int32_t tsdbDataFileWriterClose(SDataFileWriter *pWriter) { + int32_t code = 0; + int32_t lino = 0; + int32_t vid = 0; // TODO: TD_VID(config->pTsdb->pVnode); +// TODO +_exit: + if (code) { + tsdbError("vgId:%d %s failed at line %d since %s", vid, __func__, lino, tstrerror(code)); + } + return code; +} + +int32_t tsdbDataFileWriteTSData(SDataFileWriter *pWriter, SBlockData *pBlockData) { + int32_t code = 0; + int32_t lino = 0; + int32_t vid = 0; // TODO: TD_VID(config->pTsdb->pVnode); +// TODO +_exit: + if (code) { + tsdbError("vgId:%d %s failed at line %d since %s", vid, __func__, lino, tstrerror(code)); + } + return code; +} + +int32_t tsdbDataFileWriteTSDataBlock(SDataFileWriter *pWriter, SBlockData *pBlockData) { + int32_t code = 0; + int32_t lino = 0; + int32_t vid = 0; // TODO: TD_VID(config->pTsdb->pVnode); +// TODO +_exit: + if (code) { + tsdbError("vgId:%d %s failed at line %d since %s", vid, __func__, lino, tstrerror(code)); + } + return code; +} \ No newline at end of file diff --git a/source/dnode/vnode/src/tsdb/dev/tsdbMerge.c b/source/dnode/vnode/src/tsdb/dev/tsdbMerge.c index f8b972562faed23471736e11c52fc68dca935f91..823d29edb4312d26d4132f704d0047d7ee6c33af 100644 --- a/source/dnode/vnode/src/tsdb/dev/tsdbMerge.c +++ b/source/dnode/vnode/src/tsdb/dev/tsdbMerge.c @@ -197,9 +197,13 @@ static int32_t tsdbMergeFileSetBegin(SMerger *merger) { merger->ctx.level++; // open the reader - SSttFileReader *reader; - // code = tsdbSttFileReaderOpen(&fobj->f.stt, &reader); - // TSDB_CHECK_CODE(code, lino, _exit); + SSttFileReader *reader; + SSttFileReaderConfig config = { + .pTsdb = merger->tsdb, + // TODO + }; + code = tsdbSttFReaderOpen(&config, &reader); + TSDB_CHECK_CODE(code, lino, _exit); code = TARRAY2_APPEND(&merger->sttReaderArr, reader); TSDB_CHECK_CODE(code, lino, _exit); @@ -216,34 +220,50 @@ static int32_t tsdbMergeFileSetBegin(SMerger *merger) { } // open stt file writer - SSttFileWriterConfig config = { - .pTsdb = merger->tsdb, - .maxRow = merger->maxRow, - .szPage = merger->szPage, - .cmprAlg = merger->cmprAlg, - .pSkmTb = &merger->skmTb, - .pSkmRow = &merger->skmRow, - .aBuf = merger->aBuf, - }; if (lvl) { - config.file = fobj->f; + SSttFileWriterConfig config = { + .pTsdb = merger->tsdb, + .maxRow = merger->maxRow, + .szPage = merger->szPage, + .cmprAlg = merger->cmprAlg, + .pSkmTb = &merger->skmTb, + .pSkmRow = &merger->skmRow, + .aBuf = merger->aBuf, + .file = fobj->f, + }; + code = tsdbSttFWriterOpen(&config, &merger->sttWriter); + TSDB_CHECK_CODE(code, lino, _exit); } else { - config.file = (STFile){ - .type = TSDB_FTYPE_STT, - .did = {.level = 0, .id = 0}, - .fid = fset->fid, - .cid = merger->cid, - .size = 0, - .stt = {.level = merger->ctx.level, .nseg = 0}, + SSttFileWriterConfig config = { + .pTsdb = merger->tsdb, + .maxRow = merger->maxRow, + .szPage = merger->szPage, + .cmprAlg = merger->cmprAlg, + .pSkmTb = &merger->skmTb, + .pSkmRow = &merger->skmRow, + .aBuf = merger->aBuf, + .file = + (STFile){ + .type = TSDB_FTYPE_STT, + .did = {.level = 0, .id = 0}, + .fid = fset->fid, + .cid = merger->cid, + .size = 0, + .stt = {.level = merger->ctx.level, .nseg = 0}, + }, }; + code = tsdbSttFWriterOpen(&config, &merger->sttWriter); + TSDB_CHECK_CODE(code, lino, _exit); } - code = tsdbSttFWriterOpen(&config, &merger->sttWriter); - TSDB_CHECK_CODE(code, lino, _exit); // open data file writer if (merger->ctx.toData) { - // code = tsdbDataFWriterOpen(); - // TSDB_CHECK_CODE(code, lino, _exit); + SDataFileWriterConfig config = { + .pTsdb = merger->tsdb, + // TODO + }; + code = tsdbDataFileWriterOpen(&config, &merger->dataWriter); + TSDB_CHECK_CODE(code, lino, _exit); } _exit: