Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
f282acbc
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1193
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看板
提交
f282acbc
编写于
7月 12, 2023
作者:
K
kailixu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: rsma refactor
上级
8c8bcabd
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
19 addition
and
25 deletion
+19
-25
source/dnode/vnode/src/inc/sma.h
source/dnode/vnode/src/inc/sma.h
+6
-8
source/dnode/vnode/src/inc/vnodeInt.h
source/dnode/vnode/src/inc/vnodeInt.h
+1
-1
source/dnode/vnode/src/sma/smaCommit.c
source/dnode/vnode/src/sma/smaCommit.c
+3
-3
source/dnode/vnode/src/sma/smaEnv.c
source/dnode/vnode/src/sma/smaEnv.c
+3
-2
source/dnode/vnode/src/sma/smaRollup.c
source/dnode/vnode/src/sma/smaRollup.c
+1
-1
source/dnode/vnode/src/sma/smaUtil.c
source/dnode/vnode/src/sma/smaUtil.c
+0
-2
source/dnode/vnode/src/tsdb/tsdbRead.c
source/dnode/vnode/src/tsdb/tsdbRead.c
+3
-3
tests/script/tsim/sma/rsmaCreateInsertQuery.sim
tests/script/tsim/sma/rsmaCreateInsertQuery.sim
+0
-3
tests/script/tsim/sma/rsmaPersistenceRecovery.sim
tests/script/tsim/sma/rsmaPersistenceRecovery.sim
+2
-2
未找到文件。
source/dnode/vnode/src/inc/sma.h
浏览文件 @
f282acbc
...
...
@@ -187,6 +187,12 @@ typedef enum {
RSMA_EXEC_COMMIT
=
3
,
// triggered by commit
}
ERsmaExecType
;
#define TD_SMA_LOOPS_CHECK(n, limit) \
if (++(n) > limit) { \
sched_yield(); \
(n) = 0; \
}
// sma
int32_t
tdCheckAndInitSmaEnv
(
SSma
*
pSma
,
int8_t
smaType
);
void
tdDestroySmaEnv
(
SSmaEnv
*
pSmaEnv
);
...
...
@@ -205,14 +211,6 @@ static FORCE_INLINE void tdUnRefSmaStat(SSma *pSma, SSmaStat *pStat) {
smaDebug
(
"vgId:%d, unref sma stat:%p, val:%d"
,
SMA_VID
(
pSma
),
pStat
,
ref
);
}
static
FORCE_INLINE
void
tdSmaLoopsCheck
(
int32_t
*
pCnt
,
int32_t
limit
)
{
++
(
*
pCnt
);
if
(
*
pCnt
>
limit
)
{
sched_yield
();
*
pCnt
=
0
;
}
}
int32_t
smaPreClose
(
SSma
*
pSma
);
// rsma
...
...
source/dnode/vnode/src/inc/vnodeInt.h
浏览文件 @
f282acbc
...
...
@@ -467,7 +467,7 @@ enum {
SNAP_DATA_DEL
=
3
,
SNAP_DATA_RSMA1
=
4
,
SNAP_DATA_RSMA2
=
5
,
SNAP_DATA_QTASK
=
6
,
// obsolete
SNAP_DATA_QTASK
=
6
,
SNAP_DATA_TQ_HANDLE
=
7
,
SNAP_DATA_TQ_OFFSET
=
8
,
SNAP_DATA_STREAM_TASK
=
9
,
...
...
source/dnode/vnode/src/sma/smaCommit.c
浏览文件 @
f282acbc
...
...
@@ -147,7 +147,7 @@ static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma, bool isCommit) {
atomic_store_8
(
RSMA_TRIGGER_STAT
(
pRSmaStat
),
TASK_TRIGGER_STAT_PAUSED
);
if
(
isCommit
)
{
while
(
atomic_val_compare_exchange_8
(
RSMA_COMMIT_STAT
(
pRSmaStat
),
0
,
1
)
!=
0
)
{
tdSmaLoopsCheck
(
&
nLoops
,
1000
);
TD_SMA_LOOPS_CHECK
(
nLoops
,
1000
)
}
}
// step 2: wait for all triggered fetch tasks to finish
...
...
@@ -159,7 +159,7 @@ static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma, bool isCommit) {
}
else
{
smaDebug
(
"vgId:%d, rsma commit%d, fetch tasks are not all finished yet"
,
SMA_VID
(
pSma
),
isCommit
);
}
tdSmaLoopsCheck
(
&
nLoops
,
1000
);
TD_SMA_LOOPS_CHECK
(
nLoops
,
1000
);
}
/**
...
...
@@ -171,7 +171,7 @@ static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma, bool isCommit) {
(
void
*
)
taosGetSelfPthreadId
());
nLoops
=
0
;
while
(
atomic_load_64
(
&
pRSmaStat
->
nBufItems
)
>
0
)
{
tdSmaLoopsCheck
(
&
nLoops
,
1000
);
TD_SMA_LOOPS_CHECK
(
nLoops
,
1000
);
}
if
(
!
isCommit
)
goto
_exit
;
...
...
source/dnode/vnode/src/sma/smaEnv.c
浏览文件 @
f282acbc
...
...
@@ -247,8 +247,9 @@ static int32_t tdInitSmaStat(SSmaStat **pSmaStat, int8_t smaType, const SSma *pS
_exit:
if
(
code
)
{
smaError
(
"vgId:%d, %s failed at line %d since %s"
,
SMA_VID
(
pSma
),
__func__
,
lino
,
tstrerror
(
code
));
}
else
{
smaDebug
(
"vgId:%d, %s succeed, type:%"
PRIi8
,
SMA_VID
(
pSma
),
__func__
,
smaType
);
}
smaDebug
(
"vgId:%d, %s succeed, type:%"
PRIi8
,
SMA_VID
(
pSma
),
__func__
,
smaType
);
return
code
;
}
...
...
@@ -278,7 +279,7 @@ static void tdDestroyRSmaStat(void *pRSmaStat) {
}
else
{
smaDebug
(
"vgId:%d, rsma fetch tasks are not all finished yet"
,
SMA_VID
(
pSma
));
}
tdSmaLoopsCheck
(
&
nLoops
,
1000
);
TD_SMA_LOOPS_CHECK
(
nLoops
,
1000
);
}
// step 3:
...
...
source/dnode/vnode/src/sma/smaRollup.c
浏览文件 @
f282acbc
...
...
@@ -247,7 +247,7 @@ static int32_t tdSetRSmaInfoItemParams(SSma *pSma, SRSmaParam *param, SRSmaStat
tdRSmaQTaskInfoGetFullPath
(
TD_VID
(
pVnode
),
pRSmaInfo
->
suid
,
idx
+
1
,
tfsGetPrimaryPath
(
pVnode
->
pTfs
),
taskInfDir
);
if
(
!
taosCheckExistFile
(
taskInfDir
))
{
char
*
s
=
taosStrdup
(
taskInfDir
);
if
(
taosMulMkDir
(
taosDirName
(
s
)
)
!=
0
)
{
if
(
taosMulMkDir
(
s
)
!=
0
)
{
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
taosMemoryFree
(
s
);
return
TSDB_CODE_FAILED
;
...
...
source/dnode/vnode/src/sma/smaUtil.c
浏览文件 @
f282acbc
...
...
@@ -15,8 +15,6 @@
#include "sma.h"
#define TD_QTASKINFO_FNAME_PREFIX "main.tdb"
void
tdRSmaQTaskInfoGetFullPath
(
int32_t
vgId
,
tb_uid_t
suid
,
int8_t
level
,
const
char
*
path
,
char
*
outputName
)
{
tdRSmaGetDirName
(
vgId
,
path
,
VNODE_RSMA_DIR
,
true
,
outputName
);
int32_t
rsmaLen
=
strlen
(
outputName
);
...
...
source/dnode/vnode/src/tsdb/tsdbRead.c
浏览文件 @
f282acbc
...
...
@@ -3705,15 +3705,15 @@ static STsdb* getTsdbByRetentions(SVnode* pVnode, TSKEY winSKey, SRetention* ret
if
(
level
==
TSDB_RETENTION_L0
)
{
*
pLevel
=
TSDB_RETENTION_L0
;
tsdb
Error
(
"vgId:%d, rsma level %d is selected to query %s"
,
TD_VID
(
pVnode
),
TSDB_RETENTION_L0
,
str
);
tsdb
Debug
(
"vgId:%d, rsma level %d is selected to query %s"
,
TD_VID
(
pVnode
),
TSDB_RETENTION_L0
,
str
);
return
VND_RSMA0
(
pVnode
);
}
else
if
(
level
==
TSDB_RETENTION_L1
)
{
*
pLevel
=
TSDB_RETENTION_L1
;
tsdb
Error
(
"vgId:%d, rsma level %d is selected to query %s"
,
TD_VID
(
pVnode
),
TSDB_RETENTION_L1
,
str
);
tsdb
Debug
(
"vgId:%d, rsma level %d is selected to query %s"
,
TD_VID
(
pVnode
),
TSDB_RETENTION_L1
,
str
);
return
VND_RSMA1
(
pVnode
);
}
else
{
*
pLevel
=
TSDB_RETENTION_L2
;
tsdb
Error
(
"vgId:%d, rsma level %d is selected to query %s"
,
TD_VID
(
pVnode
),
TSDB_RETENTION_L2
,
str
);
tsdb
Debug
(
"vgId:%d, rsma level %d is selected to query %s"
,
TD_VID
(
pVnode
),
TSDB_RETENTION_L2
,
str
);
return
VND_RSMA2
(
pVnode
);
}
}
...
...
tests/script/tsim/sma/rsmaCreateInsertQuery.sim
浏览文件 @
f282acbc
...
...
@@ -4,9 +4,6 @@ system sh/exec.sh -n dnode1 -s start
sleep 50
sql connect
#todo xukaili sma should use rocksdb.
#return 1
print =============== create database with retentions
sql create database d0 retentions 5s:7d,10s:21d,15s:365d;
sql use d0
...
...
tests/script/tsim/sma/rsmaPersistenceRecovery.sim
浏览文件 @
f282acbc
...
...
@@ -4,8 +4,8 @@ system sh/exec.sh -n dnode1 -s start
sleep 50
sql connect
#todo
xukaili sma should use rocksdb.
#
return 1
#todo
wait for streamState checkpoint
return 1
print =============== create database with retentions
sql create database d0 retentions 5s:7d,5m:21d,15m:365d;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录