enh: clear files fset by fset

This commit is contained in:
Hongze Cheng 2023-10-09 17:11:50 +08:00
parent 7c738cbe0c
commit e3525dba6e
1 changed files with 14 additions and 12 deletions

View File

@ -67,18 +67,6 @@ static int32_t tsdbMergerClose(SMerger *merger) {
int32_t lino = 0; int32_t lino = 0;
SVnode *pVnode = merger->tsdb->pVnode; SVnode *pVnode = merger->tsdb->pVnode;
// edit file system
code = tsdbFSEditBegin(merger->tsdb->pFS, merger->fopArr, TSDB_FEDIT_MERGE);
TSDB_CHECK_CODE(code, lino, _exit);
taosThreadRwlockWrlock(&merger->tsdb->rwLock);
code = tsdbFSEditCommit(merger->tsdb->pFS);
if (code) {
taosThreadRwlockUnlock(&merger->tsdb->rwLock);
TSDB_CHECK_CODE(code, lino, _exit);
}
taosThreadRwlockUnlock(&merger->tsdb->rwLock);
ASSERT(merger->writer == NULL); ASSERT(merger->writer == NULL);
ASSERT(merger->dataIterMerger == NULL); ASSERT(merger->dataIterMerger == NULL);
ASSERT(merger->tombIterMerger == NULL); ASSERT(merger->tombIterMerger == NULL);
@ -296,6 +284,8 @@ static int32_t tsdbMergeFileSetBegin(SMerger *merger) {
ASSERT(merger->dataIterMerger == NULL); ASSERT(merger->dataIterMerger == NULL);
ASSERT(merger->writer == NULL); ASSERT(merger->writer == NULL);
TARRAY2_CLEAR(merger->fopArr, NULL);
merger->ctx->tbid->suid = 0; merger->ctx->tbid->suid = 0;
merger->ctx->tbid->uid = 0; merger->ctx->tbid->uid = 0;
@ -348,6 +338,18 @@ static int32_t tsdbMergeFileSetEnd(SMerger *merger) {
code = tsdbMergeFileSetEndCloseReader(merger); code = tsdbMergeFileSetEndCloseReader(merger);
TSDB_CHECK_CODE(code, lino, _exit); TSDB_CHECK_CODE(code, lino, _exit);
// edit file system
code = tsdbFSEditBegin(merger->tsdb->pFS, merger->fopArr, TSDB_FEDIT_MERGE);
TSDB_CHECK_CODE(code, lino, _exit);
taosThreadRwlockWrlock(&merger->tsdb->rwLock);
code = tsdbFSEditCommit(merger->tsdb->pFS);
if (code) {
taosThreadRwlockUnlock(&merger->tsdb->rwLock);
TSDB_CHECK_CODE(code, lino, _exit);
}
taosThreadRwlockUnlock(&merger->tsdb->rwLock);
_exit: _exit:
if (code) { if (code) {
TSDB_ERROR_LOG(TD_VID(merger->tsdb->pVnode), lino, code); TSDB_ERROR_LOG(TD_VID(merger->tsdb->pVnode), lino, code);