From 797b9376e7b32a52605488a18d942f3f1dcebe17 Mon Sep 17 00:00:00 2001 From: Cary Xu Date: Fri, 23 Sep 2022 17:27:48 +0800 Subject: [PATCH] chore: code optimization for fs destroy --- source/dnode/vnode/src/inc/tsdb.h | 3 ++- source/dnode/vnode/src/tsdb/tsdbFS.c | 4 ++-- source/dnode/vnode/src/tsdb/tsdbRetention2.c | 6 ++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/source/dnode/vnode/src/inc/tsdb.h b/source/dnode/vnode/src/inc/tsdb.h index 66df364b4b..262bd083ef 100644 --- a/source/dnode/vnode/src/inc/tsdb.h +++ b/source/dnode/vnode/src/inc/tsdb.h @@ -321,7 +321,8 @@ struct STsdbFS { }; struct STsdbTrimHdl { - volatile int8_t state; // 0 idle 1 in use + volatile int8_t state; // 0 idle 1 in use + volatile int8_t limitSpeed; // 0 no limit, 1 with limit volatile int32_t maxRetentFid; volatile int32_t minCommitFid; }; diff --git a/source/dnode/vnode/src/tsdb/tsdbFS.c b/source/dnode/vnode/src/tsdb/tsdbFS.c index 45d28f4135..8fdbd68af3 100644 --- a/source/dnode/vnode/src/tsdb/tsdbFS.c +++ b/source/dnode/vnode/src/tsdb/tsdbFS.c @@ -250,7 +250,7 @@ _err: void tsdbFSDestroy(STsdbFS *pFS) { if (pFS->pDelFile) { - taosMemoryFree(pFS->pDelFile); + taosMemoryFreeClear(pFS->pDelFile); } for (int32_t iSet = 0; iSet < taosArrayGetSize(pFS->aDFileSet); iSet++) { @@ -263,7 +263,7 @@ void tsdbFSDestroy(STsdbFS *pFS) { } } - taosArrayDestroy(pFS->aDFileSet); + pFS->aDFileSet = taosArrayDestroy(pFS->aDFileSet); } static int32_t tsdbScanAndTryFixFS(STsdb *pTsdb) { diff --git a/source/dnode/vnode/src/tsdb/tsdbRetention2.c b/source/dnode/vnode/src/tsdb/tsdbRetention2.c index 61ed29368a..a5a16a9602 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRetention2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRetention2.c @@ -174,6 +174,8 @@ _migrate_loop: // reset maxFid = INT32_MIN; fSize = 0; + tsdbFSDestroy(&fs); + tsdbFSDestroy(&fsLatest); code = tsdbFSCopy(pTsdb, &fs); if (code) goto _exit; @@ -275,9 +277,9 @@ _merge_fs: } taosThreadRwlockUnlock(&pTsdb->rwLock); - tsdbFSDestroy(&fs); - _exit: + tsdbFSDestroy(&fs); + tsdbFSDestroy(&fsLatest); if (code != 0) { tsdbError("vgId:%d, tsdb do retention(migrate) failed since %s", TD_VID(pTsdb->pVnode), tstrerror(code)); ASSERT(0);