From 9a59689fba491d1787236ae3fdb1a3c6b2412273 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 13 Nov 2024 16:17:16 +0800 Subject: [PATCH] more code --- include/common/tmsg.h | 2 ++ source/common/src/tmsg.c | 11 ++++++++ .../dnode/mnode/impl/inc/mndCompactDetail.h | 12 ++++----- source/dnode/mnode/impl/inc/mndDef.h | 2 ++ source/dnode/mnode/impl/src/mndCompact.c | 2 ++ .../dnode/mnode/impl/src/mndCompactDetail.c | 25 +++++++++++++------ 6 files changed, 39 insertions(+), 15 deletions(-) diff --git a/include/common/tmsg.h b/include/common/tmsg.h index 89b1277245..43f2f9e442 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -1984,6 +1984,8 @@ typedef struct { int32_t dnodeId; int32_t numberFileset; int32_t finished; + int32_t progress; + int64_t remainingTime; } SQueryCompactProgressRsp; int32_t tSerializeSQueryCompactProgressRsp(void* buf, int32_t bufLen, SQueryCompactProgressRsp* pReq); diff --git a/source/common/src/tmsg.c b/source/common/src/tmsg.c index 98d9089e36..8f6d105f29 100644 --- a/source/common/src/tmsg.c +++ b/source/common/src/tmsg.c @@ -6816,6 +6816,9 @@ int32_t tSerializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryComp TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->dnodeId)); TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->numberFileset)); TAOS_CHECK_EXIT(tEncodeI32(&encoder, pReq->finished)); + // 1. add progress and remaining time + TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pReq->progress)); + TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pReq->remainingTime)); tEndEncode(&encoder); @@ -6840,6 +6843,14 @@ int32_t tDeserializeSQueryCompactProgressRsp(void *buf, int32_t bufLen, SQueryCo TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->dnodeId)); TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->numberFileset)); TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->finished)); + // 1. decode progress and remaining time + if (!tDecodeIsEnd(&decoder)) { + TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pReq->progress)); + TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pReq->remainingTime)); + } else { + pReq->progress = 0; + pReq->remainingTime = 0; + } tEndDecode(&decoder); _exit: diff --git a/source/dnode/mnode/impl/inc/mndCompactDetail.h b/source/dnode/mnode/impl/inc/mndCompactDetail.h index 601af3b64b..e99923e226 100644 --- a/source/dnode/mnode/impl/inc/mndCompactDetail.h +++ b/source/dnode/mnode/impl/inc/mndCompactDetail.h @@ -25,19 +25,17 @@ extern "C" { int32_t mndInitCompactDetail(SMnode *pMnode); void mndCleanupCompactDetail(SMnode *pMnode); -void tFreeCompactDetailObj(SCompactDetailObj *pCompact); -int32_t tSerializeSCompactDetailObj(void *buf, int32_t bufLen, const SCompactDetailObj *pObj); -int32_t tDeserializeSCompactDetailObj(void *buf, int32_t bufLen, SCompactDetailObj *pObj); +void tFreeCompactDetailObj(SCompactDetailObj *pCompact); -SSdbRaw* mndCompactDetailActionEncode(SCompactDetailObj *pCompact); -SSdbRow* mndCompactDetailActionDecode(SSdbRaw *pRaw); +SSdbRaw *mndCompactDetailActionEncode(SCompactDetailObj *pCompact); +SSdbRow *mndCompactDetailActionDecode(SSdbRaw *pRaw); int32_t mndCompactDetailActionInsert(SSdb *pSdb, SCompactDetailObj *pCompact); int32_t mndCompactDetailActionDelete(SSdb *pSdb, SCompactDetailObj *pCompact); int32_t mndCompactDetailActionUpdate(SSdb *pSdb, SCompactDetailObj *pOldCompact, SCompactDetailObj *pNewCompact); -int32_t mndAddCompactDetailToTran(SMnode *pMnode, STrans *pTrans, SCompactObj* pCompact, SVgObj *pVgroup, - SVnodeGid *pVgid, int32_t index); +int32_t mndAddCompactDetailToTran(SMnode *pMnode, STrans *pTrans, SCompactObj *pCompact, SVgObj *pVgroup, + SVnodeGid *pVgid, int32_t index); int32_t mndRetrieveCompactDetail(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBlock, int32_t rows); diff --git a/source/dnode/mnode/impl/inc/mndDef.h b/source/dnode/mnode/impl/inc/mndDef.h index d2d9b2e8eb..89d767ab72 100644 --- a/source/dnode/mnode/impl/inc/mndDef.h +++ b/source/dnode/mnode/impl/inc/mndDef.h @@ -846,6 +846,8 @@ typedef struct { int64_t startTime; int32_t newNumberFileset; int32_t newFinished; + int32_t progress; + int64_t remainingTime; } SCompactDetailObj; typedef struct { diff --git a/source/dnode/mnode/impl/src/mndCompact.c b/source/dnode/mnode/impl/src/mndCompact.c index 106680da7f..ee49c60084 100644 --- a/source/dnode/mnode/impl/src/mndCompact.c +++ b/source/dnode/mnode/impl/src/mndCompact.c @@ -546,6 +546,8 @@ static int32_t mndUpdateCompactProgress(SMnode *pMnode, SRpcMsg *pReq, int32_t c if (pDetail->compactId == compactId && pDetail->vgId == rsp->vgId && pDetail->dnodeId == rsp->dnodeId) { pDetail->newNumberFileset = rsp->numberFileset; pDetail->newFinished = rsp->finished; + pDetail->progress = rsp->progress; + pDetail->remainingTime = rsp->remainingTime; sdbCancelFetch(pMnode->pSdb, pIter); sdbRelease(pMnode->pSdb, pDetail); diff --git a/source/dnode/mnode/impl/src/mndCompactDetail.c b/source/dnode/mnode/impl/src/mndCompactDetail.c index 910606818f..9a053066b2 100644 --- a/source/dnode/mnode/impl/src/mndCompactDetail.c +++ b/source/dnode/mnode/impl/src/mndCompactDetail.c @@ -90,15 +90,13 @@ int32_t mndRetrieveCompactDetail(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB TAOS_CHECK_RETURN_WITH_RELEASE(colDataSetVal(pColInfo, numOfRows, (const char *)&pCompactDetail->startTime, false), pSdb, pCompactDetail); - int32_t percentage = 0; pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - TAOS_CHECK_RETURN_WITH_RELEASE(colDataSetVal(pColInfo, numOfRows, (const char *)&percentage, false), pSdb, - pCompactDetail); + TAOS_CHECK_RETURN_WITH_RELEASE(colDataSetVal(pColInfo, numOfRows, (const char *)&pCompactDetail->progress, false), + pSdb, pCompactDetail); - int64_t remainTime = 0; pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - TAOS_CHECK_RETURN_WITH_RELEASE(colDataSetVal(pColInfo, numOfRows, (const char *)&remainTime, false), pSdb, - pCompactDetail); + TAOS_CHECK_RETURN_WITH_RELEASE( + colDataSetVal(pColInfo, numOfRows, (const char *)&pCompactDetail->remainingTime, false), pSdb, pCompactDetail); numOfRows++; sdbRelease(pSdb, pCompactDetail); @@ -111,7 +109,7 @@ int32_t mndRetrieveCompactDetail(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB void tFreeCompactDetailObj(SCompactDetailObj *pCompact) {} -int32_t tSerializeSCompactDetailObj(void *buf, int32_t bufLen, const SCompactDetailObj *pObj) { +static int32_t tSerializeSCompactDetailObj(void *buf, int32_t bufLen, const SCompactDetailObj *pObj) { SEncoder encoder = {0}; int32_t code = 0; int32_t lino; @@ -128,6 +126,9 @@ int32_t tSerializeSCompactDetailObj(void *buf, int32_t bufLen, const SCompactDet TAOS_CHECK_EXIT(tEncodeI64(&encoder, pObj->startTime)); TAOS_CHECK_EXIT(tEncodeI32(&encoder, pObj->newNumberFileset)); TAOS_CHECK_EXIT(tEncodeI32(&encoder, pObj->newFinished)); + // 1. add progress and remaining time + TAOS_CHECK_EXIT(tEncodeI32v(&encoder, pObj->progress)); + TAOS_CHECK_EXIT(tEncodeI64v(&encoder, pObj->remainingTime)); tEndEncode(&encoder); @@ -141,7 +142,7 @@ _exit: return tlen; } -int32_t tDeserializeSCompactDetailObj(void *buf, int32_t bufLen, SCompactDetailObj *pObj) { +static int32_t tDeserializeSCompactDetailObj(void *buf, int32_t bufLen, SCompactDetailObj *pObj) { int32_t code = 0; int32_t lino; SDecoder decoder = {0}; @@ -157,6 +158,14 @@ int32_t tDeserializeSCompactDetailObj(void *buf, int32_t bufLen, SCompactDetailO TAOS_CHECK_EXIT(tDecodeI64(&decoder, &pObj->startTime)); TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pObj->newNumberFileset)); TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pObj->newFinished)); + // 1. add progress and remaining time decode + if (!tDecodeIsEnd(&decoder)) { + TAOS_CHECK_EXIT(tDecodeI32v(&decoder, &pObj->progress)); + TAOS_CHECK_EXIT(tDecodeI64v(&decoder, &pObj->remainingTime)); + } else { + pObj->progress = 0; + pObj->remainingTime = 0; + } tEndDecode(&decoder);