refact: resource mgmt when build block for rsma
This commit is contained in:
parent
e918982a5a
commit
11684ceb82
|
@ -2181,15 +2181,14 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq2** pReq, const SSDataBlock* pData
|
|||
|
||||
int32_t buildSubmitReqFromDataBlock(SSubmitReq2** ppReq, const SSDataBlock* pDataBlock, STSchema* pTSchema,
|
||||
int32_t vgId, tb_uid_t suid) {
|
||||
SSubmitReq2* pReq = *ppReq;
|
||||
SSubmitReq2* pReq = NULL;
|
||||
SArray* pVals = NULL;
|
||||
int32_t bufSize = sizeof(SSubmitReq2);
|
||||
int32_t numOfBlks = 0;
|
||||
int32_t sz = 1;
|
||||
|
||||
if (!(pReq = taosMemoryMalloc(bufSize))) {
|
||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
||||
return TSDB_CODE_FAILED;
|
||||
goto _end;
|
||||
}
|
||||
|
||||
if (!(pReq->aSubmitTbData = taosArrayInit(1, sizeof(SSubmitTbData)))) {
|
||||
|
@ -2205,19 +2204,24 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq2** ppReq, const SSDataBlock* pDat
|
|||
}
|
||||
|
||||
SSubmitTbData* pTbData = (SSubmitTbData*)taosMemoryCalloc(1, sizeof(SSubmitTbData));
|
||||
|
||||
if (!pTbData) {
|
||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
||||
return TSDB_CODE_FAILED;
|
||||
goto _end;
|
||||
}
|
||||
|
||||
taosArrayPush(pReq->aSubmitTbData, pTbData);
|
||||
|
||||
if(!(pTbData->aRowP = taosArrayInit(rows, sizeof(SRow*)))){
|
||||
taosMemoryFree(pTbData);
|
||||
goto _end;
|
||||
}
|
||||
pTbData->aRowP = taosArrayInit(rows, sizeof(SRow*));
|
||||
pTbData->suid = suid;
|
||||
pTbData->uid = pDataBlock->info.id.groupId;
|
||||
pTbData->sver = pTSchema->version;
|
||||
|
||||
if (!pVals && !(pVals = taosArrayInit(colNum, sizeof(SColVal)))) {
|
||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
||||
return TSDB_CODE_FAILED;
|
||||
taosArrayDestroy(pTbData->aRowP);
|
||||
taosMemoryFree(pTbData);
|
||||
goto _end;
|
||||
}
|
||||
|
||||
for (int32_t j = 0; j < rows; ++j) { // iterate by row
|
||||
|
@ -2313,16 +2317,24 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq2** ppReq, const SSDataBlock* pDat
|
|||
}
|
||||
}
|
||||
SRow* pRow = NULL;
|
||||
tRowBuild(pVals, pTSchema, &pRow);
|
||||
if (pRow) {
|
||||
if ((terrno = tRowBuild(pVals, pTSchema, &pRow)) < 0) {
|
||||
tDestroySSubmitTbData(pTbData, TSDB_MSG_FLG_ENCODE);
|
||||
goto _end;
|
||||
}
|
||||
ASSERT(pRow);
|
||||
taosArrayPush(pTbData->aRowP, &pRow);
|
||||
}
|
||||
}
|
||||
|
||||
taosArrayPush(pReq->aSubmitTbData, pTbData);
|
||||
}
|
||||
_end:
|
||||
taosArrayDestroy(pVals);
|
||||
if (terrno != 0) {
|
||||
*ppReq = NULL;
|
||||
if (pReq) tDestroySSubmitReq2(pReq, TSDB_MSG_FLG_ENCODE);
|
||||
return TSDB_CODE_FAILED;
|
||||
}
|
||||
*ppReq = pReq;
|
||||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -713,7 +713,7 @@ static int32_t tdRSmaExecAndSubmitResult(SSma *pSma, qTaskInfo_t taskInfo, SRSma
|
|||
}
|
||||
|
||||
if (pReq && tdProcessSubmitReq(sinkTsdb, output->info.version, pReq) < 0) {
|
||||
taosMemoryFreeClear(pReq);
|
||||
tDestroySSubmitReq2(pReq, TSDB_MSG_FLG_ENCODE);
|
||||
smaError("vgId:%d, process submit req for rsma suid:%" PRIu64 ", uid:%" PRIu64 " level %" PRIi8
|
||||
" failed since %s",
|
||||
SMA_VID(pSma), suid, output->info.id.groupId, pItem->level, terrstr());
|
||||
|
@ -723,7 +723,7 @@ static int32_t tdRSmaExecAndSubmitResult(SSma *pSma, qTaskInfo_t taskInfo, SRSma
|
|||
smaDebug("vgId:%d, process submit req for rsma suid:%" PRIu64 ",uid:%" PRIu64 ", level %" PRIi8 " ver %" PRIi64,
|
||||
SMA_VID(pSma), suid, output->info.id.groupId, pItem->level, output->info.version);
|
||||
|
||||
taosMemoryFreeClear(pReq);
|
||||
if(pReq) tDestroySSubmitReq2(pReq, TSDB_MSG_FLG_ENCODE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -150,7 +150,6 @@ int tsdbScanAndConvertSubmitMsg(STsdb *pTsdb, SSubmitReq *pMsg) {
|
|||
}
|
||||
}
|
||||
#endif
|
||||
// pSubmitTbData->flags & SUBMIT_REQ_COLUMN_DATA_FORMAT
|
||||
tInitSubmitBlkIter(&msgIter, pBlock, &blkIter);
|
||||
while ((row = tGetSubmitBlkNext(&blkIter)) != NULL) {
|
||||
if (tsdbCheckRowRange(pTsdb, msgIter.uid, row, minKey, maxKey, now) < 0) {
|
||||
|
|
Loading…
Reference in New Issue