tfs: support disable create new file
This commit is contained in:
parent
e3645def98
commit
4ed3b30352
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue