提交 f2b96fb4 编写于 作者: dengyihao's avatar dengyihao

add checkpoint

上级 9d69b284
...@@ -105,11 +105,14 @@ typedef struct { ...@@ -105,11 +105,14 @@ typedef struct {
int64_t snapshotVer; int64_t snapshotVer;
SWalReader* pWalReader; SWalReader* pWalReader;
SWalRef* pRef; SWalRef* pRef;
// STqPushHandle pushHandle; // push // STqPushHandle pushHandle; // push
STqExecHandle execHandle; // exec STqExecHandle execHandle; // exec
SRpcMsg* msg; SRpcMsg* msg;
tq_handle_status status; tq_handle_status status;
} STqHandle; } STqHandle;
typedef struct {
int64_t snapshotVer;
} SStreamHandle;
struct STQ { struct STQ {
SVnode* pVnode; SVnode* pVnode;
......
...@@ -88,17 +88,20 @@ int32_t streamTaskSnapRead(SStreamTaskReader* pReader, uint8_t** ppData) { ...@@ -88,17 +88,20 @@ int32_t streamTaskSnapRead(SStreamTaskReader* pReader, uint8_t** ppData) {
if (tdbTbcGet(pReader->pCur, &pKey, &kLen, &pVal, &vLen)) { if (tdbTbcGet(pReader->pCur, &pKey, &kLen, &pVal, &vLen)) {
goto _exit; goto _exit;
} }
SStreamTask* pTask = taosMemoryCalloc(1, sizeof(SStreamTask));
if (pTask == NULL) {
return -1;
}
// tDecoderInit(&decoder, (uint8_t*)pVal, vLen); SDecoder decoder;
// tDecodeSTqHandle(&decoder, &handle); tDecoderInit(&decoder, (uint8_t*)pVal, vLen);
// tDecoderClear(&decoder); code = tDecodeStreamTask(&decoder, pTask);
if (code < 0) {
if (handle.snapshotVer <= pReader->sver && handle.snapshotVer >= pReader->ever) { tDecoderClear(&decoder);
tdbTbcMoveToNext(pReader->pCur); taosMemoryFree(pTask);
break; goto _err;
} else {
tdbTbcMoveToNext(pReader->pCur);
} }
tDecoderClear(&decoder);
} }
*ppData = taosMemoryMalloc(sizeof(SSnapDataHdr) + vLen); *ppData = taosMemoryMalloc(sizeof(SSnapDataHdr) + vLen);
...@@ -115,13 +118,12 @@ int32_t streamTaskSnapRead(SStreamTaskReader* pReader, uint8_t** ppData) { ...@@ -115,13 +118,12 @@ int32_t streamTaskSnapRead(SStreamTaskReader* pReader, uint8_t** ppData) {
tqInfo("vgId:%d, vnode snapshot tq read data, version:%" PRId64 " subKey: %s vLen:%d", TD_VID(pReader->pTq->pVnode), tqInfo("vgId:%d, vnode snapshot tq read data, version:%" PRId64 " subKey: %s vLen:%d", TD_VID(pReader->pTq->pVnode),
handle.snapshotVer, handle.subKey, vLen); handle.snapshotVer, handle.subKey, vLen);
return code;
_exit: _exit:
return code; return code;
_err: _err:
tqError("vgId:%d, vnode snapshot tq read data failed since %s", TD_VID(pReader->pTq->pVnode), tstrerror(code)); tqError("vgId:%d, vnode snapshot tq read data failed since %s", TD_VID(pReader->pTq->pVnode), tstrerror(code));
return code; return code;
return 0;
} }
// STqSnapWriter ======================================== // STqSnapWriter ========================================
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册