Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ce60bd0c
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
ce60bd0c
编写于
9月 14, 2022
作者:
C
Cary Xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enh: tsdb retention and fs optimization
上级
9f1b0558
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
25 addition
and
4 deletion
+25
-4
include/libs/tfs/tfs.h
include/libs/tfs/tfs.h
+8
-0
source/dnode/vnode/src/tsdb/tsdbFS.c
source/dnode/vnode/src/tsdb/tsdbFS.c
+2
-2
source/dnode/vnode/src/tsdb/tsdbRetention.c
source/dnode/vnode/src/tsdb/tsdbRetention.c
+13
-2
source/libs/tfs/src/tfs.c
source/libs/tfs/src/tfs.c
+2
-0
未找到文件。
include/libs/tfs/tfs.h
浏览文件 @
ce60bd0c
...
...
@@ -69,6 +69,14 @@ void tfsUpdateSize(STfs *pTfs);
*/
SDiskSize
tfsGetSize
(
STfs
*
pTfs
);
/**
* @brief Get level of multi-tier storage
*
* @param pTfs
* @return int32_t
*/
int32_t
tfsGetLevel
(
STfs
*
pTfs
);
/**
* @brief Allocate an existing available tier level from fs.
*
...
...
source/dnode/vnode/src/tsdb/tsdbFS.c
浏览文件 @
ce60bd0c
...
...
@@ -58,7 +58,7 @@ static int32_t tsdbGnrtCurrent(STsdb *pTsdb, STsdbFS *pFS, char *fname) {
taosCalcChecksumAppend
(
0
,
pData
,
size
);
// create and write
pFD
=
taosOpenFile
(
fname
,
TD_FILE_WRITE
|
TD_FILE_CREATE
);
pFD
=
taosOpenFile
(
fname
,
TD_FILE_WRITE
|
TD_FILE_CREATE
|
TD_FILE_TRUNC
);
if
(
pFD
==
NULL
)
{
code
=
TAOS_SYSTEM_ERROR
(
errno
);
goto
_err
;
...
...
@@ -1033,7 +1033,7 @@ int32_t tsdbFSCommit2(STsdb *pTsdb, STsdbFS *pFSNew) {
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_err
;
}
iOld
++
;
iNew
++
;
continue
;
}
...
...
source/dnode/vnode/src/tsdb/tsdbRetention.c
浏览文件 @
ce60bd0c
...
...
@@ -16,9 +16,19 @@
#include "tsdb.h"
static
bool
tsdbShouldDoRetention
(
STsdb
*
pTsdb
,
int64_t
now
)
{
STsdbKeepCfg
*
keepCfg
=
&
pTsdb
->
keepCfg
;
if
((
keepCfg
->
keep0
==
keepCfg
->
keep1
)
&&
(
keepCfg
->
keep1
==
keepCfg
->
keep2
))
{
return
false
;
}
if
(
tfsGetLevel
(
pTsdb
->
pVnode
->
pTfs
)
<=
1
)
{
return
false
;
}
for
(
int32_t
iSet
=
0
;
iSet
<
taosArrayGetSize
(
pTsdb
->
fs
.
aDFileSet
);
iSet
++
)
{
SDFileSet
*
pSet
=
(
SDFileSet
*
)
taosArrayGet
(
pTsdb
->
fs
.
aDFileSet
,
iSet
);
int32_t
expLevel
=
tsdbFidLevel
(
pSet
->
fid
,
&
pTsdb
->
keepCfg
,
now
);
int32_t
expLevel
=
tsdbFidLevel
(
pSet
->
fid
,
keepCfg
,
now
);
SDiskID
did
;
if
(
expLevel
==
pSet
->
diskId
.
level
)
continue
;
...
...
@@ -53,7 +63,7 @@ int32_t tsdbDoRetention(STsdb *pTsdb, int64_t now) {
if
(
code
)
goto
_err
;
for
(
int32_t
iSet
=
0
;
iSet
<
taosArrayGetSize
(
fs
.
aDFileSet
);
iSet
++
)
{
SDFileSet
*
pSet
=
(
SDFileSet
*
)
taosArrayGet
(
pTsdb
->
fs
.
aDFileSet
,
iSet
);
SDFileSet
*
pSet
=
(
SDFileSet
*
)
taosArrayGet
(
fs
.
aDFileSet
,
iSet
);
int32_t
expLevel
=
tsdbFidLevel
(
pSet
->
fid
,
&
pTsdb
->
keepCfg
,
now
);
SDiskID
did
;
...
...
@@ -65,6 +75,7 @@ int32_t tsdbDoRetention(STsdb *pTsdb, int64_t now) {
taosArrayRemove
(
fs
.
aDFileSet
,
iSet
);
iSet
--
;
}
else
{
if
(
expLevel
==
0
)
continue
;
if
(
tfsAllocDisk
(
pTsdb
->
pVnode
->
pTfs
,
expLevel
,
&
did
)
<
0
)
{
code
=
terrno
;
goto
_exit
;
...
...
source/libs/tfs/src/tfs.c
浏览文件 @
ce60bd0c
...
...
@@ -113,6 +113,8 @@ SDiskSize tfsGetSize(STfs *pTfs) {
return
size
;
}
int32_t
tfsGetLevel
(
STfs
*
pTfs
)
{
return
pTfs
->
nlevel
;
}
int32_t
tfsAllocDisk
(
STfs
*
pTfs
,
int32_t
expLevel
,
SDiskID
*
pDiskId
)
{
pDiskId
->
level
=
expLevel
;
pDiskId
->
id
=
-
1
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录