Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
c5cbd258
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看板
未验证
提交
c5cbd258
编写于
5月 18, 2023
作者:
H
Haojun Liao
提交者:
GitHub
5月 18, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #21367 from taosdata/fix/TD-24167
fix pause agg task
上级
81589d46
da3fc511
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
69 addition
and
3 deletion
+69
-3
source/dnode/mnode/impl/src/mndStream.c
source/dnode/mnode/impl/src/mndStream.c
+2
-2
source/dnode/vnode/src/tq/tq.c
source/dnode/vnode/src/tq/tq.c
+5
-1
source/libs/stream/src/streamExec.c
source/libs/stream/src/streamExec.c
+3
-0
tests/script/tsim/stream/pauseAndResume.sim
tests/script/tsim/stream/pauseAndResume.sim
+59
-0
未找到文件。
source/dnode/mnode/impl/src/mndStream.c
浏览文件 @
c5cbd258
...
...
@@ -1306,7 +1306,7 @@ int32_t mndPauseAllStreamTasks(STrans *pTrans, SStreamObj *pStream) {
int32_t
sz
=
taosArrayGetSize
(
pTasks
);
for
(
int32_t
j
=
0
;
j
<
sz
;
j
++
)
{
SStreamTask
*
pTask
=
taosArrayGetP
(
pTasks
,
j
);
if
(
pTask
->
taskLevel
==
TASK_LEVEL__SOURCE
&&
mndPauseStreamTask
(
pTrans
,
pTask
)
<
0
)
{
if
(
pTask
->
taskLevel
!=
TASK_LEVEL__SINK
&&
mndPauseStreamTask
(
pTrans
,
pTask
)
<
0
)
{
return
-
1
;
}
}
...
...
@@ -1430,7 +1430,7 @@ int32_t mndResumeAllStreamTasks(STrans *pTrans, SStreamObj *pStream, int8_t igUn
int32_t
sz
=
taosArrayGetSize
(
pTasks
);
for
(
int32_t
j
=
0
;
j
<
sz
;
j
++
)
{
SStreamTask
*
pTask
=
taosArrayGetP
(
pTasks
,
j
);
if
(
pTask
->
taskLevel
==
TASK_LEVEL__SOURCE
&&
mndResumeStreamTask
(
pTrans
,
pTask
,
igUntreated
)
<
0
)
{
if
(
pTask
->
taskLevel
!=
TASK_LEVEL__SINK
&&
mndResumeStreamTask
(
pTrans
,
pTask
,
igUntreated
)
<
0
)
{
return
-
1
;
}
}
...
...
source/dnode/vnode/src/tq/tq.c
浏览文件 @
c5cbd258
...
...
@@ -1449,7 +1449,11 @@ int32_t tqProcessTaskResumeReq(STQ* pTq, int64_t sversion, char* msg, int32_t ms
}
streamMetaReleaseTask
(
pTq
->
pStreamMeta
,
pTask
);
tqStartStreamTasks
(
pTq
);
if
(
pTask
->
taskLevel
==
TASK_LEVEL__SOURCE
)
{
tqStartStreamTasks
(
pTq
);
}
else
{
streamSchedExec
(
pTask
);
}
}
return
0
;
...
...
source/libs/stream/src/streamExec.c
浏览文件 @
c5cbd258
...
...
@@ -269,6 +269,9 @@ int32_t streamExecForAll(SStreamTask* pTask) {
qDebug
(
"s-task:%s start to extract data block from inputQ"
,
pTask
->
id
.
idStr
);
while
(
1
)
{
if
(
streamTaskShouldPause
(
&
pTask
->
status
))
{
return
0
;
}
SStreamQueueItem
*
qItem
=
streamQueueNextItem
(
pTask
->
inputQueue
);
if
(
qItem
==
NULL
)
{
if
(
pTask
->
taskLevel
==
TASK_LEVEL__SOURCE
&&
batchSize
<
MIN_STREAM_EXEC_BATCH_NUM
&&
times
<
5
)
{
...
...
tests/script/tsim/stream/pauseAndResume.sim
浏览文件 @
c5cbd258
...
...
@@ -307,4 +307,63 @@ sql resume stream IF EXISTS streams66666666;
print ===== step 4 over
print ===== step5
sql drop stream if exists streams6;
sql drop database if exists test6;
sql create database test6 vgroups 10;
sql use test6;
sql create stable st(ts timestamp, a int, b int , c int, d double) tags(ta int,tb int,tc int);
sql create table ts1 using st tags(1,1,1);
sql create table ts2 using st tags(2,2,2);
sql create table ts3 using st tags(3,2,2);
sql create table ts4 using st tags(4,2,2);
sql create stream streams6 trigger at_once IGNORE EXPIRED 0 IGNORE UPDATE 0 watermark 1d into streamt6 as select _wstart, count(*) c1 from st interval(10s);
sql insert into ts1 values(1648791213001,1,12,3,1.0);
sql insert into ts2 values(1648791213001,1,12,3,1.0);
sql insert into ts3 values(1648791213001,1,12,3,1.0);
sql insert into ts4 values(1648791213001,1,12,3,1.0);
sleep 1000
sql pause stream streams6;
sleep 1000
sql insert into ts1 values(1648791223001,1,12,3,1.0);
sql insert into ts2 values(1648791233001,1,12,3,1.0);
sql resume stream streams6;
sql insert into ts3 values(1648791243001,1,12,3,1.0);
sql insert into ts4 values(1648791253001,1,12,3,1.0);
$loop_count = 0
loop6:
$loop_count = $loop_count + 1
if $loop_count == 20 then
return -1
endi
sleep 500
print 2 select * from streamt6;
sql select * from streamt6;
if $rows != 5 then
print =====rows=$rows
print $data00 $data01 $data02
print $data10 $data11 $data12
print $data20 $data21 $data22
print $data30 $data31 $data32
print $data40 $data41 $data42
print $data50 $data51 $data52
goto loop6
endi
print ===== step5 over
system sh/stop_dnodes.sh
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录