more code

This commit is contained in:
Hongze Cheng 2023-04-26 17:17:32 +08:00
parent e2df5f772e
commit 98384b1a4e
1 changed files with 44 additions and 24 deletions

View File

@ -16,10 +16,17 @@
#include "dev.h" #include "dev.h"
typedef struct { typedef struct {
STsdb *pTsdb; STsdb *pTsdb;
SFileSet *pSet;
// reader
SSttFileReader *pSttFReader; SSttFileReader *pSttFReader;
SSttFileWriter *pSttFWriter; int32_t nSttFSegReader;
SSttFSegReader *aSttFSegReader;
// writer
SSttFileWriter *pSttFWriter;
SDataFileWriter *pDataFWriter;
SArray *aFileOp; // SArray<struct SFileOp> SArray *aFileOp; // SArray<struct SFileOp>
} SMerger; } SMerger;
@ -41,12 +48,38 @@ static int32_t tsdbFileSetMerge(struct SFileSet *pFileSet) {
// TODO // TODO
return 0; return 0;
} }
static int32_t tsdbOpenMerger(STsdb *pTsdb, SMerger *merger) {
ASSERTS(0, "TODO: not implemented yet"); static int32_t tsdbOpenMerger(STsdb *pTsdb, SMerger *pMerger) {
pMerger->pTsdb = pTsdb;
// TODO // TODO
return 0; return 0;
} }
static int32_t tsdbDestroyMerger(SMerger *pMerger) {
int32_t code = 0;
// TODO
return code;
}
static int32_t tsdbCloseMerger(SMerger *pMerger) {
int32_t code = 0;
int32_t lino;
STsdb *pTsdb = pMerger->pTsdb;
code = tsdbFileSystemEditBegin(pTsdb->pFS, pMerger->aFileOp, TSDB_FS_EDIT_MERGE);
TSDB_CHECK_CODE(code, lino, _exit)
_exit:
if (code) {
tsdbFileSystemEditAbort(pTsdb->pFS, TSDB_FS_EDIT_MERGE);
} else {
tsdbFileSystemEditCommit(pTsdb->pFS, TSDB_FS_EDIT_MERGE);
}
tsdbDestroyMerger(pMerger);
return code;
}
int32_t tsdbMerge(STsdb *pTsdb) { int32_t tsdbMerge(STsdb *pTsdb) {
int32_t code = 0; int32_t code = 0;
int32_t lino; int32_t lino;
@ -55,13 +88,9 @@ int32_t tsdbMerge(STsdb *pTsdb) {
goto _exit; goto _exit;
} }
// do merge SMerger pMerger = {0};
SMerger merger = {0}; code = tsdbOpenMerger(pTsdb, &pMerger);
TSDB_CHECK_CODE(code, lino, _exit)
TSDB_CHECK_CODE( //
code = tsdbOpenMerger(pTsdb, &merger), //
lino, //
_exit);
for (int32_t i = 0; i < taosArrayGetSize(pTsdb->pFS->aFileSet); i++) { for (int32_t i = 0; i < taosArrayGetSize(pTsdb->pFS->aFileSet); i++) {
struct SFileSet *pFileSet = taosArrayGet(pTsdb->pFS->aFileSet, i); struct SFileSet *pFileSet = taosArrayGet(pTsdb->pFS->aFileSet, i);
@ -69,21 +98,12 @@ int32_t tsdbMerge(STsdb *pTsdb) {
continue; continue;
} }
TSDB_CHECK_CODE( // code = tsdbFileSetMerge(pFileSet);
code = tsdbFileSetMerge(pFileSet), // TSDB_CHECK_CODE(code, lino, _exit)
lino, //
_exit);
} }
TSDB_CHECK_CODE( // code = tsdbCloseMerger(&pMerger);
code = tsdbFileSystemEditBegin(pTsdb->pFS, merger.aFileOp, TSDB_FS_EDIT_MERGE), // TSDB_CHECK_CODE(code, lino, _exit)
lino, //
_exit);
TSDB_CHECK_CODE( //
code = tsdbFileSystemEditCommit(pTsdb->pFS, TSDB_FS_EDIT_MERGE), //
lino, //
_exit);
_exit: _exit:
if (code) { if (code) {