提交 d3c335a0 编写于 作者: C Cary Xu

chore: fs merge optimization for data migrate

上级 b78a39ce
......@@ -221,22 +221,31 @@ _commit_conflict_check:
_merge_fs:
taosThreadRwlockWrlock(&pTsdb->rwLock);
// 1) prepare fs, merge tsdbFSNew and pTsdb->fs if needed
STsdbFS *pTsdbFS = &fs;
ASSERT(fs.version <= pTsdb->fs.version);
if (fs.version < pTsdb->fs.version) {
if ((code = tsdbFSCopy(pTsdb, &fsLatest))) {
taosThreadRwlockUnlock(&pTsdb->rwLock);
goto _exit;
}
// 1) merge tsdbFSNew and pTsdb->fs
if ((code = tsdbFSUpdDel(pTsdb, &fsLatest, &fs, maxFid))) {
taosThreadRwlockUnlock(&pTsdb->rwLock);
goto _exit;
}
pTsdbFS = &fsLatest;
}
// 2) save CURRENT
if ((code = tsdbFSCommit1(pTsdb, &fsLatest))) {
if ((code = tsdbFSCommit1(pTsdb, pTsdbFS))) {
taosThreadRwlockUnlock(&pTsdb->rwLock);
goto _exit;
}
// 3) apply the tsdbFS to pTsdb->fs
if ((code = tsdbFSCommit2(pTsdb, &fsLatest))) {
if ((code = tsdbFSCommit2(pTsdb, pTsdbFS))) {
taosThreadRwlockUnlock(&pTsdb->rwLock);
goto _exit;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册