提交 1fa5d02b 编写于 作者: H Hongze Cheng

more code

上级 d963a4f2
...@@ -57,32 +57,6 @@ typedef struct { ...@@ -57,32 +57,6 @@ typedef struct {
SBlockData sData; SBlockData sData;
} STsdbCompactor; } STsdbCompactor;
static int32_t tsdbCommitCompact(STsdbCompactor *pCompactor) {
int32_t code = 0;
int32_t lino = 0;
STsdb *pTsdb = pCompactor->pTsdb;
code = tsdbFSPrepareCommit(pTsdb, &pCompactor->fs);
TSDB_CHECK_CODE(code, lino, _exit);
taosThreadRwlockWrlock(&pTsdb->rwLock);
code = tsdbFSCommit(pTsdb);
if (code) {
taosThreadRwlockUnlock(&pTsdb->rwLock);
TSDB_CHECK_CODE(code, lino, _exit);
}
taosThreadRwlockUnlock(&pTsdb->rwLock);
_exit:
if (code) {
tsdbError("vgId:%d %s failed at line %d since %s", TD_VID(pTsdb->pVnode), __func__, lino, tstrerror(code));
}
return code;
}
static int32_t tsdbAbortCompact(STsdbCompactor *pCompactor) { static int32_t tsdbAbortCompact(STsdbCompactor *pCompactor) {
int32_t code = 0; int32_t code = 0;
int32_t lino = 0; int32_t lino = 0;
...@@ -660,8 +634,31 @@ _exit: ...@@ -660,8 +634,31 @@ _exit:
if (code) { if (code) {
tsdbAbortCompact(pCompactor); tsdbAbortCompact(pCompactor);
} else { } else {
tsdbCommitCompact(pCompactor); tsdbFSPrepareCommit(pTsdb, &pCompactor->fs);
} }
tsdbEndCompact(pCompactor); tsdbEndCompact(pCompactor);
return code; return code;
} }
int32_t tsdbCommitCompact(STsdb *pTsdb) {
int32_t code = 0;
int32_t lino = 0;
taosThreadRwlockWrlock(&pTsdb->rwLock);
code = tsdbFSCommit(pTsdb);
if (code) {
taosThreadRwlockUnlock(&pTsdb->rwLock);
TSDB_CHECK_CODE(code, lino, _exit);
}
taosThreadRwlockUnlock(&pTsdb->rwLock);
_exit:
if (code) {
tsdbError("vgId:%d %s failed at line %d since %s", TD_VID(pTsdb->pVnode), __func__, lino, tstrerror(code));
} else {
tsdbInfo("vgId:%d %s done", TD_VID(pTsdb->pVnode), __func__);
}
return code;
}
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
#include "vnd.h" #include "vnd.h"
extern int32_t tsdbCommitCompact(STsdb *pTsdb);
static int32_t vnodeCompactTask(void *param) { static int32_t vnodeCompactTask(void *param) {
int32_t code = 0; int32_t code = 0;
int32_t lino = 0; int32_t lino = 0;
...@@ -33,8 +35,11 @@ static int32_t vnodeCompactTask(void *param) { ...@@ -33,8 +35,11 @@ static int32_t vnodeCompactTask(void *param) {
} else { } else {
snprintf(dir, TSDB_FILENAME_LEN, "%s", pVnode->path); snprintf(dir, TSDB_FILENAME_LEN, "%s", pVnode->path);
} }
vnodeCommitInfo(dir); vnodeCommitInfo(dir);
tsdbCommitCompact(pVnode->pTsdb);
_exit: _exit:
tsem_post(&pInfo->pVnode->canCommit); tsem_post(&pInfo->pVnode->canCommit);
taosMemoryFree(pInfo); taosMemoryFree(pInfo);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册