Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
a85d522e
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看板
提交
a85d522e
编写于
6月 15, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more work
上级
76a71b11
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
63 addition
and
13 deletion
+63
-13
source/dnode/vnode/src/tsdb/tsdbCommit.c
source/dnode/vnode/src/tsdb/tsdbCommit.c
+60
-12
source/dnode/vnode/src/tsdb/tsdbReaderWriter.c
source/dnode/vnode/src/tsdb/tsdbReaderWriter.c
+3
-1
未找到文件。
source/dnode/vnode/src/tsdb/tsdbCommit.c
浏览文件 @
a85d522e
...
...
@@ -352,30 +352,78 @@ static FORCE_INLINE bool tsdbCommitIterEnd(SCommitter *pCommitter, STbDataIter *
}
static
int32_t
tsdbCommitTableDataImpl
(
SCommitter
*
pCommitter
,
STbDataIter
*
pIter
,
SBlockIdx
*
pBlockIdx
)
{
int32_t
code
=
0
;
TSDBROW
*
pRow
;
int32_t
iBlock
;
int32_t
nBlock
;
SBlock
*
pBlock
;
SBlock
block
;
int32_t
code
=
0
;
int32_t
c
;
int32_t
iBlock
;
int32_t
nBlock
;
SBlock
*
pBlock
;
SBlock
block
;
SBlockIdx
blockIdx
;
// todo
// start ================================
tMapDataReset
(
&
pCommitter
->
oBlock
);
tMapDataReset
(
&
pCommitter
->
nBlock
);
if
(
pBlockIdx
)
{
code
=
tsdbReadBlock
(
pCommitter
->
pReader
,
pBlockIdx
,
&
pCommitter
->
oBlock
,
NULL
);
if
(
code
)
goto
_err
;
}
// start(todo)
// impl ===============================
iBlock
=
0
;
nBlock
=
pCommitter
->
oBlock
.
nItem
;
// impl
pRow
=
tsdbTbDataIterGet
(
pIter
);
if
(
iBlock
<
nBlock
)
{
pBlock
=
&
block
;
tMapDataGetItemByIdx
(
&
pCommitter
->
oBlock
,
iBlock
,
pBlock
,
tGetBlock
);
tMapDataGetItemByIdx
(
&
pCommitter
->
nBlock
,
iBlock
,
pBlock
,
tGetBlock
);
}
else
{
pBlock
=
NULL
;
}
while
(
true
)
{
if
((
pRow
==
NULL
||
pRow
->
pTSRow
->
ts
>
pCommitter
->
maxKey
)
&&
pBlock
==
NULL
)
break
;
TSDBROW
*
pRow
=
tsdbTbDataIterGet
(
pIter
);
bool
iterEnd
=
((
pRow
==
NULL
)
||
(
pRow
->
pTSRow
->
ts
>
pCommitter
->
maxKey
));
bool
blockEnd
=
(
pBlock
==
NULL
);
if
(
iterEnd
&&
blockEnd
)
break
;
if
(
!
iterEnd
&&
!
blockEnd
)
{
c
=
tBlockCmprFn
(
&
(
SBlock
){.
maxKey
.
ts
=
pRow
->
pTSRow
->
ts
},
pBlock
);
if
(
c
==
0
)
{
// merge until pBlock->maxKey
// if (pBlock->last), merge until pCommitter->maxKey
// else merge until pBlock->maxKey
}
else
if
(
c
<
0
)
{
// tsdbCommitTableMemData(pIter, pBlock);
// if (pBlock->last), merge until pCommitter->maxKey
// else, commit until pBlock->minKey-1
}
else
{
// tsdbCommitTableDiskData(pBlock);
// if (pBlock->last), merge until pCommitter->maxKey
// else, move the block to new one
}
}
else
if
(
!
iterEnd
)
{
// no block on disk, commit to last when there are no enough data
// commit memory data to pCommitter->maxKey
// tsdbCommitTableMemData(pIter, NULL);
}
else
{
// tsdbCommitTableDiskData(pBlock); // only left block
// if (last block ? ) else ?
// tMapDataPutItem(&pCommitter->nBlock, pBlock, tPutBlock);
iBlock
++
;
// get new SBlock
}
}
// end
// end ===============================
code
=
tsdbWriteBlock
(
pCommitter
->
pWriter
,
&
pCommitter
->
nBlock
,
NULL
,
&
blockIdx
);
if
(
code
)
goto
_err
;
code
=
tMapDataPutItem
(
&
pCommitter
->
nBlockIdx
,
&
blockIdx
,
tPutBlockIdx
);
if
(
code
)
goto
_err
;
return
code
;
_err:
tsdbError
(
"vgId:%d commit table data impl failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
source/dnode/vnode/src/tsdb/tsdbReaderWriter.c
浏览文件 @
a85d522e
...
...
@@ -669,8 +669,10 @@ _err:
return
code
;
}
int32_t
tsdbWriteBlock
(
SDataFWriter
*
pWriter
,
SMapData
*
p
MapData
,
uint8_t
**
ppBuf
,
SBlockIdx
*
pBlockIdx
)
{
int32_t
tsdbWriteBlock
(
SDataFWriter
*
pWriter
,
SMapData
*
p
BlockMap
,
uint8_t
**
ppBuf
,
SBlockIdx
*
pBlockIdx
)
{
int32_t
code
=
0
;
ASSERT
(
pBlockMap
->
nItem
>
0
);
// TODO
return
code
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录