Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
159f3acd
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
159f3acd
编写于
4月 22, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refact meta more
上级
0c1cde9c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
34 addition
and
16 deletion
+34
-16
source/dnode/vnode/src/inc/meta.h
source/dnode/vnode/src/inc/meta.h
+6
-1
source/dnode/vnode/src/meta/metaOpen.c
source/dnode/vnode/src/meta/metaOpen.c
+11
-5
source/dnode/vnode/src/meta/metaQuery.c
source/dnode/vnode/src/meta/metaQuery.c
+5
-3
source/dnode/vnode/src/meta/metaTable.c
source/dnode/vnode/src/meta/metaTable.c
+12
-7
未找到文件。
source/dnode/vnode/src/inc/meta.h
浏览文件 @
159f3acd
...
@@ -55,7 +55,7 @@ typedef struct SMetaEntryReader SMetaEntryReader;
...
@@ -55,7 +55,7 @@ typedef struct SMetaEntryReader SMetaEntryReader;
void
metaEntryReaderInit
(
SMetaEntryReader
*
pReader
);
void
metaEntryReaderInit
(
SMetaEntryReader
*
pReader
);
void
metaEntryReaderClear
(
SMetaEntryReader
*
pReader
);
void
metaEntryReaderClear
(
SMetaEntryReader
*
pReader
);
int
metaGetTableEntryByVersion
(
SMeta
*
pMeta
,
SMetaEntryReader
*
pReader
,
int64_t
version
);
int
metaGetTableEntryByVersion
(
SMeta
*
pMeta
,
SMetaEntryReader
*
pReader
,
int64_t
version
,
tb_uid_t
uid
);
int
metaGetTableEntryByUid
(
SMeta
*
pMeta
,
SMetaEntryReader
*
pReader
,
tb_uid_t
uid
);
int
metaGetTableEntryByUid
(
SMeta
*
pMeta
,
SMetaEntryReader
*
pReader
,
tb_uid_t
uid
);
int
metaGetTableEntryByName
(
SMeta
*
pMeta
,
SMetaEntryReader
*
pReader
,
const
char
*
name
);
int
metaGetTableEntryByName
(
SMeta
*
pMeta
,
SMetaEntryReader
*
pReader
,
const
char
*
name
);
...
@@ -84,6 +84,11 @@ struct SMeta {
...
@@ -84,6 +84,11 @@ struct SMeta {
SMetaIdx
*
pIdx
;
SMetaIdx
*
pIdx
;
};
};
typedef
struct
{
int64_t
version
;
tb_uid_t
uid
;
}
STbDbKey
;
typedef
struct
__attribute__
((
__packed__
))
{
typedef
struct
__attribute__
((
__packed__
))
{
tb_uid_t
uid
;
tb_uid_t
uid
;
int32_t
sver
;
int32_t
sver
;
...
...
source/dnode/vnode/src/meta/metaOpen.c
浏览文件 @
159f3acd
...
@@ -52,7 +52,7 @@ int metaOpen(SVnode *pVnode, SMeta **ppMeta) {
...
@@ -52,7 +52,7 @@ int metaOpen(SVnode *pVnode, SMeta **ppMeta) {
}
}
// open pTbDb
// open pTbDb
ret
=
tdbDbOpen
(
"table.db"
,
sizeof
(
int64_t
),
-
1
,
tbDbKeyCmpr
,
pMeta
->
pEnv
,
&
pMeta
->
pTbDb
);
ret
=
tdbDbOpen
(
"table.db"
,
sizeof
(
STbDbKey
),
-
1
,
tbDbKeyCmpr
,
pMeta
->
pEnv
,
&
pMeta
->
pTbDb
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
metaError
(
"vgId: %d failed to open meta table db since %s"
,
TD_VID
(
pVnode
),
tstrerror
(
terrno
));
metaError
(
"vgId: %d failed to open meta table db since %s"
,
TD_VID
(
pVnode
),
tstrerror
(
terrno
));
goto
_err
;
goto
_err
;
...
@@ -143,12 +143,18 @@ int metaClose(SMeta *pMeta) {
...
@@ -143,12 +143,18 @@ int metaClose(SMeta *pMeta) {
}
}
static
int
tbDbKeyCmpr
(
const
void
*
pKey1
,
int
kLen1
,
const
void
*
pKey2
,
int
kLen2
)
{
static
int
tbDbKeyCmpr
(
const
void
*
pKey1
,
int
kLen1
,
const
void
*
pKey2
,
int
kLen2
)
{
int64_t
version1
=
*
(
int64_t
*
)
pKey1
;
STbDbKey
*
pTbDbKey1
=
(
STbDbKey
*
)
pKey1
;
int64_t
version2
=
*
(
int64_t
*
)
pKey2
;
STbDbKey
*
pTbDbKey2
=
(
STbDbKey
*
)
pKey2
;
if
(
version1
>
version2
)
{
if
(
pTbDbKey1
->
version
>
pTbDbKey2
->
version
)
{
return
1
;
return
1
;
}
else
if
(
version1
<
version2
)
{
}
else
if
(
pTbDbKey1
->
version
<
pTbDbKey2
->
version
)
{
return
-
1
;
}
if
(
pTbDbKey1
->
uid
>
pTbDbKey2
->
uid
)
{
return
1
;
}
else
if
(
pTbDbKey1
->
uid
<
pTbDbKey2
->
uid
)
{
return
-
1
;
return
-
1
;
}
}
...
...
source/dnode/vnode/src/meta/metaQuery.c
浏览文件 @
159f3acd
...
@@ -22,9 +22,11 @@ void metaEntryReaderClear(SMetaEntryReader *pReader) {
...
@@ -22,9 +22,11 @@ void metaEntryReaderClear(SMetaEntryReader *pReader) {
TDB_FREE
(
pReader
->
pBuf
);
TDB_FREE
(
pReader
->
pBuf
);
}
}
int
metaGetTableEntryByVersion
(
SMeta
*
pMeta
,
SMetaEntryReader
*
pReader
,
int64_t
version
)
{
int
metaGetTableEntryByVersion
(
SMeta
*
pMeta
,
SMetaEntryReader
*
pReader
,
int64_t
version
,
tb_uid_t
uid
)
{
STbDbKey
tbDbKey
=
{.
version
=
version
,
.
uid
=
uid
};
// query table.db
// query table.db
if
(
tdbDbGet
(
pMeta
->
pTbDb
,
&
version
,
sizeof
(
version
),
&
pReader
->
pBuf
,
&
pReader
->
szBuf
)
<
0
)
{
if
(
tdbDbGet
(
pMeta
->
pTbDb
,
&
tbDbKey
,
sizeof
(
tbDbKey
),
&
pReader
->
pBuf
,
&
pReader
->
szBuf
)
<
0
)
{
goto
_err
;
goto
_err
;
}
}
...
@@ -50,7 +52,7 @@ int metaGetTableEntryByUid(SMeta *pMeta, SMetaEntryReader *pReader, tb_uid_t uid
...
@@ -50,7 +52,7 @@ int metaGetTableEntryByUid(SMeta *pMeta, SMetaEntryReader *pReader, tb_uid_t uid
}
}
version
=
*
(
int64_t
*
)
pReader
->
pBuf
;
version
=
*
(
int64_t
*
)
pReader
->
pBuf
;
return
metaGetTableEntryByVersion
(
pMeta
,
pReader
,
version
);
return
metaGetTableEntryByVersion
(
pMeta
,
pReader
,
version
,
uid
);
}
}
int
metaGetTableEntryByName
(
SMeta
*
pMeta
,
SMetaEntryReader
*
pReader
,
const
char
*
name
)
{
int
metaGetTableEntryByName
(
SMeta
*
pMeta
,
SMetaEntryReader
*
pReader
,
const
char
*
name
)
{
...
...
source/dnode/vnode/src/meta/metaTable.c
浏览文件 @
159f3acd
...
@@ -55,6 +55,7 @@ int metaCreateSTable(SMeta *pMeta, int64_t version, SVCreateStbReq *pReq) {
...
@@ -55,6 +55,7 @@ int metaCreateSTable(SMeta *pMeta, int64_t version, SVCreateStbReq *pReq) {
if
(
metaSaveToTbDb
(
pMeta
,
version
,
&
me
)
<
0
)
goto
_err
;
if
(
metaSaveToTbDb
(
pMeta
,
version
,
&
me
)
<
0
)
goto
_err
;
// save to schema.db (TODO)
// save to schema.db (TODO)
// if (metaSaveToSkmDb(pMeta) < 0) goto _err;
// update uid idx
// update uid idx
if
(
metaUpdateUidIdx
(
pMeta
,
me
.
uid
,
version
)
<
0
)
goto
_err
;
if
(
metaUpdateUidIdx
(
pMeta
,
me
.
uid
,
version
)
<
0
)
goto
_err
;
...
@@ -149,15 +150,19 @@ int metaDropTable(SMeta *pMeta, tb_uid_t uid) {
...
@@ -149,15 +150,19 @@ int metaDropTable(SMeta *pMeta, tb_uid_t uid) {
}
}
static
int
metaSaveToTbDb
(
SMeta
*
pMeta
,
int64_t
version
,
const
SMetaEntry
*
pME
)
{
static
int
metaSaveToTbDb
(
SMeta
*
pMeta
,
int64_t
version
,
const
SMetaEntry
*
pME
)
{
void
*
pKey
=
NULL
;
STbDbKey
tbDbKey
;
void
*
pVal
=
NULL
;
void
*
pKey
=
NULL
;
int
kLen
=
0
;
void
*
pVal
=
NULL
;
int
vLen
=
0
;
int
kLen
=
0
;
SCoder
coder
=
{
0
};
int
vLen
=
0
;
SCoder
coder
=
{
0
};
// set key and value
// set key and value
pKey
=
&
version
;
tbDbKey
.
version
=
version
;
kLen
=
sizeof
(
version
);
tbDbKey
.
uid
=
pME
->
uid
;
pKey
=
&
tbDbKey
;
kLen
=
sizeof
(
tbDbKey
);
if
(
tEncodeSize
(
metaEncodeEntry
,
pME
,
vLen
)
<
0
)
{
if
(
tEncodeSize
(
metaEncodeEntry
,
pME
,
vLen
)
<
0
)
{
goto
_err
;
goto
_err
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录