more code
This commit is contained in:
parent
e2df5f772e
commit
98384b1a4e
|
@ -17,9 +17,16 @@
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
STsdb *pTsdb;
|
STsdb *pTsdb;
|
||||||
|
SFileSet *pSet;
|
||||||
|
|
||||||
|
// reader
|
||||||
SSttFileReader *pSttFReader;
|
SSttFileReader *pSttFReader;
|
||||||
|
int32_t nSttFSegReader;
|
||||||
|
SSttFSegReader *aSttFSegReader;
|
||||||
|
|
||||||
|
// writer
|
||||||
SSttFileWriter *pSttFWriter;
|
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) {
|
||||||
|
|
Loading…
Reference in New Issue