Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
60be4f73
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
60be4f73
编写于
12月 26, 2021
作者:
S
Shengliang Guan
提交者:
GitHub
12月 26, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #9389 from taosdata/feature/vnode
more
上级
d3157a2d
9ab51149
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
67 addition
and
65 deletion
+67
-65
include/dnode/vnode/meta/meta.h
include/dnode/vnode/meta/meta.h
+2
-33
source/dnode/mgmt/impl/src/dndVnodes.c
source/dnode/mgmt/impl/src/dndVnodes.c
+2
-2
source/dnode/mnode/impl/src/mndStb.c
source/dnode/mnode/impl/src/mndStb.c
+15
-6
source/dnode/vnode/impl/CMakeLists.txt
source/dnode/vnode/impl/CMakeLists.txt
+1
-1
source/dnode/vnode/impl/src/vnodeWrite.c
source/dnode/vnode/impl/src/vnodeWrite.c
+8
-8
source/dnode/vnode/meta/inc/metaTbCfg.h
source/dnode/vnode/meta/inc/metaTbCfg.h
+4
-4
source/dnode/vnode/meta/src/metaBDBImpl.c
source/dnode/vnode/meta/src/metaBDBImpl.c
+33
-9
source/dnode/vnode/meta/src/metaTable.c
source/dnode/vnode/meta/src/metaTable.c
+1
-1
source/dnode/vnode/meta/src/metaTbCfg.c
source/dnode/vnode/meta/src/metaTbCfg.c
+1
-1
未找到文件。
include/dnode/vnode/meta/meta.h
浏览文件 @
60be4f73
...
...
@@ -19,6 +19,7 @@
#include "mallocator.h"
#include "os.h"
#include "trow.h"
#include "tmsg.h"
#ifdef __cplusplus
extern
"C"
{
...
...
@@ -36,39 +37,7 @@ typedef struct SMetaCfg {
uint64_t
lruSize
;
}
SMetaCfg
;
typedef
struct
STbCfg
{
/// name of the table
char
*
name
;
/// time to live of the table
uint32_t
ttl
;
/// keep time of this table
uint32_t
keep
;
/// type of table
uint8_t
type
;
union
{
/// super table configurations
struct
{
/// super table UID
tb_uid_t
suid
;
/// row schema
STSchema
*
pSchema
;
/// tag schema
STSchema
*
pTagSchema
;
}
stbCfg
;
/// normal table configuration
struct
{
/// row schema
STSchema
*
pSchema
;
}
ntbCfg
;
/// child table configuration
struct
{
/// super table UID
tb_uid_t
suid
;
SKVRow
pTag
;
}
ctbCfg
;
};
}
STbCfg
;
typedef
SVCreateTbReq
STbCfg
;
// SMeta operations
SMeta
*
metaOpen
(
const
char
*
path
,
const
SMetaCfg
*
pMetaCfg
,
SMemAllocatorFactory
*
pMAF
);
...
...
source/dnode/mgmt/impl/src/dndVnodes.c
浏览文件 @
60be4f73
...
...
@@ -822,12 +822,12 @@ static void dndProcessVnodeWriteQueue(SVnodeObj *pVnode, taos_qall qall, int32_t
assert
(
ptr
!=
NULL
);
}
//
vnodeProcessWMsgs(pVnode->pImpl, pArray);
vnodeProcessWMsgs
(
pVnode
->
pImpl
,
pArray
);
for
(
size_t
i
=
0
;
i
<
numOfMsgs
;
i
++
)
{
SRpcMsg
*
pRsp
=
NULL
;
SRpcMsg
*
pMsg
=
*
(
SRpcMsg
**
)
taosArrayGet
(
pArray
,
i
);
int32_t
code
=
0
;
//
vnodeApplyWMsg(pVnode->pImpl, pMsg, &pRsp);
int32_t
code
=
vnodeApplyWMsg
(
pVnode
->
pImpl
,
pMsg
,
&
pRsp
);
if
(
pRsp
!=
NULL
)
{
pRsp
->
ahandle
=
pMsg
->
ahandle
;
rpcSendResponse
(
pRsp
);
...
...
source/dnode/mnode/impl/src/mndStb.c
浏览文件 @
60be4f73
...
...
@@ -200,10 +200,12 @@ static SDbObj *mndAcquireDbByStb(SMnode *pMnode, char *stbName) {
return
mndAcquireDb
(
pMnode
,
db
);
}
static
void
*
mndBuildCreateStbMsg
(
SMnode
*
pMnode
,
SVgObj
*
pVgroup
,
SStbObj
*
pStb
,
int
*
contLen
)
{
static
void
*
mndBuildCreateStbMsg
(
SMnode
*
pMnode
,
SVgObj
*
pVgroup
,
SStbObj
*
pStb
,
int
*
pContLen
)
{
#if 1
SVCreateTbReq
req
;
void
*
buf
;
int
bsize
;
SMsgHead
*
pMsgHead
;
req
.
ver
=
0
;
req
.
name
=
pStb
->
name
;
...
...
@@ -217,19 +219,24 @@ static void *mndBuildCreateStbMsg(SMnode *pMnode, SVgObj *pVgroup, SStbObj *pStb
req
.
stbCfg
.
pTagSchema
=
pStb
->
pSchema
+
pStb
->
numOfColumns
;
bsize
=
tSerializeSVCreateTbReq
(
NULL
,
&
req
);
buf
=
malloc
(
bsize
);
buf
=
malloc
(
sizeof
(
SMsgHead
)
+
bsize
);
if
(
buf
==
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
NULL
;
}
void
*
pBuf
=
buf
;
pMsgHead
=
(
SMsgHead
*
)
buf
;
pMsgHead
->
contLen
=
htonl
(
sizeof
(
SMsgHead
)
+
bsize
);
pMsgHead
->
vgId
=
htonl
(
pVgroup
->
vgId
);
void
*
pBuf
=
POINTER_SHIFT
(
buf
,
sizeof
(
SMsgHead
));
tSerializeSVCreateTbReq
(
&
pBuf
,
&
req
);
*
contLen
=
bsize
;
*
pContLen
=
sizeof
(
SMsgHead
)
+
bsize
;
return
buf
;
#
if 0
#
else
int32_t
totalCols
=
pStb
->
numOfTags
+
pStb
->
numOfColumns
;
int32_t
contLen
=
totalCols
*
sizeof
(
SSchema
)
+
sizeof
(
SCreateStbInternalMsg
);
...
...
@@ -255,7 +262,9 @@ static void *mndBuildCreateStbMsg(SMnode *pMnode, SVgObj *pVgroup, SStbObj *pStb
pSchema
->
bytes
=
htonl
(
pSchema
->
bytes
);
pSchema
->
colId
=
htonl
(
pSchema
->
colId
);
}
return pCreate;
*
pContLen
=
contLen
;
return
pCreate
;
#endif
}
...
...
source/dnode/vnode/impl/CMakeLists.txt
浏览文件 @
60be4f73
...
...
@@ -20,5 +20,5 @@ target_link_libraries(
# test
if
(
${
BUILD_TEST
}
)
add_subdirectory
(
test
)
#
add_subdirectory(test)
endif
(
${
BUILD_TEST
}
)
source/dnode/vnode/impl/src/vnodeWrite.c
浏览文件 @
60be4f73
...
...
@@ -34,7 +34,7 @@ int vnodeProcessWMsgs(SVnode *pVnode, SArray *pMsgs) {
pMsg
=
*
(
SRpcMsg
**
)
taosArrayGet
(
pMsgs
,
i
);
// ser request version
void
*
pBuf
=
pMsg
->
pCont
;
void
*
pBuf
=
POINTER_SHIFT
(
pMsg
->
pCont
,
sizeof
(
SMsgHead
))
;
int64_t
ver
=
pVnode
->
state
.
processed
++
;
taosEncodeFixedU64
(
&
pBuf
,
ver
);
...
...
@@ -51,8 +51,9 @@ int vnodeProcessWMsgs(SVnode *pVnode, SArray *pMsgs) {
}
int
vnodeApplyWMsg
(
SVnode
*
pVnode
,
SRpcMsg
*
pMsg
,
SRpcMsg
**
pRsp
)
{
SVnodeReq
vReq
;
void
*
ptr
=
vnodeMalloc
(
pVnode
,
pMsg
->
contLen
);
SVnodeReq
vReq
;
SVCreateTbReq
vCreateTbReq
;
void
*
ptr
=
vnodeMalloc
(
pVnode
,
pMsg
->
contLen
);
if
(
ptr
==
NULL
)
{
// TODO: handle error
}
...
...
@@ -62,17 +63,15 @@ int vnodeApplyWMsg(SVnode *pVnode, SRpcMsg *pMsg, SRpcMsg **pRsp) {
// todo: change the interface here
uint64_t
ver
;
taosDecodeFixedU64
(
pMsg
->
pCont
,
&
ver
);
taosDecodeFixedU64
(
POINTER_SHIFT
(
pMsg
->
pCont
,
sizeof
(
SMsgHead
))
,
&
ver
);
if
(
tqPushMsg
(
pVnode
->
pTq
,
ptr
,
ver
)
<
0
)
{
// TODO: handle error
}
vnodeParseReq
(
pMsg
->
pCont
,
&
vReq
,
pMsg
->
msgType
);
switch
(
pMsg
->
msgType
)
{
case
TDMT_VND_CREATE_STB
:
case
TDMT_MND_CREATE_TABLE
:
if
(
metaCreateTable
(
pVnode
->
pMeta
,
&
(
v
Req
.
ct
Req
))
<
0
)
{
tDeserializeSVCreateTbReq
(
POINTER_SHIFT
(
pMsg
->
pCont
,
sizeof
(
SMsgHead
)),
&
vCreateTbReq
);
if
(
metaCreateTable
(
pVnode
->
pMeta
,
&
(
v
CreateTb
Req
))
<
0
)
{
// TODO: handle error
}
...
...
@@ -90,6 +89,7 @@ int vnodeApplyWMsg(SVnode *pVnode, SRpcMsg *pMsg, SRpcMsg **pRsp) {
}
break
;
default:
ASSERT
(
0
);
break
;
}
...
...
source/dnode/vnode/meta/inc/metaTbCfg.h
浏览文件 @
60be4f73
...
...
@@ -22,11 +22,11 @@
extern
"C"
{
#endif
#define META_SUPER_TABLE
0
#define META_CHILD_TABLE
1
#define META_NORMAL_TABLE
2
#define META_SUPER_TABLE
TD_SUPER_TABLE
#define META_CHILD_TABLE
TD_CHILD_TABLE
#define META_NORMAL_TABLE
TD_NORMAL_TABLE
int
metaValidateTb
Options
(
SMeta
*
pMeta
,
const
STbCfg
*
);
int
metaValidateTb
Cfg
(
SMeta
*
pMeta
,
const
STbCfg
*
);
size_t
metaEncodeTbObjFromTbOptions
(
const
STbCfg
*
,
void
*
pBuf
,
size_t
bsize
);
#ifdef __cplusplus
...
...
source/dnode/vnode/meta/src/metaBDBImpl.c
浏览文件 @
60be4f73
...
...
@@ -125,11 +125,11 @@ void metaCloseDB(SMeta *pMeta) {
}
int
metaSaveTableToDB
(
SMeta
*
pMeta
,
STbCfg
*
pTbCfg
)
{
tb_uid_t
uid
;
char
buf
[
512
];
void
*
pBuf
;
DBT
key
,
value
;
S
T
Schema
*
pSchema
=
NULL
;
tb_uid_t
uid
;
char
buf
[
512
];
void
*
pBuf
;
DBT
key
,
value
;
SSchema
*
pSchema
=
NULL
;
if
(
pTbCfg
->
type
==
META_SUPER_TABLE
)
{
uid
=
pTbCfg
->
stbCfg
.
suid
;
...
...
@@ -156,9 +156,12 @@ int metaSaveTableToDB(SMeta *pMeta, STbCfg *pTbCfg) {
}
// save schema
uint32_t
ncols
;
if
(
pTbCfg
->
type
==
META_SUPER_TABLE
)
{
ncols
=
pTbCfg
->
stbCfg
.
nCols
;
pSchema
=
pTbCfg
->
stbCfg
.
pSchema
;
}
else
if
(
pTbCfg
->
type
==
META_NORMAL_TABLE
)
{
ncols
=
pTbCfg
->
ntbCfg
.
nCols
;
pSchema
=
pTbCfg
->
ntbCfg
.
pSchema
;
}
...
...
@@ -166,12 +169,18 @@ int metaSaveTableToDB(SMeta *pMeta, STbCfg *pTbCfg) {
pBuf
=
buf
;
memset
(
&
key
,
0
,
sizeof
(
key
));
memset
(
&
value
,
0
,
sizeof
(
key
));
SSchemaKey
schemaKey
=
{
uid
,
schemaVersion
(
pSchema
)
};
SSchemaKey
schemaKey
=
{
uid
,
0
/*TODO*/
};
key
.
data
=
&
schemaKey
;
key
.
size
=
sizeof
(
schemaKey
);
tdEncodeSchema
(
&
pBuf
,
pSchema
);
taosEncodeFixedU32
(
&
pBuf
,
ncols
);
for
(
size_t
i
=
0
;
i
<
ncols
;
i
++
)
{
taosEncodeFixedI8
(
&
pBuf
,
pSchema
[
i
].
type
);
taosEncodeFixedI32
(
&
pBuf
,
pSchema
[
i
].
colId
);
taosEncodeFixedI32
(
&
pBuf
,
pSchema
[
i
].
bytes
);
taosEncodeString
(
&
pBuf
,
pSchema
[
i
].
name
);
}
value
.
data
=
buf
;
value
.
size
=
POINTER_DISTANCE
(
pBuf
,
buf
);
...
...
@@ -367,7 +376,15 @@ static int metaEncodeTbInfo(void **buf, STbCfg *pTbCfg) {
tsize
+=
taosEncodeFixedU8
(
buf
,
pTbCfg
->
type
);
if
(
pTbCfg
->
type
==
META_SUPER_TABLE
)
{
tsize
+=
tdEncodeSchema
(
buf
,
pTbCfg
->
stbCfg
.
pTagSchema
);
tsize
+=
taosEncodeVariantU32
(
buf
,
pTbCfg
->
stbCfg
.
nTagCols
);
for
(
uint32_t
i
=
0
;
i
<
pTbCfg
->
stbCfg
.
nTagCols
;
i
++
)
{
tsize
+=
taosEncodeFixedI8
(
buf
,
pTbCfg
->
stbCfg
.
pSchema
[
i
].
type
);
tsize
+=
taosEncodeFixedI32
(
buf
,
pTbCfg
->
stbCfg
.
pSchema
[
i
].
colId
);
tsize
+=
taosEncodeFixedI32
(
buf
,
pTbCfg
->
stbCfg
.
pSchema
[
i
].
bytes
);
tsize
+=
taosEncodeString
(
buf
,
pTbCfg
->
stbCfg
.
pSchema
[
i
].
name
);
}
// tsize += tdEncodeSchema(buf, pTbCfg->stbCfg.pTagSchema);
}
else
if
(
pTbCfg
->
type
==
META_CHILD_TABLE
)
{
tsize
+=
taosEncodeFixedU64
(
buf
,
pTbCfg
->
ctbCfg
.
suid
);
tsize
+=
tdEncodeKVRow
(
buf
,
pTbCfg
->
ctbCfg
.
pTag
);
...
...
@@ -386,7 +403,14 @@ static void *metaDecodeTbInfo(void *buf, STbCfg *pTbCfg) {
buf
=
taosDecodeFixedU8
(
buf
,
&
(
pTbCfg
->
type
));
if
(
pTbCfg
->
type
==
META_SUPER_TABLE
)
{
buf
=
tdDecodeSchema
(
buf
,
&
(
pTbCfg
->
stbCfg
.
pTagSchema
));
buf
=
taosDecodeVariantU32
(
buf
,
pTbCfg
->
stbCfg
.
nTagCols
);
pTbCfg
->
stbCfg
.
pTagSchema
=
(
SSchema
*
)
malloc
(
sizeof
(
SSchema
)
*
pTbCfg
->
stbCfg
.
nTagCols
);
for
(
uint32_t
i
=
0
;
i
<
pTbCfg
->
stbCfg
.
nTagCols
;
i
++
)
{
buf
=
taosDecodeFixedI8
(
buf
,
&
pTbCfg
->
stbCfg
.
pSchema
[
i
].
type
);
buf
=
taosDecodeFixedI32
(
buf
,
&
pTbCfg
->
stbCfg
.
pSchema
[
i
].
colId
);
buf
=
taosDecodeFixedI32
(
buf
,
&
pTbCfg
->
stbCfg
.
pSchema
[
i
].
bytes
);
buf
=
taosDecodeStringTo
(
buf
,
pTbCfg
->
stbCfg
.
pSchema
[
i
].
name
);
}
}
else
if
(
pTbCfg
->
type
==
META_CHILD_TABLE
)
{
buf
=
taosDecodeFixedU64
(
buf
,
&
(
pTbCfg
->
ctbCfg
.
suid
));
buf
=
tdDecodeKVRow
(
buf
,
&
(
pTbCfg
->
ctbCfg
.
pTag
));
...
...
source/dnode/vnode/meta/src/metaTable.c
浏览文件 @
60be4f73
...
...
@@ -17,7 +17,7 @@
int
metaCreateTable
(
SMeta
*
pMeta
,
STbCfg
*
pTbCfg
)
{
// Validate the tbOptions
if
(
metaValidateTb
Options
(
pMeta
,
pTbCfg
)
<
0
)
{
if
(
metaValidateTb
Cfg
(
pMeta
,
pTbCfg
)
<
0
)
{
// TODO: handle error
return
-
1
;
}
...
...
source/dnode/vnode/meta/src/metaTbCfg.c
浏览文件 @
60be4f73
...
...
@@ -16,7 +16,7 @@
#include "metaDef.h"
#include "tcoding.h"
int
metaValidateTb
Options
(
SMeta
*
pMeta
,
const
STbCfg
*
pTbOptions
)
{
int
metaValidateTb
Cfg
(
SMeta
*
pMeta
,
const
STbCfg
*
pTbOptions
)
{
// TODO
return
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录