Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
66cf4a5b
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
66cf4a5b
编写于
4月 14, 2020
作者:
H
hzcheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
TD-100
上级
d28fae1a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
23 deletion
+9
-23
src/vnode/tsdb/src/tsdbMain.c
src/vnode/tsdb/src/tsdbMain.c
+2
-1
src/vnode/tsdb/src/tsdbRWHelper.c
src/vnode/tsdb/src/tsdbRWHelper.c
+7
-22
未找到文件。
src/vnode/tsdb/src/tsdbMain.c
浏览文件 @
66cf4a5b
...
...
@@ -760,6 +760,8 @@ static int tsdbReadRowsFromCache(SSkipListIterator *pIter, TSKEY maxKey, int max
int
numOfRows
=
0
;
do
{
if
(
numOfRows
>=
maxRowsToRead
)
break
;
SSkipListNode
*
node
=
tSkipListIterGet
(
pIter
);
if
(
node
==
NULL
)
break
;
...
...
@@ -769,7 +771,6 @@ static int tsdbReadRowsFromCache(SSkipListIterator *pIter, TSKEY maxKey, int max
tdAppendDataRowToDataCol
(
row
,
pCols
);
numOfRows
++
;
if
(
numOfRows
>=
maxRowsToRead
)
break
;
}
while
(
tSkipListIterNext
(
pIter
));
return
numOfRows
;
...
...
src/vnode/tsdb/src/tsdbRWHelper.c
浏览文件 @
66cf4a5b
...
...
@@ -243,27 +243,11 @@ int tsdbWriteDataBlock(SRWHelper *pHelper, SDataCols *pDataCols) {
rowsToWrite
=
tsdbMergeDataWithBlock
(
pHelper
,
blkIdx
,
pDataCols
);
if
(
rowsToWrite
<
0
)
goto
_err
;
}
else
{
// Either merge with the previous block or save as a super block in the middle
SCompBlock
*
prevBlock
=
(
blkIdx
==
0
)
?
NULL
:
(
pCompBlock
-
1
);
int
rows1
=
nRowsLEThan
(
pDataCols
,
pCompBlock
->
keyFirst
);
// rows write as a super block in the middle
int
rows2
=
(
prevBlock
)
?
(
pHelper
->
config
.
maxRowsPerFileBlock
-
prevBlock
->
numOfPoints
)
:
rows1
;
// rows can merge with the previous block
if
(
rows1
>=
rows2
)
{
rowsToWrite
=
tsdbWriteBlockToFile
(
pHelper
,
&
(
pHelper
->
files
.
dataF
),
pDataCols
,
rows1
,
&
compBlock
,
false
,
true
);
if
(
rowsToWrite
<
0
)
goto
_err
;
ASSERT
(
rowsToWrite
==
rows1
);
// Add the super block to it
pIdx
->
len
+=
sizeof
(
SCompBlock
);
pIdx
->
numOfSuperBlocks
++
;
}
else
{
rowsToWrite
=
tsdbMergeDataWithBlock
(
pHelper
,
blkIdx
-
1
,
pDataCols
);
if
(
rowsToWrite
<
0
)
goto
_err
;
ASSERT
(
rowsToWrite
==
rows2
);
}
}
else
{
// Save as a super block in the middle
int
rowsToWrite
=
tsdbGetRowsInRange
(
pDataCols
,
0
,
pCompBlock
->
keyFirst
-
1
);
ASSERT
(
rowsToWrite
>
0
);
if
(
tsdbWriteBlockToFile
(
pHelper
,
&
(
pHelper
->
files
.
dataF
),
pDataCols
,
rowsToWrite
,
&
compBlock
,
false
,
true
)
<
0
)
goto
_err
;
if
(
tsdbInsertSuperBlock
(
pHelper
,
pCompBlock
,
pCompBlock
-
pHelper
->
pCompInfo
->
blocks
)
<
0
)
goto
_err
;
}
}
}
...
...
@@ -671,7 +655,7 @@ static int nRowsLEThan(SDataCols *pDataCols, int maxKey) {
return
((
TSKEY
*
)
ptr
-
(
TSKEY
*
)(
pDataCols
->
cols
[
0
].
pData
))
+
1
;
}
// Merge the data with a block
// Merge the data with a block
in file
static
int
tsdbMergeDataWithBlock
(
SRWHelper
*
pHelper
,
int
blkIdx
,
SDataCols
*
pDataCols
)
{
// TODO: set pHelper->hasOldBlock
int
rowsWritten
=
0
;
...
...
@@ -685,6 +669,7 @@ static int tsdbMergeDataWithBlock(SRWHelper *pHelper, int blkIdx, SDataCols *pDa
SCompBlock
*
pCompBlock
=
pHelper
->
pCompInfo
->
blocks
+
blkIdx
;
ASSERT
(
pCompBlock
->
numOfSubBlocks
>=
1
);
ASSERT
(
keyFirst
>=
pCompBlock
->
keyFirst
);
ASSERT
(
compareKeyBlock
((
void
*
)
&
keyFirst
,
(
void
*
)
pCompBlock
)
==
0
);
// Start here
TSKEY
keyLimit
=
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录