From 1c40d471ae472c643d8ebfbe1e1e9fd89ee34434 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Mon, 13 Jul 2020 15:39:45 +0800 Subject: [PATCH] [TD-913] change some config paras --- packaging/cfg/taos.cfg | 13 +++++-------- src/common/inc/tglobal.h | 2 ++ src/common/src/tglobal.c | 35 ++++++++++++++++++++++++----------- src/inc/taosdef.h | 12 ++++++------ src/mnode/src/mnodeVgroup.c | 6 +++--- src/vnode/src/vnodeMain.c | 2 +- tests/pytest/util/dnodes.py | 4 +++- tests/script/sh/deploy.sh | 2 ++ 8 files changed, 46 insertions(+), 30 deletions(-) diff --git a/packaging/cfg/taos.cfg b/packaging/cfg/taos.cfg index 40b4c43fdd..f652c65f56 100644 --- a/packaging/cfg/taos.cfg +++ b/packaging/cfg/taos.cfg @@ -51,18 +51,15 @@ # number of threads per CPU core # numOfThreadsPerCore 1.0 -# number of vnodes per core in DNode -# numOfVnodesPerCore 8 +# number of vgroups per db +# maxVgroupsPerDb 0 + +# max number of tables per vnode +# maxTablesPerVnode 1000000 # the ratio of threads responsible for querying in the total thread # ratioOfQueryThreads 0.5 -# number of total vnodes in DNode -# numOfTotalVnodes 0 - -# max number of tables per vnode -# maxtablesPerVnode 1000 - # interval of check load balance when the management node is in normal operation # balanceInterval 300 diff --git a/src/common/inc/tglobal.h b/src/common/inc/tglobal.h index fbdfc84f5f..1d9a6a2949 100644 --- a/src/common/inc/tglobal.h +++ b/src/common/inc/tglobal.h @@ -68,7 +68,9 @@ extern int64_t tsMaxRetentWindow; // db parameters in client extern int32_t tsCacheBlockSize; extern int32_t tsBlocksPerVnode; +extern int32_t tsMinTablePerVnode; extern int32_t tsMaxTablePerVnode; +extern int32_t tsTableIncStepPerVnode; extern int32_t tsMaxVgroupsPerDb; extern int16_t tsDaysPerFile; extern int32_t tsDaysToKeep; diff --git a/src/common/src/tglobal.c b/src/common/src/tglobal.c index a8ef3f8e8d..9eabe0cbc8 100644 --- a/src/common/src/tglobal.c +++ b/src/common/src/tglobal.c @@ -38,7 +38,7 @@ uint16_t tsDnodeShellPort = 6030; // udp[6035-6039] tcp[6035] uint16_t tsDnodeDnodePort = 6035; // udp/tcp uint16_t tsSyncPort = 6040; int32_t tsStatusInterval = 1; // second -int16_t tsNumOfVnodesPerCore = 8; +int16_t tsNumOfVnodesPerCore = 32; int16_t tsNumOfTotalVnodes = TSDB_INVALID_VNODE_NUM; int32_t tsNumOfMnodes = 3; int32_t tsEnableVnodeBak = 1; @@ -112,7 +112,10 @@ int16_t tsCompression = TSDB_DEFAULT_COMP_LEVEL; int16_t tsWAL = TSDB_DEFAULT_WAL_LEVEL; int32_t tsReplications = TSDB_DEFAULT_DB_REPLICA_OPTION; int32_t tsMaxVgroupsPerDb = 0; +int32_t tsMinTablePerVnode = TSDB_MIN_TABLES; int32_t tsMaxTablePerVnode = TSDB_DEFAULT_TABLES; +int32_t tsTableIncStepPerVnode = TSDB_TABLES_STEP; + // balance int32_t tsEnableBalance = 1; int32_t tsAlternativeRole = 0; @@ -389,16 +392,6 @@ static void doInitGlobalConfig() { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosInitConfigOption(cfg); - cfg.option = "numOfVnodesPerCore"; - cfg.ptr = &tsNumOfVnodesPerCore; - cfg.valType = TAOS_CFG_VTYPE_INT16; - cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 1; - cfg.maxValue = 64; - cfg.ptrLength = 0; - cfg.unitType = TAOS_CFG_UTYPE_NONE; - taosInitConfigOption(cfg); - cfg.option = "numOfTotalVnodes"; cfg.ptr = &tsNumOfTotalVnodes; cfg.valType = TAOS_CFG_VTYPE_INT16; @@ -622,6 +615,26 @@ static void doInitGlobalConfig() { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosInitConfigOption(cfg); + cfg.option = "minTablesPerVnode"; + cfg.ptr = &tsMinTablePerVnode; + cfg.valType = TAOS_CFG_VTYPE_INT32; + cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; + cfg.minValue = TSDB_MIN_TABLES; + cfg.maxValue = TSDB_MAX_TABLES; + cfg.ptrLength = 0; + cfg.unitType = TAOS_CFG_UTYPE_NONE; + taosInitConfigOption(cfg); + + cfg.option = "tableIncStepPerVnode"; + cfg.ptr = &tsTableIncStepPerVnode; + cfg.valType = TAOS_CFG_VTYPE_INT32; + cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; + cfg.minValue = TSDB_MIN_TABLES; + cfg.maxValue = TSDB_MAX_TABLES; + cfg.ptrLength = 0; + cfg.unitType = TAOS_CFG_UTYPE_NONE; + taosInitConfigOption(cfg); + cfg.option = "cache"; cfg.ptr = &tsCacheBlockSize; cfg.valType = TAOS_CFG_VTYPE_INT32; diff --git a/src/inc/taosdef.h b/src/inc/taosdef.h index eb3c3abc84..27f472a2b6 100644 --- a/src/inc/taosdef.h +++ b/src/inc/taosdef.h @@ -274,8 +274,8 @@ void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size); #define TSDB_DEFAULT_PAYLOAD_SIZE 5120 // default payload size, greater than PATH_MAX value #define TSDB_EXTRA_PAYLOAD_SIZE 128 // extra bytes for auth #define TSDB_CQ_SQL_SIZE 1024 -#define TSDB_MAX_VNODES 256 -#define TSDB_MIN_VNODES 50 +#define TSDB_MAX_VNODES 2048 +#define TSDB_MIN_VNODES 256 #define TSDB_INVALID_VNODE_NUM 0 #define TSDB_DNODE_ROLE_ANY 0 @@ -295,10 +295,10 @@ void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size); #define TSDB_MAX_TOTAL_BLOCKS 10000 #define TSDB_DEFAULT_TOTAL_BLOCKS 4 -#define TSDB_MIN_TABLES 4 -#define TSDB_MAX_TABLES 5000000 -#define TSDB_DEFAULT_TABLES 200000 -#define TSDB_TABLES_STEP 10000 +#define TSDB_MIN_TABLES 100 +#define TSDB_MAX_TABLES 10000000 +#define TSDB_DEFAULT_TABLES 1000000 +#define TSDB_TABLES_STEP 1000 #define TSDB_MIN_DAYS_PER_FILE 1 #define TSDB_MAX_DAYS_PER_FILE 3650 diff --git a/src/mnode/src/mnodeVgroup.c b/src/mnode/src/mnodeVgroup.c index 5658f4bcbf..48589fb694 100644 --- a/src/mnode/src/mnodeVgroup.c +++ b/src/mnode/src/mnodeVgroup.c @@ -323,7 +323,7 @@ static int32_t mnodeAllocVgroupIdPool(SVgObj *pInputVgroup) { if (pDb == NULL) return TSDB_CODE_MND_APP_ERROR; int32_t minIdPoolSize = TSDB_MAX_TABLES; - int32_t maxIdPoolSize = TSDB_MIN_TABLES; + int32_t maxIdPoolSize = tsMinTablePerVnode; for (int32_t v = 0; v < pDb->numOfVgroups; ++v) { SVgObj *pVgroup = pDb->vgList[v]; if (pVgroup == NULL) continue; @@ -347,10 +347,10 @@ static int32_t mnodeAllocVgroupIdPool(SVgObj *pInputVgroup) { // realloc all vgroups in db int32_t newIdPoolSize; - if (minIdPoolSize * 4 < TSDB_TABLES_STEP) { + if (minIdPoolSize * 4 < tsTableIncStepPerVnode) { newIdPoolSize = minIdPoolSize * 4; } else { - newIdPoolSize = ((minIdPoolSize / TSDB_TABLES_STEP) + 1) * TSDB_TABLES_STEP; + newIdPoolSize = ((minIdPoolSize / tsTableIncStepPerVnode) + 1) * tsTableIncStepPerVnode; } if (newIdPoolSize > tsMaxTablePerVnode) { diff --git a/src/vnode/src/vnodeMain.c b/src/vnode/src/vnodeMain.c index 695a55d476..01e423e5ec 100644 --- a/src/vnode/src/vnodeMain.c +++ b/src/vnode/src/vnodeMain.c @@ -59,7 +59,7 @@ int32_t vnodeInitResources() { vnodeInitWriteFp(); vnodeInitReadFp(); - tsDnodeVnodesHash = taosHashInit(TSDB_MAX_VNODES, taosGetDefaultHashFunction(TSDB_DATA_TYPE_INT), true); + tsDnodeVnodesHash = taosHashInit(TSDB_MIN_VNODES, taosGetDefaultHashFunction(TSDB_DATA_TYPE_INT), true); if (tsDnodeVnodesHash == NULL) { vError("failed to init vnode list"); return TSDB_CODE_VND_OUT_OF_MEMORY; diff --git a/tests/pytest/util/dnodes.py b/tests/pytest/util/dnodes.py index 0341b3f136..b67f509cc6 100644 --- a/tests/pytest/util/dnodes.py +++ b/tests/pytest/util/dnodes.py @@ -28,7 +28,9 @@ class TDSimClient: "locale": "en_US.UTF-8", "charset": "UTF-8", "asyncLog": "0", - "maxTablesPerVnode": "4", + "minTablesPerVnode": "4", + "maxTablesPerVnode": "1000", + "tableIncStepPerVnode": "10000", "maxVgroupsPerDb": "1000", "sdbDebugFlag": "143", "rpcDebugFlag": "135", diff --git a/tests/script/sh/deploy.sh b/tests/script/sh/deploy.sh index 5573db0739..cbc6edb831 100755 --- a/tests/script/sh/deploy.sh +++ b/tests/script/sh/deploy.sh @@ -139,7 +139,9 @@ echo "clog 2" >> $TAOS_CFG echo "statusInterval 1" >> $TAOS_CFG echo "numOfTotalVnodes 4" >> $TAOS_CFG echo "maxVgroupsPerDb 4" >> $TAOS_CFG +echo "minTablesPerVnode 4" >> $TAOS_CFG echo "maxTablesPerVnode 1000" >> $TAOS_CFG +echo "tableIncStepPerVnode 10000" >> $TAOS_CFG echo "asyncLog 0" >> $TAOS_CFG echo "numOfMnodes 1" >> $TAOS_CFG echo "locale en_US.UTF-8" >> $TAOS_CFG -- GitLab