Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
32dcbfe5
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
32dcbfe5
编写于
6月 16, 2020
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
TD-353
上级
44d5644c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
34 addition
and
28 deletion
+34
-28
src/tsdb/src/tsdbFile.c
src/tsdb/src/tsdbFile.c
+33
-27
src/tsdb/src/tsdbMain.c
src/tsdb/src/tsdbMain.c
+1
-1
未找到文件。
src/tsdb/src/tsdbFile.c
浏览文件 @
32dcbfe5
...
...
@@ -30,20 +30,22 @@
#include "ttime.h"
const
char
*
tsdbFileSuffix
[]
=
{
".head"
,
// TSDB_FILE_TYPE_HEAD
".data"
,
// TSDB_FILE_TYPE_DATA
".last"
// TSDB_FILE_TYPE_LAST
".head"
,
".data"
,
".last"
,
".h"
,
".l"
};
// ---------------- INTERNAL FUNCTIONS ----------------
STsdbFileH
*
tsdbNewFileH
(
STsdbCfg
*
pCfg
)
{
STsdbFileH
*
tsdbNewFileH
(
STsdbCfg
*
pCfg
)
{
STsdbFileH
*
pFileH
=
(
STsdbFileH
*
)
calloc
(
1
,
sizeof
(
*
pFileH
));
if
(
pFileH
==
NULL
)
{
terrno
=
TSDB_CODE_TDB_OUT_OF_MEMORY
;
goto
_err
;
}
pFileH
->
maxFGroups
=
pCfg
->
keep
/
pCfg
->
daysPerFile
+
3
;
pFileH
->
maxFGroups
=
TSDB_MAX_FILE
(
pCfg
->
keep
,
pCfg
->
daysPerFile
)
;
pFileH
->
pFGroup
=
(
SFileGroup
*
)
calloc
(
pFileH
->
maxFGroups
,
sizeof
(
SFileGroup
));
if
(
pFileH
->
pFGroup
==
NULL
)
{
...
...
@@ -53,51 +55,55 @@ STsdbFileH* tsdbNewFileH(STsdbCfg* pCfg) {
return
pFileH
;
_err:
_err:
tsdbFreeFileH
(
pFileH
);
return
NULL
;
}
void
tsdbFreeFileH
(
STsdbFileH
*
pFileH
)
{
void
tsdbFreeFileH
(
STsdbFileH
*
pFileH
)
{
if
(
pFileH
)
{
tfree
(
pFileH
->
pFGroup
);
free
(
pFileH
);
}
}
STsdbFileH
*
tsdbInitFileH
(
char
*
dataDir
,
STsdbCfg
*
pCfg
)
{
STsdbFileH
*
pFileH
=
(
STsdbFileH
*
)
calloc
(
1
,
sizeof
(
STsdbFileH
));
if
(
pFileH
==
NULL
)
{
// TODO: deal with ERROR here
return
NULL
;
}
int
*
tsdbOpenFileH
(
STsdbRepo
*
pRepo
)
{
ASSERT
(
pRepo
!=
NULL
&&
pRepo
->
tsdbFileH
!=
NULL
);
pFileH
->
maxFGroups
=
pCfg
->
keep
/
pCfg
->
daysPerFile
+
3
;
char
*
tDataDir
=
NULL
;
DIR
*
dir
=
NULL
;
int
fid
=
0
;
pFileH
->
fGroup
=
(
SFileGroup
*
)
calloc
(
pFileH
->
maxFGroups
,
sizeof
(
SFileGroup
)
);
if
(
pFileH
->
fGroup
==
NULL
)
{
free
(
pFileH
)
;
return
NULL
;
tsdbGetDataDirName
(
pRepo
->
rootDir
);
if
(
tDataDir
==
NULL
)
{
terrno
=
TSDB_CODE_TDB_OUT_OF_MEMORY
;
goto
_err
;
}
DIR
*
dir
=
opendir
(
d
ataDir
);
DIR
*
dir
=
opendir
(
tD
ataDir
);
if
(
dir
==
NULL
)
{
free
(
pFileH
);
return
NULL
;
tsdbError
(
"vgId:%d failed to open directory %s since %s"
,
REPO_ID
(
pRepo
),
tDataDir
,
strerror
(
errno
));
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
goto
_err
;
}
struct
dirent
*
dp
=
NULL
;
while
((
dp
=
readdir
(
dir
))
!=
NULL
)
{
if
(
strncmp
(
dp
->
d_name
,
"."
,
1
)
==
0
||
strncmp
(
dp
->
d_name
,
".."
,
1
)
==
0
)
continue
;
int
fid
=
0
;
if
(
strncmp
(
dp
->
d_name
,
"."
,
1
)
==
0
||
strncmp
(
dp
->
d_name
,
".."
,
2
)
==
0
)
continue
;
sscanf
(
dp
->
d_name
,
"f%d"
,
&
fid
);
if
(
tsdbOpenFGroup
(
pFileH
,
dataDir
,
fid
)
<
0
)
{
break
;
// TODO
}
// if (tsdbOpenFGroup(pFileH, dataDir, fid) < 0) {
// break;
// }
}
tfree
(
tDataDir
);
closedir
(
dir
);
return
0
;
return
pFileH
;
_err:
tfree
(
tDataDir
);
if
(
dir
!=
NULL
)
closedir
(
tDataDir
);
return
-
1
;
}
void
tsdbCloseFileH
(
STsdbFileH
*
pFileH
)
{
...
...
src/tsdb/src/tsdbMain.c
浏览文件 @
32dcbfe5
...
...
@@ -595,7 +595,7 @@ static STsdbRepo *tsdbNewRepo(char *rootDir, STsdbAppH *pAppH, STsdbCfg *pCfg) {
goto
_err
;
}
pRepo
->
tsdbFileH
=
tsdbNewFileH
(
p
Repo
);
pRepo
->
tsdbFileH
=
tsdbNewFileH
(
p
Cfg
);
if
(
pRepo
->
tsdbFileH
==
NULL
)
{
tsdbError
(
"vgId:%d failed to create file handle since %s"
,
REPO_ID
(
pRepo
),
tstrerror
(
terrno
));
goto
_err
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录