Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
afe16332
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
afe16332
编写于
7月 19, 2022
作者:
C
Cary Xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: rsma snapshot
上级
cc3967b9
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
45 addition
and
15 deletion
+45
-15
source/dnode/vnode/src/inc/vnodeInt.h
source/dnode/vnode/src/inc/vnodeInt.h
+5
-6
source/dnode/vnode/src/sma/smaOpen.c
source/dnode/vnode/src/sma/smaOpen.c
+0
-2
source/dnode/vnode/src/sma/smaRollup.c
source/dnode/vnode/src/sma/smaRollup.c
+2
-7
source/dnode/vnode/src/vnd/vnodeSnapshot.c
source/dnode/vnode/src/vnd/vnodeSnapshot.c
+38
-0
未找到文件。
source/dnode/vnode/src/inc/vnodeInt.h
浏览文件 @
afe16332
...
...
@@ -273,8 +273,8 @@ struct SVnode {
#define VND_TSDB(vnd) ((vnd)->pTsdb)
#define VND_RSMA0(vnd) ((vnd)->pTsdb)
#define VND_RSMA1(vnd) ((vnd)->pSma->pRSmaTsdb
1
)
#define VND_RSMA2(vnd) ((vnd)->pSma->pRSmaTsdb
2
)
#define VND_RSMA1(vnd) ((vnd)->pSma->pRSmaTsdb
[TSDB_RETENTION_L0]
)
#define VND_RSMA2(vnd) ((vnd)->pSma->pRSmaTsdb
[TSDB_RETENTION_L1]
)
#define VND_RETENTIONS(vnd) (&(vnd)->config.tsdbCfg.retentions)
#define VND_IS_RSMA(v) ((v)->config.isRsma == 1)
#define VND_IS_TSMA(v) ((v)->config.isTsma == 1)
...
...
@@ -289,8 +289,7 @@ struct SSma {
bool
locked
;
TdThreadMutex
mutex
;
SVnode
*
pVnode
;
STsdb
*
pRSmaTsdb1
;
STsdb
*
pRSmaTsdb2
;
STsdb
*
pRSmaTsdb
[
TSDB_RETENTION_L2
];
void
*
pTSmaEnv
;
void
*
pRSmaEnv
;
};
...
...
@@ -305,8 +304,8 @@ struct SSma {
#define SMA_TSMA_ENV(s) ((s)->pTSmaEnv)
#define SMA_RSMA_ENV(s) ((s)->pRSmaEnv)
#define SMA_RSMA_TSDB0(s) ((s)->pVnode->pTsdb)
#define SMA_RSMA_TSDB1(s) ((s)->pRSmaTsdb
1
)
#define SMA_RSMA_TSDB2(s) ((s)->pRSmaTsdb
2
)
#define SMA_RSMA_TSDB1(s) ((s)->pRSmaTsdb
[TSDB_RETENTION_L0]
)
#define SMA_RSMA_TSDB2(s) ((s)->pRSmaTsdb
[TSDB_RETENTION_L1]
)
// sma
void
smaHandleRes
(
void
*
pVnode
,
int64_t
smaId
,
const
SArray
*
data
);
...
...
source/dnode/vnode/src/sma/smaOpen.c
浏览文件 @
afe16332
...
...
@@ -123,11 +123,9 @@ int32_t smaOpen(SVnode *pVnode) {
}
// restore the rsma
#if 1
if
(
rsmaRestore
(
pSma
)
<
0
)
{
goto
_err
;
}
#endif
}
return
0
;
...
...
source/dnode/vnode/src/sma/smaRollup.c
浏览文件 @
afe16332
...
...
@@ -605,7 +605,7 @@ static int32_t tdRSmaFetchAndSubmitResult(SRSmaInfoItem *pItem, STSchema *pTSche
snprintf
(
flag
,
10
,
"level %"
PRIi8
,
pItem
->
level
);
blockDebugShowDataBlocks
(
pResult
,
flag
);
#endif
STsdb
*
sinkTsdb
=
(
pItem
->
level
==
TSDB_RETENTION_L1
?
pSma
->
pRSmaTsdb
1
:
pSma
->
pRSmaTsdb2
);
STsdb
*
sinkTsdb
=
(
pItem
->
level
==
TSDB_RETENTION_L1
?
pSma
->
pRSmaTsdb
[
0
]
:
pSma
->
pRSmaTsdb
[
1
]
);
SSubmitReq
*
pReq
=
NULL
;
// TODO: the schema update should be handled
if
(
buildSubmitReqFromDataBlock
(
&
pReq
,
pResult
,
pTSchema
,
SMA_VID
(
pSma
),
suid
)
<
0
)
{
...
...
@@ -949,13 +949,8 @@ _err:
* @return int32_t
*/
static
int32_t
tdRSmaRestoreTSDataReload
(
SSma
*
pSma
,
int64_t
committed
)
{
// TODO
smaDebug
(
"vgId:%d, rsma restore from %"
PRIi64
", ts data reload success"
,
SMA_VID
(
pSma
),
committed
);
// NOTHING TODO: the data would be restored from the unified WAL replay procedure
return
TSDB_CODE_SUCCESS
;
_err:
smaError
(
"vgId:%d, rsma restore from %"
PRIi64
", ts data reload failed since %s"
,
SMA_VID
(
pSma
),
committed
,
terrstr
());
return
TSDB_CODE_FAILED
;
}
int32_t
tdProcessRSmaRestoreImpl
(
SSma
*
pSma
)
{
...
...
source/dnode/vnode/src/vnd/vnodeSnapshot.c
浏览文件 @
afe16332
...
...
@@ -27,6 +27,8 @@ struct SVSnapReader {
// tsdb
int8_t
tsdbDone
;
STsdbSnapReader
*
pTsdbReader
;
// rsma
int8_t
rsmaDone
[
TSDB_RETENTION_L2
];
};
int32_t
vnodeSnapReaderOpen
(
SVnode
*
pVnode
,
int64_t
sver
,
int64_t
ever
,
SVSnapReader
**
ppReader
)
{
...
...
@@ -115,6 +117,42 @@ int32_t vnodeSnapRead(SVSnapReader *pReader, uint8_t **ppData, uint32_t *nData)
}
}
// RSMA ==============
#if 0
if (VND_IS_RSMA(pReader->pVnode)) {
// RSMA1/RSMA2
for (int32_t i = 0; i < TSDB_RETENTION_L2; ++i) {
if (!pReader->rsmaDone[i]) {
if (!pReader->pVnode->pSma->pRSmaTsdb[i]) {
// no valid tsdb
pReader->rsmaDone[i] = 1;
continue;
}
if (pReader->pTsdbReader == NULL) {
code = tsdbSnapReaderOpen(pReader->pVnode->pSma->pRSmaTsdb[i], pReader->sver, pReader->ever,
&pReader->pTsdbReader);
if (code) goto _err;
}
code = tsdbSnapRead(pReader->pTsdbReader, ppData);
if (code) {
goto _err;
} else {
if (*ppData) {
goto _exit;
} else {
pReader->tsdbDone = 1;
code = tsdbSnapReaderClose(&pReader->pTsdbReader);
if (code) goto _err;
}
}
}
}
// QTaskInfoFile
// TODO ...
}
#endif
*
ppData
=
NULL
;
*
nData
=
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录