From 4ed3b303527bc91004777f66a6ef8632d9aa5837 Mon Sep 17 00:00:00 2001 From: kailixu Date: Mon, 17 Jun 2024 06:14:49 +0800 Subject: [PATCH] tfs: support disable create new file --- include/util/tdef.h | 4 +--- source/common/src/tglobal.c | 2 +- source/dnode/mgmt/node_mgmt/src/dmEnv.c | 2 +- source/dnode/vnode/test/tsdbSmaTest.cpp | 2 +- source/libs/tfs/src/tfs.c | 14 ++++---------- source/libs/tfs/test/tfsTest.cpp | 24 ++++++++++++------------ source/util/src/tconfig.c | 4 ++-- 7 files changed, 22 insertions(+), 30 deletions(-) diff --git a/include/util/tdef.h b/include/util/tdef.h index b813d590a4..a7ebb4da22 100644 --- a/include/util/tdef.h +++ b/include/util/tdef.h @@ -539,8 +539,6 @@ typedef enum ELogicConditionType { #define TFS_MAX_LEVEL (TFS_MAX_TIERS - 1) #define TFS_PRIMARY_LEVEL 0 #define TFS_PRIMARY_ID 0 -#define TFS_ENTRY_DISABLE 0 -#define TFS_ENTRY_ENABLE 1 #define TFS_MIN_DISK_FREE_SIZE 50 * 1024 * 1024 enum { TRANS_STAT_INIT = 0, TRANS_STAT_EXECUTING, TRANS_STAT_EXECUTED, TRANS_STAT_ROLLBACKING, TRANS_STAT_ROLLBACKED }; @@ -551,7 +549,7 @@ typedef struct { char dir[TSDB_FILENAME_LEN]; int32_t level; int8_t primary; - int8_t enable; + int8_t disable; // disable create new file } SDiskCfg; typedef struct { diff --git a/source/common/src/tglobal.c b/source/common/src/tglobal.c index f76ea35a23..827f22b553 100644 --- a/source/common/src/tglobal.c +++ b/source/common/src/tglobal.c @@ -326,7 +326,7 @@ int32_t taosSetTfsCfg(SConfig *pCfg) { tstrncpy(tsDiskCfg[0].dir, pItem->str, TSDB_FILENAME_LEN); tsDiskCfg[0].level = 0; tsDiskCfg[0].primary = 1; - tsDiskCfg[0].enable = 1; + tsDiskCfg[0].disable = 0; tstrncpy(tsDataDir, pItem->str, PATH_MAX); if (taosMulMkDir(tsDataDir) != 0) { uError("failed to create dataDir:%s", tsDataDir); diff --git a/source/dnode/mgmt/node_mgmt/src/dmEnv.c b/source/dnode/mgmt/node_mgmt/src/dmEnv.c index d6031dee15..54a118b666 100644 --- a/source/dnode/mgmt/node_mgmt/src/dmEnv.c +++ b/source/dnode/mgmt/node_mgmt/src/dmEnv.c @@ -110,7 +110,7 @@ static bool dmCheckDiskSpace() { int32_t dmDiskInit() { SDnode *pDnode = dmInstance(); - SDiskCfg dCfg = {.level = 0, .primary = 1, .enable = 1}; + SDiskCfg dCfg = {.level = 0, .primary = 1, .disable = 0}; tstrncpy(dCfg.dir, tsDataDir, TSDB_FILENAME_LEN); SDiskCfg *pDisks = tsDiskCfg; int32_t numOfDisks = tsDiskCfgNum; diff --git a/source/dnode/vnode/test/tsdbSmaTest.cpp b/source/dnode/vnode/test/tsdbSmaTest.cpp index e0e4f45feb..8b19c0dc95 100644 --- a/source/dnode/vnode/test/tsdbSmaTest.cpp +++ b/source/dnode/vnode/test/tsdbSmaTest.cpp @@ -368,7 +368,7 @@ TEST(testCase, tSma_Data_Insert_Query_Test) { SDiskCfg pDisks = {0}; pDisks.level = 0; pDisks.primary = 1; - pDisks.enable = 1; + pDisks.disable = 0; strncpy(pDisks.dir, TD_DATA_DIR_PATH, TSDB_FILENAME_LEN); int32_t numOfDisks = 1; pTsdb->pTfs = tfsOpen(&pDisks, numOfDisks); diff --git a/source/libs/tfs/src/tfs.c b/source/libs/tfs/src/tfs.c index e863f658e6..2c3ca9b86c 100644 --- a/source/libs/tfs/src/tfs.c +++ b/source/libs/tfs/src/tfs.c @@ -494,8 +494,8 @@ static int32_t tfsMount(STfs *pTfs, SDiskCfg *pCfg) { return -1; } - if (pCfg->enable == 0) { - fInfo("skip to mount disk %s to level %d since enable is %" PRIi8, pCfg->dir, pCfg->level, pCfg->enable); + if (pCfg->disable == 1) { + fInfo("skip to mount disk %s to level %d since disable is %" PRIi8, pCfg->dir, pCfg->level, pCfg->disable); return 0; } @@ -530,8 +530,8 @@ static int32_t tfsCheckAndFormatCfg(STfs *pTfs, SDiskCfg *pCfg) { return -1; } - if (pCfg->enable < 0 || pCfg->enable > 1) { - fError("failed to mount %s to FS since invalid enable %" PRIi8, pCfg->dir, pCfg->enable); + if (pCfg->disable < 0 || pCfg->disable > 1) { + fError("failed to mount %s to FS since invalid disable %" PRIi8, pCfg->dir, pCfg->disable); terrno = TSDB_CODE_FS_INVLD_CFG; return -1; } @@ -543,12 +543,6 @@ static int32_t tfsCheckAndFormatCfg(STfs *pTfs, SDiskCfg *pCfg) { return -1; } - if (pCfg->enable == 0) { - fError("failed to mount %s to FS since disk is primary but enable %" PRIi8 " not 1", pCfg->dir, pCfg->enable); - terrno = TSDB_CODE_FS_INVLD_CFG; - return -1; - } - if (TFS_PRIMARY_DISK(pTfs) != NULL) { fError("failed to mount %s to FS since duplicate primary mount", pCfg->dir); terrno = TSDB_CODE_FS_DUP_PRIMARY; diff --git a/source/libs/tfs/test/tfsTest.cpp b/source/libs/tfs/test/tfsTest.cpp index 2c895f698a..d8c117818e 100644 --- a/source/libs/tfs/test/tfsTest.cpp +++ b/source/libs/tfs/test/tfsTest.cpp @@ -37,7 +37,7 @@ TEST_F(TfsTest, 01_Open_Close) { tstrncpy(dCfg.dir, root, TSDB_FILENAME_LEN); dCfg.level = 0; dCfg.primary = 1; - dCfg.enable = 1; + dCfg.disable = 0; taosRemoveDir(root); STfs *pTfs = tfsOpen(&dCfg, 1); @@ -64,7 +64,7 @@ TEST_F(TfsTest, 02_AllocDisk) { tstrncpy(dCfg.dir, root, TSDB_FILENAME_LEN); dCfg.level = 0; dCfg.primary = 1; - dCfg.enable = 1; + dCfg.disable = 0; taosRemoveDir(root); taosMkDir(root); @@ -116,7 +116,7 @@ TEST_F(TfsTest, 03_Dir) { tstrncpy(dCfg.dir, root, TSDB_FILENAME_LEN); dCfg.level = 0; dCfg.primary = 1; - dCfg.enable = 1; + dCfg.disable = 0; taosRemoveDir(root); taosMkDir(root); @@ -333,39 +333,39 @@ TEST_F(TfsTest, 05_MultiDisk) { tstrncpy(dCfg[0].dir, root01, TSDB_FILENAME_LEN); dCfg[0].level = 0; dCfg[0].primary = 0; - dCfg[0].enable = 1; + dCfg[0].disable = 0; tstrncpy(dCfg[1].dir, root00, TSDB_FILENAME_LEN); dCfg[1].level = 0; dCfg[1].primary = 0; - dCfg[1].enable = 1; + dCfg[1].disable = 0; tstrncpy(dCfg[2].dir, root20, TSDB_FILENAME_LEN); dCfg[2].level = 2; dCfg[2].primary = 0; - dCfg[2].enable = 1; + dCfg[2].disable = 0; tstrncpy(dCfg[3].dir, root21, TSDB_FILENAME_LEN); dCfg[3].level = 2; dCfg[3].primary = 0; - dCfg[3].enable = 1; + dCfg[3].disable = 0; tstrncpy(dCfg[4].dir, root22, TSDB_FILENAME_LEN); dCfg[4].level = 2; dCfg[4].primary = 0; - dCfg[4].enable = 1; + dCfg[4].disable = 0; tstrncpy(dCfg[5].dir, root23, TSDB_FILENAME_LEN); dCfg[5].level = 2; dCfg[5].primary = 0; - dCfg[5].enable = 1; + dCfg[5].disable = 0; tstrncpy(dCfg[6].dir, root10, TSDB_FILENAME_LEN); dCfg[6].level = 1; dCfg[6].primary = 0; - dCfg[6].enable = 1; + dCfg[6].disable = 0; tstrncpy(dCfg[7].dir, root11, TSDB_FILENAME_LEN); dCfg[7].level = 1; dCfg[7].primary = 0; - dCfg[7].enable = 1; + dCfg[7].disable = 0; tstrncpy(dCfg[8].dir, root12, TSDB_FILENAME_LEN); dCfg[8].level = 1; dCfg[8].primary = 0; - dCfg[8].enable = 1; + dCfg[8].disable = 0; taosRemoveDir(root00); taosRemoveDir(root01); diff --git a/source/util/src/tconfig.c b/source/util/src/tconfig.c index 17e1b3faf2..8be38a811f 100644 --- a/source/util/src/tconfig.c +++ b/source/util/src/tconfig.c @@ -259,7 +259,7 @@ static int32_t cfgSetTimezone(SConfigItem *pItem, const char *value, ECfgSrcType } static int32_t cfgSetTfsItem(SConfig *pCfg, const char *name, const char *value, const char *level, const char *primary, - const char *enable, ECfgSrcType stype) { + const char *disable, ECfgSrcType stype) { taosThreadMutexLock(&pCfg->lock); SConfigItem *pItem = cfgGetItem(pCfg, name); @@ -283,7 +283,7 @@ static int32_t cfgSetTfsItem(SConfig *pCfg, const char *name, const char *value, tstrncpy(cfg.dir, pItem->str, sizeof(cfg.dir)); cfg.level = level ? atoi(level) : 0; cfg.primary = primary ? atoi(primary) : 1; - cfg.enable = (enable && enable[0]) ? atoi(enable) : 1; + cfg.disable = disable ? atoi(disable) : 0; void *ret = taosArrayPush(pItem->array, &cfg); if (ret == NULL) { terrno = TSDB_CODE_OUT_OF_MEMORY;