Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
8218febe
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
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看板
提交
8218febe
编写于
6月 29, 2022
作者:
M
Minglei Jin
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'feat/tsdb_refact' of
https://github.com/taosdata/TDengine
into feat/tsdb_refact
上级
90788972
c595b8cf
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
51 addition
and
29 deletion
+51
-29
source/dnode/vnode/src/tsdb/tsdbCommit.c
source/dnode/vnode/src/tsdb/tsdbCommit.c
+23
-1
source/dnode/vnode/src/tsdb/tsdbReaderWriter.c
source/dnode/vnode/src/tsdb/tsdbReaderWriter.c
+28
-28
未找到文件。
source/dnode/vnode/src/tsdb/tsdbCommit.c
浏览文件 @
8218febe
...
...
@@ -405,6 +405,28 @@ _exit:
return
code
;
}
static
int32_t
tsdbCommitBlockData
(
SCommitter
*
pCommitter
,
SBlockData
*
pBlockData
,
SBlock
*
pBlock
,
SBlockIdx
*
pBlockIdx
,
int8_t
toDataOnly
)
{
int32_t
code
=
0
;
if
(
!
toDataOnly
&&
pBlockData
->
nRow
<
pCommitter
->
minRow
)
{
pBlock
->
last
=
1
;
}
else
{
pBlock
->
last
=
0
;
}
code
=
tsdbWriteBlockData
(
pCommitter
->
pWriter
,
pBlockData
,
NULL
,
NULL
,
pBlockIdx
,
pBlock
,
pCommitter
->
cmprAlg
);
if
(
code
)
goto
_err
;
code
=
tMapDataPutItem
(
&
pCommitter
->
nBlockMap
,
pBlock
,
tPutBlock
);
if
(
code
)
goto
_err
;
return
code
;
_err:
return
code
;
}
static
int32_t
tsdbMergeTableData
(
SCommitter
*
pCommitter
,
STbDataIter
*
pIter
,
SBlock
*
pBlockMerge
,
TSDBKEY
toKey
,
int8_t
toDataOnly
)
{
int32_t
code
=
0
;
...
...
@@ -552,7 +574,7 @@ static int32_t tsdbCommitTableMemData(SCommitter *pCommitter, STbDataIter *pIter
continue
;
_write_block:
if
(
!
toDataOnly
&&
pBlockData
->
nRow
<
pCommitter
->
min
Key
)
{
if
(
!
toDataOnly
&&
pBlockData
->
nRow
<
pCommitter
->
min
Row
)
{
pBlock
->
last
=
1
;
}
else
{
pBlock
->
last
=
0
;
...
...
source/dnode/vnode/src/tsdb/tsdbReaderWriter.c
浏览文件 @
8218febe
...
...
@@ -876,37 +876,37 @@ static int32_t tsdbReadSubBlockData(SDataFReader *pReader, SBlockIdx *pBlockIdx,
goto
_err
;
}
// check
p
=
*
ppBuf1
;
SBlockDataHdr
*
pHdr
=
(
SBlockDataHdr
*
)
p
;
ASSERT
(
pHdr
->
delimiter
==
TSDB_FILE_DLMT
);
ASSERT
(
pHdr
->
suid
==
pBlockIdx
->
suid
);
ASSERT
(
pHdr
->
uid
==
pBlockIdx
->
uid
);
p
+=
sizeof
(
*
pHdr
);
if
(
!
taosCheckChecksumWhole
(
p
,
pSubBlock
->
vsize
+
pSubBlock
->
ksize
+
sizeof
(
TSCKSUM
)))
{
code
=
TSDB_CODE_FILE_CORRUPTED
;
goto
_err
;
}
p
+=
(
pSubBlock
->
vsize
+
pSubBlock
->
ksize
+
sizeof
(
TSCKSUM
));
for
(
int32_t
iBlockCol
=
0
;
iBlockCol
<
pSubBlock
->
mBlockCol
.
nItem
;
iBlockCol
++
)
{
tMapDataGetItemByIdx
(
&
pSubBlock
->
mBlockCol
,
iBlockCol
,
pBlockCol
,
tGetBlockCol
);
ASSERT
(
pBlockCol
->
flag
&&
pBlockCol
->
flag
!=
HAS_NONE
);
if
(
pBlockCol
->
flag
==
HAS_NULL
)
continue
;
if
(
!
taosCheckChecksumWhole
(
p
,
pBlockCol
->
bsize
+
pBlockCol
->
csize
+
sizeof
(
TSCKSUM
)))
{
code
=
TSDB_CODE_FILE_CORRUPTED
;
goto
_err
;
}
p
=
p
+
pBlockCol
->
bsize
+
pBlockCol
->
csize
+
sizeof
(
TSCKSUM
);
}
//
//
check
//
p = *ppBuf1;
//
SBlockDataHdr *pHdr = (SBlockDataHdr *)p;
//
ASSERT(pHdr->delimiter == TSDB_FILE_DLMT);
//
ASSERT(pHdr->suid == pBlockIdx->suid);
//
ASSERT(pHdr->uid == pBlockIdx->uid);
//
p += sizeof(*pHdr);
//
if (!taosCheckChecksumWhole(p, pSubBlock->vsize + pSubBlock->ksize + sizeof(TSCKSUM))) {
//
code = TSDB_CODE_FILE_CORRUPTED;
//
goto _err;
//
}
//
p += (pSubBlock->vsize + pSubBlock->ksize + sizeof(TSCKSUM));
//
for (int32_t iBlockCol = 0; iBlockCol < pSubBlock->mBlockCol.nItem; iBlockCol++) {
//
tMapDataGetItemByIdx(&pSubBlock->mBlockCol, iBlockCol, pBlockCol, tGetBlockCol);
//
ASSERT(pBlockCol->flag && pBlockCol->flag != HAS_NONE);
//
if (pBlockCol->flag == HAS_NULL) continue;
//
if (!taosCheckChecksumWhole(p, pBlockCol->bsize + pBlockCol->csize + sizeof(TSCKSUM))) {
//
code = TSDB_CODE_FILE_CORRUPTED;
//
goto _err;
//
}
//
p = p + pBlockCol->bsize + pBlockCol->csize + sizeof(TSCKSUM);
//
}
// recover
pBlockData
->
nRow
=
pSubBlock
->
nRow
;
p
=
*
ppBuf1
+
sizeof
(
*
p
Hdr
);
p
=
*
ppBuf1
+
sizeof
(
SBlockData
Hdr
);
code
=
tsdbRecoverBlockDataKey
(
pBlockData
,
pSubBlock
,
*
ppBuf1
,
ppBuf2
);
if
(
code
)
goto
_err
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录