Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
36c20ec6
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
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看板
提交
36c20ec6
编写于
10月 15, 2021
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more progress
上级
eef8f49a
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
37 addition
and
50 deletion
+37
-50
source/server/vnode/meta/inc/metaInt.h
source/server/vnode/meta/inc/metaInt.h
+0
-31
source/server/vnode/meta/inc/metaUid.h
source/server/vnode/meta/inc/metaUid.h
+14
-2
source/server/vnode/meta/src/meta.c
source/server/vnode/meta/src/meta.c
+16
-13
source/server/vnode/meta/src/metaUid.c
source/server/vnode/meta/src/metaUid.c
+7
-4
未找到文件。
source/server/vnode/meta/inc/metaInt.h
已删除
100644 → 0
浏览文件 @
eef8f49a
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _TD_META_INT_H_
#define _TD_META_INT_H_
#ifdef __cplusplus
extern
"C"
{
#endif
struct
{
tkv_db_t
db
;
}
SMeta
;
#ifdef __cplusplus
}
#endif
#endif
/*_TD_META_INT_H_*/
\ No newline at end of file
source/server/vnode/meta/inc/metaUid.h
浏览文件 @
36c20ec6
...
...
@@ -22,10 +22,22 @@
extern
"C"
{
#endif
typedef
uint64_t
tb_uid_t
;
tb_uid_t
metaGenerateUid
();
/* ------------------------ APIS EXPOSED ------------------------ */
typedef
uint64_t
tb_uid_t
;
typedef
struct
STableUidGenerator
STableUidGenerator
;
// tb_uid_t
#define IVLD_TB_UID 0
tb_uid_t
generateUid
(
STableUidGenerator
*
);
// STableUidGenerator
void
tableUidGeneratorInit
(
STableUidGenerator
*
,
tb_uid_t
suid
);
#define tableUidGeneratorClear(ug)
/* ------------------------ FOR TEST AND COMPILE ONLY ------------------------ */
struct
STableUidGenerator
{
tb_uid_t
nextUid
;
};
#ifdef __cplusplus
}
...
...
source/server/vnode/meta/src/meta.c
浏览文件 @
36c20ec6
...
...
@@ -13,8 +13,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "tkv.h"
#include "thash.h"
#include "tkv.h"
#include "tlist.h"
#include "tlockfree.h"
#include "ttypes.h"
...
...
@@ -43,13 +43,14 @@ typedef struct STableObj {
struct
SMeta
{
pthread_rwlock_t
rwLock
;
SHashObj
*
pTableObjHash
;
// uid --> STableObj
SList
*
stbList
;
// super table list
STkvDb
*
tbnameDb
;
// tbname --> uid
STkvDb
*
tagDb
;
// uid --> tag
STkvDb
*
schemaDb
;
STkvDb
*
tagIdx
;
size_t
totalUsed
;
STableUidGenerator
uidGenerator
;
SHashObj
*
pTableObjHash
;
// uid --> STableObj
SList
*
stbList
;
// super table list
STkvDb
*
tbnameDb
;
// tbname --> uid
STkvDb
*
tagDb
;
// uid --> tag
STkvDb
*
schemaDb
;
STkvDb
*
tagIdx
;
size_t
totalUsed
;
};
static
STable
*
metaTableNew
(
tb_uid_t
uid
,
const
char
*
name
,
int32_t
sver
);
...
...
@@ -68,6 +69,7 @@ SMeta *metaOpen(SMetaOpts *options) {
pthread_rwlock_init
(
&
(
pMeta
->
rwLock
),
NULL
);
tableUidGeneratorInit
(
&
(
pMeta
->
uidGenerator
),
IVLD_TB_UID
);
pMeta
->
pTableObjHash
=
taosHashInit
(
1024
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_BIGINT
),
false
,
HASH_NO_LOCK
);
pMeta
->
stbList
=
tdListNew
(
sizeof
(
STableObj
*
));
...
...
@@ -109,9 +111,9 @@ void metaClose(SMeta *pMeta) {
}
int
metaCreateTable
(
SMeta
*
pMeta
,
STableOpts
*
pTableOpts
)
{
size_t
vallen
;
STkvReadOpts
*
ropt
;
STableObj
*
pTableObj
=
NULL
;
size_t
vallen
;
STkvReadOpts
*
ropt
;
STableObj
*
pTableObj
=
NULL
;
STkvWriteOpts
*
wopt
;
// Check if table already exists
...
...
@@ -133,7 +135,8 @@ int metaCreateTable(SMeta *pMeta, STableOpts *pTableOpts) {
}
// Create table object
pTableObj
->
pTable
=
metaTableNew
(
metaGenerateUid
(),
pTableOpts
->
name
,
schemaVersion
(
pTableOpts
->
pSchema
));
pTableObj
->
pTable
=
metaTableNew
(
generateUid
(
&
(
pMeta
->
uidGenerator
)),
pTableOpts
->
name
,
schemaVersion
(
pTableOpts
->
pSchema
));
if
(
pTableObj
->
pTable
==
NULL
)
{
// TODO
}
...
...
@@ -147,7 +150,7 @@ int metaCreateTable(SMeta *pMeta, STableOpts *pTableOpts) {
// Add to tbname db
tkvPut
(
pMeta
->
tbnameDb
,
wopt
,
pTableOpts
->
name
,
strlen
(
pTableOpts
->
name
),
(
char
*
)
&
pTableObj
->
pTable
->
uid
,
sizeof
(
tb_uid_t
));
sizeof
(
tb_uid_t
));
// Add to schema db
char
id
[
12
];
...
...
source/server/vnode/meta/src/metaUid.c
浏览文件 @
36c20ec6
...
...
@@ -15,9 +15,12 @@
#include "metaUid.h"
static
tb_uid_t
nuid
=
IVLD_TB_UID
;
tb_uid_t
generateUid
(
STableUidGenerator
*
pGen
)
{
// Generate a new table UID
return
++
(
pGen
->
nextUid
);
}
tb_uid_t
metaGenerateUid
(
)
{
//
TODO: need a more complex UID
generator
return
++
n
uid
;
void
tableUidGeneratorInit
(
STableUidGenerator
*
pGen
,
tb_uid_t
suid
)
{
//
Init a
generator
pGen
->
nextUid
=
s
uid
;
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录