Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ae294b98
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
ae294b98
编写于
9月 21, 2022
作者:
L
Liu Jicong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enh(stream): blocklist do not copy
上级
72fba5a8
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
24 addition
and
18 deletion
+24
-18
source/common/src/tglobal.c
source/common/src/tglobal.c
+5
-6
source/libs/executor/src/executor.c
source/libs/executor/src/executor.c
+8
-5
source/libs/executor/src/scanoperator.c
source/libs/executor/src/scanoperator.c
+11
-7
未找到文件。
source/common/src/tglobal.c
浏览文件 @
ae294b98
...
...
@@ -58,7 +58,7 @@ int32_t tsNumOfMnodeFetchThreads = 1;
int32_t
tsNumOfMnodeReadThreads
=
1
;
int32_t
tsNumOfVnodeQueryThreads
=
4
;
int32_t
tsNumOfVnodeStreamThreads
=
2
;
int32_t
tsNumOfVnodeFetchThreads
=
4
;
int32_t
tsNumOfVnodeFetchThreads
=
1
;
int32_t
tsNumOfVnodeWriteThreads
=
2
;
int32_t
tsNumOfVnodeSyncThreads
=
2
;
int32_t
tsNumOfVnodeRsmaThreads
=
2
;
...
...
@@ -366,9 +366,8 @@ static int32_t taosAddServerCfg(SConfig *pCfg) {
tsNumOfVnodeStreamThreads
=
TMAX
(
tsNumOfVnodeStreamThreads
,
4
);
if
(
cfgAddInt32
(
pCfg
,
"numOfVnodeStreamThreads"
,
tsNumOfVnodeStreamThreads
,
4
,
1024
,
0
)
!=
0
)
return
-
1
;
tsNumOfVnodeFetchThreads
=
tsNumOfCores
/
4
;
tsNumOfVnodeFetchThreads
=
TMAX
(
tsNumOfVnodeFetchThreads
,
4
);
if
(
cfgAddInt32
(
pCfg
,
"numOfVnodeFetchThreads"
,
tsNumOfVnodeFetchThreads
,
4
,
1024
,
0
)
!=
0
)
return
-
1
;
tsNumOfVnodeFetchThreads
=
1
;
if
(
cfgAddInt32
(
pCfg
,
"numOfVnodeFetchThreads"
,
tsNumOfVnodeFetchThreads
,
1
,
1024
,
0
)
!=
0
)
return
-
1
;
tsNumOfVnodeWriteThreads
=
tsNumOfCores
;
tsNumOfVnodeWriteThreads
=
TMAX
(
tsNumOfVnodeWriteThreads
,
1
);
...
...
source/libs/executor/src/executor.c
浏览文件 @
ae294b98
...
...
@@ -52,11 +52,11 @@ static int32_t doSetStreamBlock(SOperatorInfo* pOperator, void* input, size_t nu
// TODO: if a block was set but not consumed,
// prevent setting a different type of block
pInfo
->
validBlockIndex
=
0
;
if
(
pInfo
->
blockType
==
STREAM_INPUT__DATA_BLOCK
)
{
taosArrayClearP
(
pInfo
->
pBlockLists
,
taosMemoryFree
);
}
else
{
/*if (pInfo->blockType == STREAM_INPUT__DATA_BLOCK) {*/
/*taosArrayClearP(pInfo->pBlockLists, taosMemoryFree);*/
/*} else {*/
taosArrayClear
(
pInfo
->
pBlockLists
);
}
/*}*/
if
(
type
==
STREAM_INPUT__MERGED_SUBMIT
)
{
// ASSERT(numOfBlocks > 1);
...
...
@@ -79,7 +79,9 @@ static int32_t doSetStreamBlock(SOperatorInfo* pOperator, void* input, size_t nu
}
else
if
(
type
==
STREAM_INPUT__DATA_BLOCK
)
{
for
(
int32_t
i
=
0
;
i
<
numOfBlocks
;
++
i
)
{
SSDataBlock
*
pDataBlock
=
&
((
SSDataBlock
*
)
input
)[
i
];
taosArrayPush
(
pInfo
->
pBlockLists
,
&
pDataBlock
);
#if 0
// TODO optimize
SSDataBlock* p = createOneDataBlock(pDataBlock, false);
p->info = pDataBlock->info;
...
...
@@ -87,6 +89,7 @@ static int32_t doSetStreamBlock(SOperatorInfo* pOperator, void* input, size_t nu
taosArrayClear(p->pDataBlock);
taosArrayAddAll(p->pDataBlock, pDataBlock->pDataBlock);
taosArrayPush(pInfo->pBlockLists, &p);
#endif
}
pInfo
->
blockType
=
STREAM_INPUT__DATA_BLOCK
;
}
else
{
...
...
source/libs/executor/src/scanoperator.c
浏览文件 @
ae294b98
...
...
@@ -1602,26 +1602,30 @@ static SSDataBlock* doStreamScan(SOperatorInfo* pOperator) {
}
break
;
case
STREAM_DELETE_DATA
:
{
printDataBlock
(
pBlock
,
"stream scan delete recv"
);
SSDataBlock
*
pDelBlock
=
NULL
;
if
(
pInfo
->
tqReader
)
{
SSDataBlock
*
pDelBlock
=
createSpecialDataBlock
(
STREAM_DELETE_DATA
);
pDelBlock
=
createSpecialDataBlock
(
STREAM_DELETE_DATA
);
filterDelBlockByUid
(
pDelBlock
,
pBlock
,
pInfo
);
pBlock
=
pDelBlock
;
}
else
{
pDelBlock
=
pBlock
;
}
printDataBlock
(
pBlock
,
"stream scan delete recv filtered"
);
if
(
!
isIntervalWindow
(
pInfo
)
&&
!
isSessionWindow
(
pInfo
)
&&
!
isStateWindow
(
pInfo
))
{
generateDeleteResultBlock
(
pInfo
,
pBlock
,
pInfo
->
pDeleteDataRes
);
generateDeleteResultBlock
(
pInfo
,
p
Del
Block
,
pInfo
->
pDeleteDataRes
);
pInfo
->
pDeleteDataRes
->
info
.
type
=
STREAM_DELETE_RESULT
;
printDataBlock
(
pBlock
,
"stream scan delete result"
);
printDataBlock
(
p
Del
Block
,
"stream scan delete result"
);
return
pInfo
->
pDeleteDataRes
;
}
else
{
pInfo
->
blockType
=
STREAM_INPUT__DATA_SUBMIT
;
pInfo
->
updateResIndex
=
0
;
generateScanRange
(
pInfo
,
pBlock
,
pInfo
->
pUpdateRes
);
generateScanRange
(
pInfo
,
p
Del
Block
,
pInfo
->
pUpdateRes
);
prepareRangeScan
(
pInfo
,
pInfo
->
pUpdateRes
,
&
pInfo
->
updateResIndex
);
copyDataBlock
(
pInfo
->
pDeleteDataRes
,
pInfo
->
pUpdateRes
);
pInfo
->
pDeleteDataRes
->
info
.
type
=
STREAM_DELETE_DATA
;
pInfo
->
scanMode
=
STREAM_SCAN_FROM_DATAREADER_RANGE
;
printDataBlock
(
pBlock
,
"stream scan delete data"
);
printDataBlock
(
pDelBlock
,
"stream scan delete data"
);
if
(
pInfo
->
tqReader
)
{
blockDataDestroy
(
pDelBlock
);
}
return
pInfo
->
pDeleteDataRes
;
}
}
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录