Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
7cc7d35b
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看板
提交
7cc7d35b
编写于
5月 16, 2023
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more code
上级
f4098640
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
66 addition
and
42 deletion
+66
-42
source/dnode/vnode/src/tsdb/dev/inc/tsdbFSet.h
source/dnode/vnode/src/tsdb/dev/inc/tsdbFSet.h
+1
-1
source/dnode/vnode/src/tsdb/dev/inc/tsdbFile.h
source/dnode/vnode/src/tsdb/dev/inc/tsdbFile.h
+1
-1
source/dnode/vnode/src/tsdb/dev/tsdbFS.c
source/dnode/vnode/src/tsdb/dev/tsdbFS.c
+12
-23
source/dnode/vnode/src/tsdb/dev/tsdbFSet.c
source/dnode/vnode/src/tsdb/dev/tsdbFSet.c
+38
-3
source/dnode/vnode/src/tsdb/dev/tsdbFile.c
source/dnode/vnode/src/tsdb/dev/tsdbFile.c
+14
-14
未找到文件。
source/dnode/vnode/src/tsdb/dev/inc/tsdbFSet.h
浏览文件 @
7cc7d35b
...
...
@@ -34,7 +34,7 @@ typedef enum {
}
tsdb_fop_t
;
int32_t
tsdbFileSetToJson
(
const
STFileSet
*
fset
,
cJSON
*
json
);
int32_t
tsdb
FileSetFromJson
(
const
cJSON
*
json
,
STFileSet
*
fset
);
int32_t
tsdb
JsonToFileSet
(
const
cJSON
*
json
,
STFileSet
*
fset
);
int32_t
tsdbFileSetInit
(
STFileSet
*
pSet
);
int32_t
tsdbFileSetClear
(
STFileSet
*
pSet
);
...
...
source/dnode/vnode/src/tsdb/dev/inc/tsdbFile.h
浏览文件 @
7cc7d35b
...
...
@@ -37,7 +37,7 @@ typedef enum {
#define TSDB_FTYPE_MAX (TSDB_FTYPE_TOMB + 1)
int32_t
tsdbTFileToJson
(
const
STFile
*
f
,
cJSON
*
json
);
int32_t
tsdb
TFileFromJson
(
const
cJSON
*
json
,
tsdb_ftype_t
ftype
,
STFile
*
*
f
);
int32_t
tsdb
JsonToTFile
(
const
cJSON
*
json
,
tsdb_ftype_t
ftype
,
STFile
*
f
);
// create/destroy
int32_t
tsdbTFileCreate
(
const
STFile
*
pFile
,
STFile
**
f
);
...
...
source/dnode/vnode/src/tsdb/dev/tsdbFS.c
浏览文件 @
7cc7d35b
...
...
@@ -111,7 +111,7 @@ static int32_t save_json(const cJSON *json, const char *fname) {
goto
_exit
;
}
if
(
taosWriteFile
(
fp
,
data
,
strlen
(
data
)
+
1
)
<
0
)
{
if
(
taosWriteFile
(
fp
,
data
,
strlen
(
data
))
<
0
)
{
code
=
TAOS_SYSTEM_ERROR
(
code
);
goto
_exit
;
}
...
...
@@ -130,7 +130,7 @@ _exit:
static
int32_t
load_json
(
const
char
*
fname
,
cJSON
**
json
)
{
int32_t
code
=
0
;
void
*
data
=
NULL
;
char
*
data
=
NULL
;
TdFilePtr
fp
=
taosOpenFile
(
fname
,
TD_FILE_READ
);
if
(
fp
==
NULL
)
return
TAOS_SYSTEM_ERROR
(
code
);
...
...
@@ -141,7 +141,7 @@ static int32_t load_json(const char *fname, cJSON **json) {
goto
_exit
;
}
data
=
taosMemoryMalloc
(
size
);
data
=
taosMemoryMalloc
(
size
+
1
);
if
(
data
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_exit
;
...
...
@@ -151,6 +151,7 @@ static int32_t load_json(const char *fname, cJSON **json) {
code
=
TAOS_SYSTEM_ERROR
(
code
);
goto
_exit
;
}
data
[
size
]
=
'\0'
;
json
[
0
]
=
cJSON_Parse
(
data
);
if
(
json
[
0
]
==
NULL
)
{
...
...
@@ -170,7 +171,7 @@ static int32_t save_fs(SArray *aTFileSet, const char *fname) {
int32_t
lino
=
0
;
cJSON
*
json
=
cJSON_CreateObject
();
if
(
json
==
NULL
)
return
TSDB_CODE_OUT_OF_MEMORY
;
if
(
!
json
)
return
TSDB_CODE_OUT_OF_MEMORY
;
// fmtv
if
(
cJSON_AddNumberToObject
(
json
,
"fmtv"
,
1
)
==
NULL
)
{
...
...
@@ -180,9 +181,7 @@ static int32_t save_fs(SArray *aTFileSet, const char *fname) {
// fset
cJSON
*
ajson
=
cJSON_AddArrayToObject
(
json
,
"fset"
);
if
(
ajson
==
NULL
)
{
TSDB_CHECK_CODE
(
code
=
TSDB_CODE_OUT_OF_MEMORY
,
lino
,
_exit
);
}
if
(
!
ajson
)
TSDB_CHECK_CODE
(
code
=
TSDB_CODE_OUT_OF_MEMORY
,
lino
,
_exit
);
for
(
int32_t
i
=
0
;
i
<
taosArrayGetSize
(
aTFileSet
);
i
++
)
{
STFileSet
*
pFileSet
=
(
STFileSet
*
)
taosArrayGet
(
aTFileSet
,
i
);
cJSON
*
item
;
...
...
@@ -206,7 +205,7 @@ _exit:
return
code
;
}
static
int32_t
load_fs
(
const
char
*
fname
,
SArray
*
aTFileSet
,
int64_t
*
eid
)
{
static
int32_t
load_fs
(
const
char
*
fname
,
SArray
*
aTFileSet
)
{
int32_t
code
=
0
;
int32_t
lino
=
0
;
...
...
@@ -228,25 +227,15 @@ static int32_t load_fs(const char *fname, SArray *aTFileSet, int64_t *eid) {
TSDB_CHECK_CODE
(
code
=
TSDB_CODE_FILE_CORRUPTED
,
lino
,
_exit
);
}
/* eid */
item
=
cJSON_GetObjectItem
(
json
,
"eid"
);
if
(
cJSON_IsNumber
(
item
))
{
eid
[
0
]
=
item
->
valuedouble
;
}
else
{
TSDB_CHECK_CODE
(
code
=
TSDB_CODE_FILE_CORRUPTED
,
lino
,
_exit
);
}
/* fset */
item
=
cJSON_GetObjectItem
(
json
,
"fset"
);
if
(
cJSON_IsArray
(
item
))
{
const
cJSON
*
titem
;
cJSON_ArrayForEach
(
titem
,
item
)
{
STFileSet
*
pFileSet
;
if
((
pFileSet
=
taosArrayReserve
(
aTFileSet
,
1
))
==
NULL
)
{
TSDB_CHECK_CODE
(
code
=
TSDB_CODE_OUT_OF_MEMORY
,
lino
,
_exit
);
}
STFileSet
*
fset
=
taosArrayReserve
(
aTFileSet
,
1
);
if
(
!
fset
)
TSDB_CHECK_CODE
(
code
=
TSDB_CODE_OUT_OF_MEMORY
,
lino
,
_exit
);
code
=
tsdb
FileSetFromJson
(
titem
,
pFileS
et
);
code
=
tsdb
JsonToFileSet
(
titem
,
fs
et
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
}
}
else
{
...
...
@@ -359,7 +348,7 @@ static int32_t open_fs(STFileSystem *fs, int8_t rollback) {
current_fname
(
pTsdb
,
mCurrent
,
TSDB_FCURRENT_M
);
if
(
taosCheckExistFile
(
fCurrent
))
{
// current.json exists
code
=
load_fs
(
fCurrent
,
fs
->
cstate
,
&
fs
->
neid
);
code
=
load_fs
(
fCurrent
,
fs
->
cstate
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
if
(
taosCheckExistFile
(
cCurrent
))
{
...
...
@@ -370,7 +359,7 @@ static int32_t open_fs(STFileSystem *fs, int8_t rollback) {
code
=
abort_edit
(
fs
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
}
else
{
code
=
load_fs
(
cCurrent
,
fs
->
nstate
,
&
fs
->
eid
);
code
=
load_fs
(
cCurrent
,
fs
->
nstate
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
code
=
commit_edit
(
fs
);
...
...
source/dnode/vnode/src/tsdb/dev/tsdbFSet.c
浏览文件 @
7cc7d35b
...
...
@@ -56,6 +56,29 @@ static int32_t add_file(STFileSet *fset, STFile *f) {
return
0
;
}
static
int32_t
stt_lvl_cmpr
(
const
SRBTreeNode
*
n1
,
const
SRBTreeNode
*
n2
)
{
SSttLvl
*
lvl1
=
TCONTAINER_OF
(
n1
,
SSttLvl
,
rbtn
);
SSttLvl
*
lvl2
=
TCONTAINER_OF
(
n2
,
SSttLvl
,
rbtn
);
if
(
lvl1
->
lvl
<
lvl2
->
lvl
)
{
return
-
1
;
}
else
if
(
lvl1
->
lvl
>
lvl2
->
lvl
)
{
return
1
;
}
return
0
;
}
static
int32_t
fset_init
(
STFileSet
*
fset
)
{
memset
(
fset
,
0
,
sizeof
(
*
fset
));
tRBTreeCreate
(
&
fset
->
lvlTree
,
stt_lvl_cmpr
);
return
0
;
}
static
int32_t
fset_clear
(
STFileSet
*
fset
)
{
// TODO
return
0
;
}
int32_t
tsdbFileSetToJson
(
const
STFileSet
*
fset
,
cJSON
*
json
)
{
int32_t
code
=
0
;
...
...
@@ -85,9 +108,11 @@ int32_t tsdbFileSetToJson(const STFileSet *fset, cJSON *json) {
return
0
;
}
int32_t
tsdb
FileSetFromJson
(
const
cJSON
*
json
,
STFileSet
*
fset
)
{
int32_t
tsdb
JsonToFileSet
(
const
cJSON
*
json
,
STFileSet
*
fset
)
{
const
cJSON
*
item
;
fset_init
(
fset
);
/* fid */
item
=
cJSON_GetObjectItem
(
json
,
"fid"
);
if
(
cJSON_IsNumber
(
item
))
{
...
...
@@ -96,9 +121,19 @@ int32_t tsdbFileSetFromJson(const cJSON *json, STFileSet *fset) {
return
TSDB_CODE_FILE_CORRUPTED
;
}
int32_t
code
;
for
(
int32_t
ftype
=
TSDB_FTYPE_MIN
;
ftype
<
TSDB_FTYPE_MAX
;
++
ftype
)
{
// int32_t code = tsdbTFileFromJson(json, ftype, &fset->farr[ftype]->f);
// if (code) return code;
STFile
tf
;
code
=
tsdbJsonToTFile
(
json
,
ftype
,
&
tf
);
if
(
code
==
TSDB_CODE_NOT_FOUND
)
{
continue
;
}
else
if
(
code
)
{
return
code
;
}
else
{
// TODO
// code = tsdbFileObjCreate(&tf, &fset->farr[ftype]);
// if (code) return code;
}
}
// each level
...
...
source/dnode/vnode/src/tsdb/dev/tsdbFile.c
浏览文件 @
7cc7d35b
...
...
@@ -212,23 +212,23 @@ int32_t tsdbTFileToJson(const STFile *file, cJSON *json) {
}
}
int32_t
tsdbTFileFromJson
(
const
cJSON
*
json
,
tsdb_ftype_t
ftype
,
STFile
**
f
)
{
const
cJSON
*
item
=
cJSON_GetObjectItem
(
json
,
g_tfile_info
[
ftype
].
suffix
);
if
(
cJSON_IsObject
(
item
))
{
f
[
0
]
=
(
STFile
*
)
taosMemoryMalloc
(
sizeof
(
*
f
[
0
]));
if
(
f
[
0
]
==
NULL
)
return
TSDB_CODE_OUT_OF_MEMORY
;
int32_t
code
=
g_tfile_info
[
ftype
].
from_json
(
item
,
f
[
0
]);
if
(
code
)
{
taosMemoryFree
(
f
[
0
]);
f
[
0
]
=
NULL
;
return
code
;
}
tsdbTFileInit
(
NULL
/* TODO */
,
f
[
0
]);
int32_t
tsdbJsonToTFile
(
const
cJSON
*
json
,
tsdb_ftype_t
ftype
,
STFile
*
f
)
{
f
[
0
]
=
(
STFile
){.
type
=
ftype
};
if
(
ftype
==
TSDB_FTYPE_STT
)
{
int32_t
code
=
g_tfile_info
[
ftype
].
from_json
(
json
,
f
);
if
(
code
)
return
code
;
}
else
{
f
[
0
]
=
NULL
;
const
cJSON
*
item
=
cJSON_GetObjectItem
(
json
,
g_tfile_info
[
ftype
].
suffix
);
if
(
cJSON_IsObject
(
item
))
{
int32_t
code
=
g_tfile_info
[
ftype
].
from_json
(
item
,
f
);
if
(
code
)
return
code
;
}
else
{
return
TSDB_CODE_NOT_FOUND
;
}
}
// TODO: tsdbTFileInit(NULL, f);
return
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录