Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ff647b96
TDengine
项目概览
taosdata
/
TDengine
接近 2 年 前同步成功
通知
1192
Star
22018
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看板
提交
ff647b96
编写于
9月 12, 2022
作者:
C
Cary Xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enh: rsma fetch logic optimization
上级
834c9eda
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
19 deletion
+21
-19
source/dnode/vnode/src/inc/sma.h
source/dnode/vnode/src/inc/sma.h
+1
-1
source/dnode/vnode/src/sma/smaRollup.c
source/dnode/vnode/src/sma/smaRollup.c
+20
-18
未找到文件。
source/dnode/vnode/src/inc/sma.h
浏览文件 @
ff647b96
...
@@ -143,7 +143,7 @@ struct SRSmaInfoItem {
...
@@ -143,7 +143,7 @@ struct SRSmaInfoItem {
int8_t
level
:
4
;
int8_t
level
:
4
;
int8_t
fetchLevel
:
4
;
int8_t
fetchLevel
:
4
;
int8_t
triggerStat
;
int8_t
triggerStat
;
uint16_t
nS
kipp
ed
;
uint16_t
nS
cann
ed
;
int32_t
maxDelay
;
// ms
int32_t
maxDelay
;
// ms
tmr_h
tmrId
;
tmr_h
tmrId
;
};
};
...
...
source/dnode/vnode/src/sma/smaRollup.c
浏览文件 @
ff647b96
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
#define RSMA_QTASKINFO_HEAD_LEN (sizeof(int32_t) + sizeof(int8_t) + sizeof(int64_t)) // len + type + suid
#define RSMA_QTASKINFO_HEAD_LEN (sizeof(int32_t) + sizeof(int8_t) + sizeof(int64_t)) // len + type + suid
#define RSMA_QTASKEXEC_SMOOTH_SIZE (100) // cnt
#define RSMA_QTASKEXEC_SMOOTH_SIZE (100) // cnt
#define RSMA_SUBMIT_BATCH_SIZE (1024) // cnt
#define RSMA_SUBMIT_BATCH_SIZE (1024) // cnt
#define RSMA_FETCH_DELAY_MAX (
90
0000) // ms
#define RSMA_FETCH_DELAY_MAX (
12
0000) // ms
#define RSMA_FETCH_ACTIVE_MAX (1000) // ms
#define RSMA_FETCH_ACTIVE_MAX (1000) // ms
#define RSMA_FETCH_INTERVAL (5000) // ms
#define RSMA_FETCH_INTERVAL (5000) // ms
...
@@ -1712,21 +1712,23 @@ static int32_t tdRSmaFetchAllResult(SSma *pSma, SRSmaInfo *pInfo) {
...
@@ -1712,21 +1712,23 @@ static int32_t tdRSmaFetchAllResult(SSma *pSma, SRSmaInfo *pInfo) {
continue
;
continue
;
}
}
int64_t
curMs
=
taosGetTimestampMs
();
if
((
++
pItem
->
nScanned
*
pItem
->
maxDelay
)
>
RSMA_FETCH_DELAY_MAX
)
{
if
((
pItem
->
nSkipped
*
pItem
->
maxDelay
)
>
RSMA_FETCH_DELAY_MAX
)
{
smaDebug
(
"vgId:%d, suid:%"
PRIi64
" level:%"
PRIi8
" nScanned:%"
PRIi8
" maxDelay:%d, fetch executed"
,
smaDebug
(
"vgId:%d, suid:%"
PRIi64
" level:%"
PRIi8
" nSkipped:%"
PRIi8
" maxDelay:%d, fetch executed"
,
SMA_VID
(
pSma
),
pInfo
->
suid
,
i
,
pItem
->
nScanned
,
pItem
->
maxDelay
);
SMA_VID
(
pSma
),
pInfo
->
suid
,
i
,
pItem
->
nSkipped
,
pItem
->
maxDelay
);
}
else
if
(((
curMs
-
pInfo
->
lastRecv
)
<
RSMA_FETCH_ACTIVE_MAX
))
{
++
pItem
->
nSkipped
;
smaTrace
(
"vgId:%d, suid:%"
PRIi64
" level:%"
PRIi8
" curMs:%"
PRIi64
" lastRecv:%"
PRIi64
", fetch skipped "
,
SMA_VID
(
pSma
),
pInfo
->
suid
,
i
,
curMs
,
pInfo
->
lastRecv
);
continue
;
}
else
{
}
else
{
smaDebug
(
"vgId:%d, suid:%"
PRIi64
" level:%"
PRIi8
" curMs:%"
PRIi64
" lastRecv:%"
PRIi64
", fetch executed "
,
int64_t
curMs
=
taosGetTimestampMs
();
SMA_VID
(
pSma
),
pInfo
->
suid
,
i
,
curMs
,
pInfo
->
lastRecv
);
if
((
curMs
-
pInfo
->
lastRecv
)
<
RSMA_FETCH_ACTIVE_MAX
)
{
smaTrace
(
"vgId:%d, suid:%"
PRIi64
" level:%"
PRIi8
" curMs:%"
PRIi64
" lastRecv:%"
PRIi64
", fetch skipped "
,
SMA_VID
(
pSma
),
pInfo
->
suid
,
i
,
curMs
,
pInfo
->
lastRecv
);
atomic_store_8
(
&
pItem
->
triggerStat
,
TASK_TRIGGER_STAT_ACTIVE
);
// restore the active stat
continue
;
}
else
{
smaDebug
(
"vgId:%d, suid:%"
PRIi64
" level:%"
PRIi8
" curMs:%"
PRIi64
" lastRecv:%"
PRIi64
", fetch executed "
,
SMA_VID
(
pSma
),
pInfo
->
suid
,
i
,
curMs
,
pInfo
->
lastRecv
);
}
}
}
pItem
->
nS
kipp
ed
=
0
;
pItem
->
nS
cann
ed
=
0
;
if
((
terrno
=
qSetMultiStreamInput
(
taskInfo
,
&
dataBlock
,
1
,
STREAM_INPUT__DATA_BLOCK
))
<
0
)
{
if
((
terrno
=
qSetMultiStreamInput
(
taskInfo
,
&
dataBlock
,
1
,
STREAM_INPUT__DATA_BLOCK
))
<
0
)
{
goto
_err
;
goto
_err
;
...
@@ -1737,12 +1739,12 @@ static int32_t tdRSmaFetchAllResult(SSma *pSma, SRSmaInfo *pInfo) {
...
@@ -1737,12 +1739,12 @@ static int32_t tdRSmaFetchAllResult(SSma *pSma, SRSmaInfo *pInfo) {
}
}
tdCleanupStreamInputDataBlock
(
taskInfo
);
tdCleanupStreamInputDataBlock
(
taskInfo
);
smaDebug
(
"vgId:%d, suid:%"
PRIi64
" level:%"
PRIi8
" nS
kipp
ed:%"
PRIi8
" maxDelay:%d, fetch finished"
,
smaDebug
(
"vgId:%d, suid:%"
PRIi64
" level:%"
PRIi8
" nS
cann
ed:%"
PRIi8
" maxDelay:%d, fetch finished"
,
SMA_VID
(
pSma
),
pInfo
->
suid
,
i
,
pItem
->
nSkipp
ed
,
pItem
->
maxDelay
);
SMA_VID
(
pSma
),
pInfo
->
suid
,
i
,
pItem
->
nScann
ed
,
pItem
->
maxDelay
);
}
else
{
}
else
{
smaDebug
(
"vgId:%d, suid:%"
PRIi64
" level:%"
PRIi8
" nS
kipp
ed:%"
PRIi8
smaDebug
(
"vgId:%d, suid:%"
PRIi64
" level:%"
PRIi8
" nS
cann
ed:%"
PRIi8
" maxDelay:%d, fetch not executed as fetch level is %"
PRIi8
,
" maxDelay:%d, fetch not executed as fetch level is %"
PRIi8
,
SMA_VID
(
pSma
),
pInfo
->
suid
,
i
,
pItem
->
nS
kipp
ed
,
pItem
->
maxDelay
,
pItem
->
fetchLevel
);
SMA_VID
(
pSma
),
pInfo
->
suid
,
i
,
pItem
->
nS
cann
ed
,
pItem
->
maxDelay
,
pItem
->
fetchLevel
);
}
}
}
}
...
@@ -1832,7 +1834,7 @@ int32_t tdRSmaProcessExecImpl(SSma *pSma, ERsmaExecType type) {
...
@@ -1832,7 +1834,7 @@ int32_t tdRSmaProcessExecImpl(SSma *pSma, ERsmaExecType type) {
bool
occupied
=
(
batchMax
<=
1
);
bool
occupied
=
(
batchMax
<=
1
);
if
(
batchMax
>
1
)
{
if
(
batchMax
>
1
)
{
batchMax
=
100
/
batchMax
;
batchMax
=
100
/
batchMax
;
batchMax
=
MAX
(
batchMax
,
4
);
batchMax
=
T
MAX
(
batchMax
,
4
);
}
}
while
(
occupied
||
(
++
batchCnt
<
batchMax
))
{
// greedy mode
while
(
occupied
||
(
++
batchCnt
<
batchMax
))
{
// greedy mode
taosReadAllQitems
(
pInfo
->
queue
,
pInfo
->
qall
);
// queue has mutex lock
taosReadAllQitems
(
pInfo
->
queue
,
pInfo
->
qall
);
// queue has mutex lock
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录