Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
9d69b284
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1193
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
9d69b284
编写于
6月 27, 2023
作者:
dengyihao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add checkpoint
上级
4de7db06
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
157 addition
and
157 deletion
+157
-157
source/dnode/vnode/src/tq/tqStreamTaskSnap.c
source/dnode/vnode/src/tq/tqStreamTaskSnap.c
+157
-157
未找到文件。
source/dnode/vnode/src/tq/tqStreamTaskSnap.c
浏览文件 @
9d69b284
...
@@ -26,102 +26,101 @@ struct SStreamTaskReader {
...
@@ -26,102 +26,101 @@ struct SStreamTaskReader {
};
};
int32_t
streamTaskSnapReaderOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
SStreamTaskReader
**
ppReader
)
{
int32_t
streamTaskSnapReaderOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
SStreamTaskReader
**
ppReader
)
{
//
int32_t code = 0;
int32_t
code
=
0
;
//
SStreamTaskReader* pReader = NULL;
SStreamTaskReader
*
pReader
=
NULL
;
//
//
alloc
// alloc
//
pReader = (SStreamTaskReader*)taosMemoryCalloc(1, sizeof(SStreamTaskReader));
pReader
=
(
SStreamTaskReader
*
)
taosMemoryCalloc
(
1
,
sizeof
(
SStreamTaskReader
));
//
if (pReader == NULL) {
if
(
pReader
==
NULL
)
{
//
code = TSDB_CODE_OUT_OF_MEMORY;
code
=
TSDB_CODE_OUT_OF_MEMORY
;
//
goto _err;
goto
_err
;
//
}
}
//
pReader->pTq = pTq;
pReader
->
pTq
=
pTq
;
//
pReader->sver = sver;
pReader
->
sver
=
sver
;
//
pReader->ever = ever;
pReader
->
ever
=
ever
;
//
//
impl
// impl
// code = tdbTbcOpen(pTq->pExecStore
, &pReader->pCur, NULL);
code
=
tdbTbcOpen
(
pTq
->
pStreamMeta
->
pTaskDb
,
&
pReader
->
pCur
,
NULL
);
//
if (code) {
if
(
code
)
{
//
taosMemoryFree(pReader);
taosMemoryFree
(
pReader
);
//
goto _err;
goto
_err
;
//
}
}
//
code = tdbTbcMoveToFirst(pReader->pCur);
code
=
tdbTbcMoveToFirst
(
pReader
->
pCur
);
//
if (code) {
if
(
code
)
{
//
taosMemoryFree(pReader);
taosMemoryFree
(
pReader
);
//
goto _err;
goto
_err
;
//
}
}
// tqInfo("vgId:%d, vnode snapshot tq
reader opened", TD_VID(pTq->pVnode));
tqInfo
(
"vgId:%d, vnode stream-task snapshot
reader opened"
,
TD_VID
(
pTq
->
pVnode
));
//
*ppReader = pReader;
*
ppReader
=
pReader
;
//
_err:
_err:
// tqError("vgId:%d, vnode snapshot tq
reader open failed since %s", TD_VID(pTq->pVnode), tstrerror(code));
tqError
(
"vgId:%d, vnode stream-task snapshot
reader open failed since %s"
,
TD_VID
(
pTq
->
pVnode
),
tstrerror
(
code
));
//
*ppReader = NULL;
*
ppReader
=
NULL
;
//
return code;
return
code
;
return
0
;
return
0
;
}
}
int32_t
streamTaskSnapReaderClose
(
SStreamTaskReader
**
ppReader
)
{
int32_t
streamTaskSnapReaderClose
(
SStreamTaskReader
**
ppReader
)
{
//
int32_t code = 0;
int32_t
code
=
0
;
//
tdbTbcClose((*ppReader)->pCur);
tdbTbcClose
((
*
ppReader
)
->
pCur
);
//
taosMemoryFree(*ppReader);
taosMemoryFree
(
*
ppReader
);
//
*ppReader = NULL;
*
ppReader
=
NULL
;
//
return code;
return
code
;
return
0
;
return
0
;
}
}
int32_t
streamTaskSnapRead
(
SStreamTaskReader
*
pReader
,
uint8_t
**
ppData
)
{
int32_t
streamTaskSnapRead
(
SStreamTaskReader
*
pReader
,
uint8_t
**
ppData
)
{
// int32_t code = 0;
int32_t
code
=
0
;
// const void* pKey = NULL;
const
void
*
pKey
=
NULL
;
// const void* pVal = NULL;
const
void
*
pVal
=
NULL
;
// int32_t kLen = 0;
int32_t
kLen
=
0
;
// int32_t vLen = 0;
int32_t
vLen
=
0
;
// SDecoder decoder;
SDecoder
decoder
;
// STqHandle handle;
STqHandle
handle
;
// *ppData = NULL;
*
ppData
=
NULL
;
// for (;;) {
for
(;;)
{
// if (tdbTbcGet(pReader->pCur, &pKey, &kLen, &pVal, &vLen)) {
if
(
tdbTbcGet
(
pReader
->
pCur
,
&
pKey
,
&
kLen
,
&
pVal
,
&
vLen
))
{
// goto _exit;
goto
_exit
;
// }
}
// tDecoderInit(&decoder, (uint8_t*)pVal, vLen);
// tDecoderInit(&decoder, (uint8_t*)pVal, vLen);
// tDecodeSTqHandle(&decoder, &handle);
// tDecodeSTqHandle(&decoder, &handle);
// tDecoderClear(&decoder);
// tDecoderClear(&decoder);
// if (handle.snapshotVer <= pReader->sver && handle.snapshotVer >= pReader->ever) {
if
(
handle
.
snapshotVer
<=
pReader
->
sver
&&
handle
.
snapshotVer
>=
pReader
->
ever
)
{
// tdbTbcMoveToNext(pReader->pCur);
tdbTbcMoveToNext
(
pReader
->
pCur
);
// break;
break
;
// } else {
}
else
{
// tdbTbcMoveToNext(pReader->pCur);
tdbTbcMoveToNext
(
pReader
->
pCur
);
// }
}
// }
}
// *ppData = taosMemoryMalloc(sizeof(SSnapDataHdr) + vLen);
*
ppData
=
taosMemoryMalloc
(
sizeof
(
SSnapDataHdr
)
+
vLen
);
// if (*ppData == NULL) {
if
(
*
ppData
==
NULL
)
{
// code = TSDB_CODE_OUT_OF_MEMORY;
code
=
TSDB_CODE_OUT_OF_MEMORY
;
// goto _err;
goto
_err
;
// }
}
// SSnapDataHdr* pHdr = (SSnapDataHdr*)(*ppData);
SSnapDataHdr
*
pHdr
=
(
SSnapDataHdr
*
)(
*
ppData
);
// pHdr->type = SNAP_DATA_TQ_HANDLE;
pHdr
->
type
=
SNAP_DATA_STREAM_TASK
;
// pHdr->size = vLen;
pHdr
->
size
=
vLen
;
// memcpy(pHdr->data, pVal, vLen);
memcpy
(
pHdr
->
data
,
pVal
,
vLen
);
// tqInfo("vgId:%d, vnode snapshot tq read data, version:%" PRId64 " subKey: %s vLen:%d",
tqInfo
(
"vgId:%d, vnode snapshot tq read data, version:%"
PRId64
" subKey: %s vLen:%d"
,
TD_VID
(
pReader
->
pTq
->
pVnode
),
// TD_VID(pReader->pTq->pVnode),
handle
.
snapshotVer
,
handle
.
subKey
,
vLen
);
// handle.snapshotVer, handle.subKey, vLen);
_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
;
return
0
;
}
}
...
@@ -134,84 +133,85 @@ struct SStreamTaskWriter {
...
@@ -134,84 +133,85 @@ struct SStreamTaskWriter {
};
};
int32_t
streamTaskSnapWriterOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
SStreamTaskWriter
**
ppWriter
)
{
int32_t
streamTaskSnapWriterOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
SStreamTaskWriter
**
ppWriter
)
{
//
int32_t code = 0;
int32_t
code
=
0
;
//
SStreamTaskWriter* pWriter;
SStreamTaskWriter
*
pWriter
;
//
//
alloc
// alloc
//
pWriter = (SStreamTaskWriter*)taosMemoryCalloc(1, sizeof(*pWriter));
pWriter
=
(
SStreamTaskWriter
*
)
taosMemoryCalloc
(
1
,
sizeof
(
*
pWriter
));
//
if (pWriter == NULL) {
if
(
pWriter
==
NULL
)
{
//
code = TSDB_CODE_OUT_OF_MEMORY;
code
=
TSDB_CODE_OUT_OF_MEMORY
;
//
goto _err;
goto
_err
;
//
}
}
//
pWriter->pTq = pTq;
pWriter
->
pTq
=
pTq
;
//
pWriter->sver = sver;
pWriter
->
sver
=
sver
;
//
pWriter->ever = ever;
pWriter
->
ever
=
ever
;
// if (tdbBegin(pTq->pMetaDB
, &pWriter->txn, tdbDefaultMalloc, tdbDefaultFree, NULL, 0) < 0) {
if
(
tdbBegin
(
pTq
->
pStreamMeta
->
db
,
&
pWriter
->
txn
,
tdbDefaultMalloc
,
tdbDefaultFree
,
NULL
,
0
)
<
0
)
{
//
code = -1;
code
=
-
1
;
//
taosMemoryFree(pWriter);
taosMemoryFree
(
pWriter
);
//
goto _err;
goto
_err
;
//
}
}
//
*ppWriter = pWriter;
*
ppWriter
=
pWriter
;
//
return code;
return
code
;
//
_err:
_err:
// tqError("vgId:%d, tq
snapshot writer open failed since %s", TD_VID(pTq->pVnode), tstrerror(code));
tqError
(
"vgId:%d, stream-task
snapshot writer open failed since %s"
,
TD_VID
(
pTq
->
pVnode
),
tstrerror
(
code
));
//
*ppWriter = NULL;
*
ppWriter
=
NULL
;
//
return code;
return
code
;
return
0
;
return
0
;
}
}
int32_t
streamTaskSnapWriterClose
(
SStreamTaskWriter
**
ppWriter
,
int8_t
rollback
)
{
int32_t
streamTaskSnapWriterClose
(
SStreamTaskWriter
**
ppWriter
,
int8_t
rollback
)
{
//
int32_t code = 0;
int32_t
code
=
0
;
//
SStreamTaskWriter* pWriter = *ppWriter;
SStreamTaskWriter
*
pWriter
=
*
ppWriter
;
//
STQ* pTq = pWriter->pTq;
STQ
*
pTq
=
pWriter
->
pTq
;
//
if (rollback) {
if
(
rollback
)
{
// tdbAbort(pWriter->pTq->pMetaDB
, pWriter->txn);
tdbAbort
(
pWriter
->
pTq
->
pStreamMeta
->
db
,
pWriter
->
txn
);
//
} else {
}
else
{
// code = tdbCommit(pWriter->pTq->pMetaDB
, pWriter->txn);
code
=
tdbCommit
(
pWriter
->
pTq
->
pStreamMeta
->
db
,
pWriter
->
txn
);
//
if (code) goto _err;
if
(
code
)
goto
_err
;
// code = tdbPostCommit(pWriter->pTq->pMetaDB
, pWriter->txn);
code
=
tdbPostCommit
(
pWriter
->
pTq
->
pStreamMeta
->
db
,
pWriter
->
txn
);
//
if (code) goto _err;
if
(
code
)
goto
_err
;
//
}
}
//
taosMemoryFree(pWriter);
taosMemoryFree
(
pWriter
);
//
*ppWriter = NULL;
*
ppWriter
=
NULL
;
//
//
restore from metastore
// restore from metastore
//
if (tqMetaRestoreHandle(pTq) < 0) {
// if (tqMetaRestoreHandle(pTq) < 0) {
//
goto _err;
// goto _err;
//
}
// }
//
return code;
return
code
;
//
_err:
_err:
//
tqError("vgId:%d, tq snapshot writer close failed since %s", TD_VID(pWriter->pTq->pVnode), tstrerror(code));
tqError
(
"vgId:%d, tq snapshot writer close failed since %s"
,
TD_VID
(
pWriter
->
pTq
->
pVnode
),
tstrerror
(
code
));
//
return code;
return
code
;
return
0
;
return
0
;
}
}
int32_t
streamTaskSnapWrite
(
SStreamTaskWriter
*
pWriter
,
uint8_t
*
pData
,
uint32_t
nData
)
{
int32_t
streamTaskSnapWrite
(
SStreamTaskWriter
*
pWriter
,
uint8_t
*
pData
,
uint32_t
nData
)
{
// int32_t code = 0;
int32_t
code
=
0
;
// STQ* pTq = pWriter->pTq;
STQ
*
pTq
=
pWriter
->
pTq
;
// SDecoder decoder = {0};
SDecoder
decoder
=
{
0
};
// SDecoder* pDecoder = &decoder;
SDecoder
*
pDecoder
=
&
decoder
;
// STqHandle handle;
STqHandle
handle
;
// tDecoderInit(pDecoder, pData + sizeof(SSnapDataHdr), nData - sizeof(SSnapDataHdr));
// tDecoderInit(pDecoder, pData + sizeof(SSnapDataHdr), nData - sizeof(SSnapDataHdr));
// code = tDecodeSTqHandle(pDecoder, &handle);
// code = tDecodeSTqHandle(pDecoder, &handle);
// if (code) goto _err;
// if (code) goto _err;
// code = tqMetaSaveHandle(pTq, handle.subKey, &handle);
// code = tqMetaSaveHandle(pTq, handle.subKey, &handle);
// if (code < 0) goto _err;
// if (code < 0) goto _err;
// tDecoderClear(pDecoder);
// tDecoderClear(pDecoder);
// insert into pStreamMeta tdb table
// return code;
return
code
;
// _err:
// tDecoderClear(pDecoder);
_err:
// tqError("vgId:%d, vnode snapshot tq write failed since %s", TD_VID(pTq->pVnode), tstrerror(code));
tDecoderClear
(
pDecoder
);
// return code;
tqError
(
"vgId:%d, stream-task snapshot tq write failed since %s"
,
TD_VID
(
pTq
->
pVnode
),
tstrerror
(
code
));
return
code
;
return
0
;
return
0
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录