From b3be47fdbb3ae43cbaf704b01926669e5578f53a Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Mon, 8 Jul 2024 15:39:25 +0800 Subject: [PATCH] cancel bg tasks when alter stt_trigger --- source/dnode/vnode/src/vnd/vnodeSvr.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/source/dnode/vnode/src/vnd/vnodeSvr.c b/source/dnode/vnode/src/vnd/vnodeSvr.c index 9006d36e65..29104c6c12 100644 --- a/source/dnode/vnode/src/vnd/vnodeSvr.c +++ b/source/dnode/vnode/src/vnd/vnodeSvr.c @@ -738,7 +738,7 @@ int32_t vnodePreprocessQueryMsg(SVnode *pVnode, SRpcMsg *pMsg) { return qWorkerPreprocessQueryMsg(pVnode->pQuery, pMsg, TDMT_SCH_QUERY == pMsg->msgType); } -int32_t vnodeProcessQueryMsg(SVnode *pVnode, SRpcMsg *pMsg, SQueueInfo* pInfo) { +int32_t vnodeProcessQueryMsg(SVnode *pVnode, SRpcMsg *pMsg, SQueueInfo *pInfo) { vTrace("message in vnode query queue is processing"); if ((pMsg->msgType == TDMT_SCH_QUERY || pMsg->msgType == TDMT_VND_TMQ_CONSUME || pMsg->msgType == TDMT_VND_TMQ_CONSUME_PUSH) && @@ -1978,6 +1978,9 @@ _exit: return code; } +extern int32_t tsdbDisableAndCancelAllBgTask(STsdb *pTsdb); +extern int32_t tsdbEnableBgTask(STsdb *pTsdb); + static int32_t vnodeProcessAlterConfigReq(SVnode *pVnode, int64_t ver, void *pReq, int32_t len, SRpcMsg *pRsp) { bool walChanged = false; bool tsdbChanged = false; @@ -2075,7 +2078,14 @@ static int32_t vnodeProcessAlterConfigReq(SVnode *pVnode, int64_t ver, void *pRe } if (req.sttTrigger != -1 && req.sttTrigger != pVnode->config.sttTrigger) { - pVnode->config.sttTrigger = req.sttTrigger; + if (req.sttTrigger > 1 && pVnode->config.sttTrigger > 1) { + pVnode->config.sttTrigger = req.sttTrigger; + } else { + vnodeAWait(&pVnode->commitTask); + tsdbDisableAndCancelAllBgTask(pVnode->pTsdb); + pVnode->config.sttTrigger = req.sttTrigger; + tsdbEnableBgTask(pVnode->pTsdb); + } } if (req.minRows != -1 && req.minRows != pVnode->config.tsdbCfg.minRows) {