diff --git a/source/dnode/vnode/src/tsdb/dev/inc/tsdbDataFReaderWriter.h b/source/dnode/vnode/src/tsdb/dev/inc/tsdbDataFReaderWriter.h index 74b960d445..67491aa646 100644 --- a/source/dnode/vnode/src/tsdb/dev/inc/tsdbDataFReaderWriter.h +++ b/source/dnode/vnode/src/tsdb/dev/inc/tsdbDataFReaderWriter.h @@ -22,13 +22,11 @@ extern "C" { #endif -/* Exposed Handle */ -// typedef struct SDataFReader SDataFReader; -// typedef struct SDataFWriter SDataFWriter; +// SDataFileReader ============================================= +typedef struct SDataFileReader SDataFileReader; -/* Exposed APIs */ - -/* Exposed Structs */ +// SDataFileWriter ============================================= +typedef struct SDataFileWriter SDataFileWriter; #ifdef __cplusplus } diff --git a/source/dnode/vnode/src/tsdb/dev/inc/tsdbFS.h b/source/dnode/vnode/src/tsdb/dev/inc/tsdbFS.h index f18109331e..f52098944e 100644 --- a/source/dnode/vnode/src/tsdb/dev/inc/tsdbFS.h +++ b/source/dnode/vnode/src/tsdb/dev/inc/tsdbFS.h @@ -23,14 +23,7 @@ extern "C" { #endif /* Exposed Handle */ -struct STFileSystem { - STsdb *pTsdb; - // int32_t state; // TODO - tsem_t canEdit; - int64_t nextEditId; - SArray *aFileSet; // SArray - SArray *nState; // SArray -}; +typedef struct STFileSystem STFileSystem; typedef enum { TSDB_FS_EDIT_NONE = 0, @@ -41,14 +34,23 @@ typedef enum { /* Exposed APIs */ // open/close -int32_t tsdbOpenFileSystem(STsdb *pTsdb, struct STFileSystem **ppFS, int8_t rollback); -int32_t tsdbCloseFileSystem(struct STFileSystem **ppFS); +int32_t tsdbOpenFileSystem(STsdb *pTsdb, STFileSystem **ppFS, int8_t rollback); +int32_t tsdbCloseFileSystem(STFileSystem **ppFS); // txn -int32_t tsdbFileSystemEditBegin(struct STFileSystem *pFS, const SArray *aFileOp, tsdb_fs_edit_t etype); -int32_t tsdbFileSystemEditCommit(struct STFileSystem *pFS, tsdb_fs_edit_t etype); -int32_t tsdbFileSystemEditAbort(struct STFileSystem *pFS, tsdb_fs_edit_t etype); +int32_t tsdbFileSystemEditBegin(STFileSystem *pFS, const SArray *aFileOp, tsdb_fs_edit_t etype); +int32_t tsdbFileSystemEditCommit(STFileSystem *pFS, tsdb_fs_edit_t etype); +int32_t tsdbFileSystemEditAbort(STFileSystem *pFS, tsdb_fs_edit_t etype); /* Exposed Structs */ +struct STFileSystem { + STsdb *pTsdb; + int32_t state; + tsem_t canEdit; + int64_t nextEditId; + SArray *aFileSet; // SArray + SArray *nState; // SArray +}; + #ifdef __cplusplus } #endif diff --git a/source/dnode/vnode/src/tsdb/dev/inc/tsdbFSet.h b/source/dnode/vnode/src/tsdb/dev/inc/tsdbFSet.h index 8eb33974e2..acec854dd8 100644 --- a/source/dnode/vnode/src/tsdb/dev/inc/tsdbFSet.h +++ b/source/dnode/vnode/src/tsdb/dev/inc/tsdbFSet.h @@ -34,6 +34,11 @@ typedef enum { TSDB_FOP_TRUNCATE, } tsdb_fop_t; +int32_t tsdbFileSetCreate(int32_t fid, SFileSet **ppSet); +int32_t tsdbFileSetEdit(SFileSet *pSet, SFileOp *pOp); +int32_t tsdbFileSetToJson(SJson *pJson, const SFileSet *pSet); +int32_t tsdbEditFileSet(SFileSet *pFileSet, const SFileOp *pOp); + struct SFileOp { tsdb_fop_t op; int32_t fid; @@ -55,11 +60,6 @@ struct SFileSet { SSttLvl lvl0; // level 0 of .stt }; -int32_t tsdbFileSetCreate(int32_t fid, struct SFileSet **ppSet); -int32_t tsdbFileSetEdit(struct SFileSet *pSet, struct SFileOp *pOp); -int32_t tsdbFileSetToJson(SJson *pJson, const struct SFileSet *pSet); -int32_t tsdbEditFileSet(struct SFileSet *pFileSet, const struct SFileOp *pOp); - #ifdef __cplusplus } #endif diff --git a/source/dnode/vnode/src/tsdb/dev/inc/tsdbFile.h b/source/dnode/vnode/src/tsdb/dev/inc/tsdbFile.h index dadfb59ded..eb350687d2 100644 --- a/source/dnode/vnode/src/tsdb/dev/inc/tsdbFile.h +++ b/source/dnode/vnode/src/tsdb/dev/inc/tsdbFile.h @@ -49,21 +49,21 @@ struct STFile { int32_t fid; union { struct { - int32_t level; // level of .stt - int32_t nSeg; // number of segments in .stt - } stt; + int32_t level; + int32_t nSeg; + } stt; // .stt + struct { + int64_t offset; + } head; // .head struct { // TODO - } head; + } data; // .data struct { // TODO - } data; + } sma; // .sma struct { // TODO - } sma; - struct { - // TODO - } tomb; + } tomb; // .tomb }; LISTD(STFile) listNode; diff --git a/source/dnode/vnode/src/tsdb/dev/inc/tsdbSttFReaderWriter.h b/source/dnode/vnode/src/tsdb/dev/inc/tsdbSttFReaderWriter.h index c092100984..ab6e9c97ab 100644 --- a/source/dnode/vnode/src/tsdb/dev/inc/tsdbSttFReaderWriter.h +++ b/source/dnode/vnode/src/tsdb/dev/inc/tsdbSttFReaderWriter.h @@ -23,24 +23,24 @@ extern "C" { #endif // SSttFReader ========================================== -typedef struct SSttFSegReader SSttFSegReader; -typedef struct SSttFReader SSttFReader; -typedef struct SSttFReaderConfig SSttFReaderConfig; +typedef struct SSttFSegReader SSttFSegReader; +typedef struct SSttFileReader SSttFileReader; +typedef struct SSttFileReaderConfig SSttFileReaderConfig; -int32_t tsdbSttFReaderOpen(const SSttFReaderConfig *config, SSttFReader **ppReader); -int32_t tsdbSttFReaderClose(SSttFReader **ppReader); +int32_t tsdbSttFReaderOpen(const SSttFileReaderConfig *config, SSttFileReader **ppReader); +int32_t tsdbSttFReaderClose(SSttFileReader **ppReader); // SSttFWriter ========================================== -typedef struct SSttFWriter SSttFWriter; -typedef struct SSttFWriterConfig SSttFWriterConfig; +typedef struct SSttFileWriter SSttFileWriter; +typedef struct SSttFileWriterConfig SSttFileWriterConfig; -int32_t tsdbSttFWriterOpen(const SSttFWriterConfig *config, SSttFWriter **ppWriter); -int32_t tsdbSttFWriterClose(SSttFWriter **ppWriter, int8_t abort, struct SFileOp *op); -int32_t tsdbSttFWriteTSData(SSttFWriter *pWriter, TABLEID *tbid, TSDBROW *pRow); -int32_t tsdbSttFWriteDLData(SSttFWriter *pWriter, TABLEID *tbid, SDelData *pDelData); +int32_t tsdbSttFWriterOpen(const SSttFileWriterConfig *config, SSttFileWriter **ppWriter); +int32_t tsdbSttFWriterClose(SSttFileWriter **ppWriter, int8_t abort, struct SFileOp *op); +int32_t tsdbSttFWriteTSData(SSttFileWriter *pWriter, TABLEID *tbid, TSDBROW *pRow); +int32_t tsdbSttFWriteDLData(SSttFileWriter *pWriter, TABLEID *tbid, SDelData *pDelData); /* ------------------------------------------------- */ -struct SSttFWriterConfig { +struct SSttFileWriterConfig { STsdb *pTsdb; STFile file; int32_t maxRow; @@ -51,7 +51,7 @@ struct SSttFWriterConfig { uint8_t **aBuf; }; -struct SSttFReaderConfig { +struct SSttFileReaderConfig { STsdb *pTsdb; SSkmInfo *pSkmTb; SSkmInfo *pSkmRow; diff --git a/source/dnode/vnode/src/tsdb/dev/tsdbCommit.c b/source/dnode/vnode/src/tsdb/dev/tsdbCommit.c index e0465db140..b711cb8bc0 100644 --- a/source/dnode/vnode/src/tsdb/dev/tsdbCommit.c +++ b/source/dnode/vnode/src/tsdb/dev/tsdbCommit.c @@ -27,15 +27,15 @@ typedef struct { int8_t sttTrigger; SArray *aTbDataP; // context - TSKEY nextKey; - int32_t fid; - int32_t expLevel; - TSKEY minKey; - TSKEY maxKey; - struct SFileSet *pFileSet; + TSKEY nextKey; + int32_t fid; + int32_t expLevel; + TSKEY minKey; + TSKEY maxKey; + SFileSet *pFileSet; // writer - SArray *aFileOp; - struct SSttFWriter *pWriter; + SArray *aFileOp; + SSttFileWriter *pWriter; } SCommitter; static int32_t open_committer_writer(SCommitter *pCommitter) { @@ -44,7 +44,7 @@ static int32_t open_committer_writer(SCommitter *pCommitter) { STsdb *pTsdb = pCommitter->pTsdb; - struct SSttFWriterConfig conf = { + SSttFileWriterConfig conf = { .pTsdb = pCommitter->pTsdb, .maxRow = pCommitter->maxRow, .szPage = pCommitter->pTsdb->pVnode->config.tsdbPageSize, diff --git a/source/dnode/vnode/src/tsdb/dev/tsdbFile.c b/source/dnode/vnode/src/tsdb/dev/tsdbFile.c index 05c4d5d57e..4d6a7322e5 100644 --- a/source/dnode/vnode/src/tsdb/dev/tsdbFile.c +++ b/source/dnode/vnode/src/tsdb/dev/tsdbFile.c @@ -16,11 +16,11 @@ #include "dev.h" const char *tsdb_ftype_suffix[] = { - NULL, // TSDB_FTYPE_NONE ".head", // TSDB_FTYPE_HEAD ".data", // TSDB_FTYPE_DATA ".sma", // TSDB_FTYPE_SMA ".tomb", // TSDB_FTYPE_TOMB + NULL, // TSDB_FTYPE_MAX ".stt", // TSDB_FTYPE_STT }; diff --git a/source/dnode/vnode/src/tsdb/dev/tsdbMerge.c b/source/dnode/vnode/src/tsdb/dev/tsdbMerge.c index 0d3855538e..315181ce10 100644 --- a/source/dnode/vnode/src/tsdb/dev/tsdbMerge.c +++ b/source/dnode/vnode/src/tsdb/dev/tsdbMerge.c @@ -18,6 +18,9 @@ typedef struct { STsdb *pTsdb; + SSttFileReader *pSttFReader; + SSttFileWriter *pSttFWriter; + SArray *aFileOp; // SArray } SMerger; diff --git a/source/dnode/vnode/src/tsdb/dev/tsdbSttFReaderWriter.c b/source/dnode/vnode/src/tsdb/dev/tsdbSttFReaderWriter.c index c53c64f531..fd0127bd49 100644 --- a/source/dnode/vnode/src/tsdb/dev/tsdbSttFReaderWriter.c +++ b/source/dnode/vnode/src/tsdb/dev/tsdbSttFReaderWriter.c @@ -22,14 +22,26 @@ typedef struct { } SFSttFooter; // SSttFReader ============================================================ -struct SSttFReader { - SSttFReaderConfig *config; +struct SSttFileReader { + SSttFileReaderConfig *config; // TODO }; +int32_t tsdbSttFReaderOpen(const SSttFileReaderConfig *config, SSttFileReader **ppReader) { + int32_t code = 0; + // TODO + return code; +} + +int32_t tsdbSttFReaderClose(SSttFileReader **ppReader) { + int32_t code = 0; + // TODO + return code; +} + // SSttFWriter ============================================================ -struct SSttFWriter { - SSttFWriterConfig config; +struct SSttFileWriter { + SSttFileWriterConfig config; // file STFile tFile; // data @@ -49,7 +61,7 @@ struct SSttFWriter { STsdbFD *pFd; }; -static int32_t write_timeseries_block(struct SSttFWriter *pWriter) { +static int32_t write_timeseries_block(SSttFileWriter *pWriter) { int32_t code = 0; int32_t lino; @@ -119,7 +131,7 @@ _exit: return code; } -static int32_t write_statistics_block(struct SSttFWriter *pWriter) { +static int32_t write_statistics_block(SSttFileWriter *pWriter) { int32_t code = 0; int32_t lino; @@ -174,7 +186,7 @@ _exit: return code; } -static int32_t write_delete_block(struct SSttFWriter *pWriter) { +static int32_t write_delete_block(SSttFileWriter *pWriter) { int32_t code = 0; int32_t lino; @@ -221,7 +233,7 @@ _exit: return code; } -static int32_t write_stt_blk(struct SSttFWriter *pWriter) { +static int32_t write_stt_blk(SSttFileWriter *pWriter) { int32_t code = 0; int32_t lino; @@ -253,7 +265,7 @@ _exit: return code; } -static int32_t write_statistics_blk(struct SSttFWriter *pWriter) { +static int32_t write_statistics_blk(SSttFileWriter *pWriter) { int32_t code = 0; int32_t lino; @@ -285,7 +297,7 @@ _exit: return code; } -static int32_t write_del_blk(struct SSttFWriter *pWriter) { +static int32_t write_del_blk(SSttFileWriter *pWriter) { int32_t code = 0; int32_t lino; @@ -317,7 +329,7 @@ _exit: return code; } -static int32_t write_file_footer(struct SSttFWriter *pWriter) { +static int32_t write_file_footer(SSttFileWriter *pWriter) { int32_t code = tsdbWriteFile( // pWriter->pFd, // pWriter->tFile.size, // @@ -327,12 +339,12 @@ static int32_t write_file_footer(struct SSttFWriter *pWriter) { return code; } -static int32_t write_file_header(struct SSttFWriter *pWriter) { +static int32_t write_file_header(SSttFileWriter *pWriter) { // TODO return 0; } -static int32_t create_stt_fwriter(const SSttFWriterConfig *pConf, struct SSttFWriter **ppWriter) { +static int32_t create_stt_fwriter(const SSttFileWriterConfig *pConf, SSttFileWriter **ppWriter) { int32_t code = 0; // alloc @@ -380,7 +392,7 @@ _exit: return code; } -static int32_t destroy_stt_fwriter(struct SSttFWriter *pWriter) { +static int32_t destroy_stt_fwriter(SSttFileWriter *pWriter) { if (pWriter) { for (int32_t i = 0; i < ARRAY_SIZE(pWriter->aBuf); i++) { tFree(pWriter->aBuf[i]); @@ -400,7 +412,7 @@ static int32_t destroy_stt_fwriter(struct SSttFWriter *pWriter) { return 0; } -static int32_t open_stt_fwriter(struct SSttFWriter *pWriter) { +static int32_t open_stt_fwriter(SSttFileWriter *pWriter) { int32_t code = 0; int32_t lino; uint8_t hdr[TSDB_FHDR_SIZE] = {0}; @@ -451,12 +463,12 @@ _exit: return code; } -static int32_t close_stt_fwriter(struct SSttFWriter *pWriter) { +static int32_t close_stt_fwriter(SSttFileWriter *pWriter) { tsdbCloseFile(&pWriter->pFd); return 0; } -int32_t tsdbSttFWriterOpen(const SSttFWriterConfig *pConf, struct SSttFWriter **ppWriter) { +int32_t tsdbSttFWriterOpen(const SSttFileWriterConfig *pConf, SSttFileWriter **ppWriter) { int32_t code = 0; int32_t lino; @@ -481,7 +493,7 @@ _exit: return code; } -int32_t tsdbSttFWriterClose(struct SSttFWriter **ppWriter, int8_t abort, struct SFileOp *op) { +int32_t tsdbSttFWriterClose(SSttFileWriter **ppWriter, int8_t abort, struct SFileOp *op) { int32_t vgId = TD_VID(ppWriter[0]->config.pTsdb->pVnode); int32_t code = 0; int32_t lino; @@ -571,7 +583,7 @@ _exit: return code; } -int32_t tsdbSttFWriteTSData(struct SSttFWriter *pWriter, TABLEID *tbid, TSDBROW *pRow) { +int32_t tsdbSttFWriteTSData(SSttFileWriter *pWriter, TABLEID *tbid, TSDBROW *pRow) { int32_t code = 0; int32_t lino; @@ -674,7 +686,7 @@ _exit: return code; } -int32_t tsdbSttFWriteDLData(struct SSttFWriter *pWriter, TABLEID *tbid, SDelData *pDelData) { +int32_t tsdbSttFWriteDLData(SSttFileWriter *pWriter, TABLEID *tbid, SDelData *pDelData) { ASSERTS(0, "TODO: Not implemented yet"); pWriter->dData.aData[0][pWriter->dData.nRow] = tbid->suid; // suid