Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
9828ca9d
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看板
提交
9828ca9d
编写于
6月 08, 2023
作者:
dengyihao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add trigger checkpoint
上级
8b916171
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
57 addition
and
2 deletion
+57
-2
source/libs/stream/inc/streamBackendRocksdb.h
source/libs/stream/inc/streamBackendRocksdb.h
+1
-0
source/libs/stream/src/streamBackendRocksdb.c
source/libs/stream/src/streamBackendRocksdb.c
+37
-1
source/libs/stream/src/streamMeta.c
source/libs/stream/src/streamMeta.c
+18
-1
source/libs/stream/src/streamState.c
source/libs/stream/src/streamState.c
+1
-0
未找到文件。
source/libs/stream/inc/streamBackendRocksdb.h
浏览文件 @
9828ca9d
...
@@ -46,6 +46,7 @@ typedef struct {
...
@@ -46,6 +46,7 @@ typedef struct {
void
*
streamBackendInit
(
const
char
*
path
);
void
*
streamBackendInit
(
const
char
*
path
);
void
streamBackendCleanup
(
void
*
arg
);
void
streamBackendCleanup
(
void
*
arg
);
int32_t
streamBackendDoCheckpoint
(
int64_t
rid
,
const
char
*
cpPath
);
SListNode
*
streamBackendAddCompare
(
void
*
backend
,
void
*
arg
);
SListNode
*
streamBackendAddCompare
(
void
*
backend
,
void
*
arg
);
void
streamBackendDelCompare
(
void
*
backend
,
void
*
arg
);
void
streamBackendDelCompare
(
void
*
backend
,
void
*
arg
);
...
...
source/libs/stream/src/streamBackendRocksdb.c
浏览文件 @
9828ca9d
...
@@ -41,6 +41,7 @@ typedef struct {
...
@@ -41,6 +41,7 @@ typedef struct {
}
RocksdbCfInst
;
}
RocksdbCfInst
;
uint32_t
nextPow2
(
uint32_t
x
)
{
uint32_t
nextPow2
(
uint32_t
x
)
{
if
(
x
<=
1
)
return
2
;
x
=
x
-
1
;
x
=
x
-
1
;
x
=
x
|
(
x
>>
1
);
x
=
x
|
(
x
>>
1
);
x
=
x
|
(
x
>>
2
);
x
=
x
|
(
x
>>
2
);
...
@@ -189,6 +190,37 @@ void streamBackendCleanup(void* arg) {
...
@@ -189,6 +190,37 @@ void streamBackendCleanup(void* arg) {
qDebug
(
"destroy stream backend backend:%p"
,
pHandle
);
qDebug
(
"destroy stream backend backend:%p"
,
pHandle
);
return
;
return
;
}
}
int32_t
streamBackendDoCheckpoint
(
int64_t
backendRid
,
const
char
*
path
)
{
int64_t
st
=
taosGetTimestampMs
();
int32_t
code
=
-
1
;
SBackendHandle
*
pHandle
=
taosAcquireRef
(
streamBackendId
,
backendRid
);
if
(
pHandle
==
NULL
)
{
return
-
1
;
}
qDebug
(
"stream backend:%p start to do checkpoint at:%s "
,
pHandle
,
path
);
if
(
pHandle
->
db
!=
NULL
)
{
char
*
err
=
NULL
;
rocksdb_checkpoint_t
*
cp
=
rocksdb_checkpoint_object_create
(
pHandle
->
db
,
&
err
);
if
(
cp
==
NULL
||
err
!=
NULL
)
{
taosMemoryFree
(
err
);
qError
(
"stream backend:%p failed to do checkpoint at:%s, reason:%s"
,
pHandle
,
path
,
err
);
}
rocksdb_checkpoint_create
(
cp
,
path
,
64
<<
20
,
&
err
);
if
(
err
!=
NULL
)
{
taosMemoryFree
(
err
);
qError
(
"stream backend:%p failed to do checkpoint at:%s, reason:%s"
,
pHandle
,
path
,
err
);
}
else
{
code
=
0
;
qDebug
(
"stream backend:%p end to do checkpoint at:%s, time cost:%"
PRId64
"ms"
,
pHandle
,
path
,
taosGetTimestampMs
()
-
st
);
}
rocksdb_checkpoint_object_destroy
(
cp
);
}
taosReleaseRef
(
streamBackendId
,
backendRid
);
return
code
;
}
SListNode
*
streamBackendAddCompare
(
void
*
backend
,
void
*
arg
)
{
SListNode
*
streamBackendAddCompare
(
void
*
backend
,
void
*
arg
)
{
SBackendHandle
*
pHandle
=
(
SBackendHandle
*
)
backend
;
SBackendHandle
*
pHandle
=
(
SBackendHandle
*
)
backend
;
SListNode
*
node
=
NULL
;
SListNode
*
node
=
NULL
;
...
@@ -810,7 +842,11 @@ int32_t streamStateOpenBackendCf(void* backend, char* name, char** cfs, int32_t
...
@@ -810,7 +842,11 @@ int32_t streamStateOpenBackendCf(void* backend, char* name, char** cfs, int32_t
}
}
int
streamStateOpenBackend
(
void
*
backend
,
SStreamState
*
pState
)
{
int
streamStateOpenBackend
(
void
*
backend
,
SStreamState
*
pState
)
{
qInfo
(
"start to open state %p on backend %p 0x%"
PRIx64
"-%d"
,
pState
,
backend
,
pState
->
streamId
,
pState
->
taskId
);
qInfo
(
"start to open state %p on backend %p 0x%"
PRIx64
"-%d"
,
pState
,
backend
,
pState
->
streamId
,
pState
->
taskId
);
taosAcquireRef
(
streamBackendId
,
pState
->
streamBackendRid
);
void
*
arg
=
taosAcquireRef
(
streamBackendId
,
pState
->
streamBackendRid
);
if
(
arg
==
NULL
)
{
return
-
1
;
}
SBackendHandle
*
handle
=
backend
;
SBackendHandle
*
handle
=
backend
;
sprintf
(
pState
->
pTdbState
->
idstr
,
"0x%"
PRIx64
"-%d"
,
pState
->
streamId
,
pState
->
taskId
);
sprintf
(
pState
->
pTdbState
->
idstr
,
"0x%"
PRIx64
"-%d"
,
pState
->
streamId
,
pState
->
taskId
);
...
...
source/libs/stream/src/streamMeta.c
浏览文件 @
9828ca9d
...
@@ -89,6 +89,10 @@ SStreamMeta* streamMetaOpen(const char* path, void* ahandle, FTaskExpand expandF
...
@@ -89,6 +89,10 @@ SStreamMeta* streamMetaOpen(const char* path, void* ahandle, FTaskExpand expandF
}
}
pMeta
->
streamBackend
=
streamBackendInit
(
streamPath
);
pMeta
->
streamBackend
=
streamBackendInit
(
streamPath
);
if
(
pMeta
->
streamBackend
==
NULL
)
{
goto
_err
;
}
pMeta
->
streamBackendRid
=
taosAddRef
(
streamBackendId
,
pMeta
->
streamBackend
);
pMeta
->
streamBackendRid
=
taosAddRef
(
streamBackendId
,
pMeta
->
streamBackend
);
taosMemoryFree
(
streamPath
);
taosMemoryFree
(
streamPath
);
...
@@ -104,7 +108,6 @@ _err:
...
@@ -104,7 +108,6 @@ _err:
if
(
pMeta
->
pTaskDb
)
tdbTbClose
(
pMeta
->
pTaskDb
);
if
(
pMeta
->
pTaskDb
)
tdbTbClose
(
pMeta
->
pTaskDb
);
if
(
pMeta
->
pCheckpointDb
)
tdbTbClose
(
pMeta
->
pCheckpointDb
);
if
(
pMeta
->
pCheckpointDb
)
tdbTbClose
(
pMeta
->
pCheckpointDb
);
if
(
pMeta
->
db
)
tdbClose
(
pMeta
->
db
);
if
(
pMeta
->
db
)
tdbClose
(
pMeta
->
db
);
// if (pMeta->streamBackend) streamBackendCleanup(pMeta->streamBackend);
taosMemoryFree
(
pMeta
);
taosMemoryFree
(
pMeta
);
qError
(
"failed to open stream meta"
);
qError
(
"failed to open stream meta"
);
return
NULL
;
return
NULL
;
...
@@ -399,3 +402,17 @@ int32_t streamLoadTasks(SStreamMeta* pMeta, int64_t ver) {
...
@@ -399,3 +402,17 @@ int32_t streamLoadTasks(SStreamMeta* pMeta, int64_t ver) {
return
0
;
return
0
;
}
}
int32_t
streamDoCheckpoint
(
SStreamMeta
*
pMeta
)
{
int
code
=
-
1
;
char
buf
[
256
];
sprintf
(
buf
,
"%s/%s"
,
pMeta
->
path
,
"checkpoints"
);
code
=
taosMulModeMkDir
(
buf
,
0755
);
if
(
code
!=
0
)
{
qError
(
"failed to create chechpoint %s, reason:%s"
,
buf
,
tstrerror
(
code
));
return
code
;
}
code
=
streamBackendDoCheckpoint
(
pMeta
->
streamBackendRid
,
buf
);
return
code
;
}
source/libs/stream/src/streamState.c
浏览文件 @
9828ca9d
...
@@ -120,6 +120,7 @@ SStreamState* streamStateOpen(char* path, void* pTask, bool specPath, int32_t sz
...
@@ -120,6 +120,7 @@ SStreamState* streamStateOpen(char* path, void* pTask, bool specPath, int32_t sz
#ifdef USE_ROCKSDB
#ifdef USE_ROCKSDB
SStreamMeta
*
pMeta
=
pStreamTask
->
pMeta
;
SStreamMeta
*
pMeta
=
pStreamTask
->
pMeta
;
pState
->
streamBackendRid
=
pMeta
->
streamBackendRid
;
pState
->
streamBackendRid
=
pMeta
->
streamBackendRid
;
int
code
=
streamStateOpenBackend
(
pMeta
->
streamBackend
,
pState
);
int
code
=
streamStateOpenBackend
(
pMeta
->
streamBackend
,
pState
);
if
(
code
==
-
1
)
{
if
(
code
==
-
1
)
{
taosReleaseRef
(
streamBackendId
,
pMeta
->
streamBackendRid
);
taosReleaseRef
(
streamBackendId
,
pMeta
->
streamBackendRid
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录