Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lzh_me
TDengine
提交
ae67adfd
TDengine
项目概览
lzh_me
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
ae67adfd
编写于
11月 08, 2020
作者:
S
Shengliang Guan
提交者:
GitHub
11月 08, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #4152 from taosdata/feature/table
Feature/table
上级
2e70ac98
32f10468
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
39 addition
and
38 deletion
+39
-38
src/cq/src/cqMain.c
src/cq/src/cqMain.c
+7
-7
src/inc/tcq.h
src/inc/tcq.h
+3
-3
src/inc/twal.h
src/inc/twal.h
+12
-7
src/mnode/src/mnodeSdb.c
src/mnode/src/mnodeSdb.c
+1
-1
src/vnode/inc/vnodeInt.h
src/vnode/inc/vnodeInt.h
+2
-2
src/vnode/src/vnodeCfg.c
src/vnode/src/vnodeCfg.c
+1
-2
src/vnode/src/vnodeMain.c
src/vnode/src/vnodeMain.c
+3
-0
src/vnode/src/vnodeVersion.c
src/vnode/src/vnodeVersion.c
+4
-4
src/wal/src/walMgmt.c
src/wal/src/walMgmt.c
+1
-1
src/wal/src/walWrite.c
src/wal/src/walWrite.c
+5
-6
src/wal/test/waltest.c
src/wal/test/waltest.c
+0
-5
未找到文件。
src/cq/src/cqMain.c
浏览文件 @
ae67adfd
...
...
@@ -39,16 +39,16 @@
#define cTrace(...) { if (cqDebugFlag & DEBUG_TRACE) { taosPrintLog("CQ ", cqDebugFlag, __VA_ARGS__); }}
typedef
struct
{
int
vgId
;
int
32_t
vgId
;
char
user
[
TSDB_USER_LEN
];
char
pass
[
TSDB_PASSWORD_LEN
];
char
db
[
TSDB_DB_NAME_LEN
];
FCqWrite
cqWrite
;
void
*
ahandle
;
int
num
;
// number of continuous streams
int
32_t
num
;
// number of continuous streams
struct
SCqObj
*
pHead
;
void
*
dbConn
;
int
master
;
int
32_t
master
;
void
*
tmrCtrl
;
pthread_mutex_t
mutex
;
}
SCqContext
;
...
...
@@ -57,7 +57,7 @@ typedef struct SCqObj {
tmr_h
tmrId
;
uint64_t
uid
;
int32_t
tid
;
// table ID
int
rowSize
;
// bytes of a row
int
32_t
rowSize
;
// bytes of a row
char
*
sqlStr
;
// SQL string
STSchema
*
pSchema
;
// pointer to schema array
void
*
pStream
;
...
...
@@ -175,7 +175,7 @@ void cqStop(void *handle) {
pthread_mutex_unlock
(
&
pContext
->
mutex
);
}
void
*
cqCreate
(
void
*
handle
,
uint64_t
uid
,
int
tid
,
char
*
sqlStr
,
STSchema
*
pSchema
)
{
void
*
cqCreate
(
void
*
handle
,
uint64_t
uid
,
int
32_t
tid
,
char
*
sqlStr
,
STSchema
*
pSchema
)
{
SCqContext
*
pContext
=
handle
;
SCqObj
*
pObj
=
calloc
(
sizeof
(
SCqObj
),
1
);
...
...
@@ -237,7 +237,7 @@ void cqDrop(void *handle) {
pthread_mutex_unlock
(
&
pContext
->
mutex
);
}
static
void
doCreateStream
(
void
*
param
,
TAOS_RES
*
result
,
int
code
)
{
static
void
doCreateStream
(
void
*
param
,
TAOS_RES
*
result
,
int
32_t
code
)
{
SCqObj
*
pObj
=
(
SCqObj
*
)
param
;
SCqContext
*
pContext
=
pObj
->
pContext
;
SSqlObj
*
pSql
=
(
SSqlObj
*
)
result
;
...
...
@@ -288,7 +288,7 @@ static void cqProcessStreamRes(void *param, TAOS_RES *tres, TAOS_ROW row) {
cDebug
(
"vgId:%d, id:%d CQ:%s stream result is ready"
,
pContext
->
vgId
,
pObj
->
tid
,
pObj
->
sqlStr
);
int
size
=
sizeof
(
SWalHead
)
+
sizeof
(
SSubmitMsg
)
+
sizeof
(
SSubmitBlk
)
+
TD_DATA_ROW_HEAD_SIZE
+
pObj
->
rowSize
;
int
32_t
size
=
sizeof
(
SWalHead
)
+
sizeof
(
SSubmitMsg
)
+
sizeof
(
SSubmitBlk
)
+
TD_DATA_ROW_HEAD_SIZE
+
pObj
->
rowSize
;
char
*
buffer
=
calloc
(
size
,
1
);
SWalHead
*
pHead
=
(
SWalHead
*
)
buffer
;
...
...
src/inc/tcq.h
浏览文件 @
ae67adfd
...
...
@@ -24,7 +24,7 @@ extern "C" {
typedef
int32_t
(
*
FCqWrite
)(
void
*
ahandle
,
void
*
pHead
,
int32_t
qtype
,
void
*
pMsg
);
typedef
struct
{
int
vgId
;
int
32_t
vgId
;
char
user
[
TSDB_USER_LEN
];
char
pass
[
TSDB_PASSWORD_LEN
];
char
db
[
TSDB_DB_NAME_LEN
];
...
...
@@ -42,12 +42,12 @@ void cqStart(void *handle);
void
cqStop
(
void
*
handle
);
// cqCreate is called by TSDB to start an instance of CQ
void
*
cqCreate
(
void
*
handle
,
uint64_t
uid
,
int
sid
,
char
*
sqlStr
,
STSchema
*
pSchema
);
void
*
cqCreate
(
void
*
handle
,
uint64_t
uid
,
int
32_t
sid
,
char
*
sqlStr
,
STSchema
*
pSchema
);
// cqDrop is called by TSDB to stop an instance of CQ, handle is the return value of cqCreate
void
cqDrop
(
void
*
handle
);
extern
int
cqDebugFlag
;
extern
int
32_t
cqDebugFlag
;
#ifdef __cplusplus
...
...
src/inc/twal.h
浏览文件 @
ae67adfd
...
...
@@ -25,9 +25,15 @@ typedef enum {
TAOS_WAL_FSYNC
=
2
}
EWalType
;
typedef
enum
{
TAOS_WAL_NOT_KEEP
=
0
,
TAOS_WAL_KEEP
=
1
}
EWalKeep
;
typedef
struct
{
int8_t
msgType
;
int8_t
reserved
[
3
];
int8_t
sver
;
int8_t
reserved
[
2
];
int32_t
len
;
uint64_t
version
;
uint32_t
signature
;
...
...
@@ -36,11 +42,10 @@ typedef struct {
}
SWalHead
;
typedef
struct
{
int32_t
vgId
;
int32_t
fsyncPeriod
;
// millisecond
int8_t
walLevel
;
// wal level
int8_t
wals
;
// number of WAL files;
int8_t
keep
;
// keep the wal file when closed
int32_t
vgId
;
int32_t
fsyncPeriod
;
// millisecond
EWalType
walLevel
;
// wal level
EWalKeep
keep
;
// keep the wal file when closed
}
SWalCfg
;
typedef
void
*
twalh
;
// WAL HANDLE
...
...
@@ -58,7 +63,7 @@ int32_t walWrite(twalh, SWalHead *);
void
walFsync
(
twalh
,
bool
forceFsync
);
int32_t
walRestore
(
twalh
,
void
*
pVnode
,
FWalWrite
writeFp
);
int32_t
walGetWalFile
(
twalh
,
char
*
fileName
,
int64_t
*
fileId
);
int64_t
walGetVersion
(
twalh
);
u
int64_t
walGetVersion
(
twalh
);
#ifdef __cplusplus
}
...
...
src/mnode/src/mnodeSdb.c
浏览文件 @
ae67adfd
...
...
@@ -175,7 +175,7 @@ static void *sdbGetTableFromId(int32_t tableId) {
}
static
int32_t
sdbInitWal
()
{
SWalCfg
walCfg
=
{.
vgId
=
1
,
.
walLevel
=
2
,
.
wals
=
2
,
.
keep
=
1
,
.
fsyncPeriod
=
0
};
SWalCfg
walCfg
=
{.
vgId
=
1
,
.
walLevel
=
TAOS_WAL_FSYNC
,
.
keep
=
TAOS_WAL_KEEP
,
.
fsyncPeriod
=
0
};
char
temp
[
TSDB_FILENAME_LEN
];
sprintf
(
temp
,
"%s/wal"
,
tsMnodeDir
);
tsSdbObj
.
wal
=
walOpen
(
temp
,
&
walCfg
);
...
...
src/vnode/inc/vnodeInt.h
浏览文件 @
ae67adfd
...
...
@@ -41,8 +41,8 @@ typedef struct {
int8_t
status
;
int8_t
role
;
int8_t
accessState
;
int64_t
version
;
// current version
int64_t
fversion
;
// version on saved data file
uint64_t
version
;
// current version
uint64_t
fversion
;
// version on saved data file
void
*
wqueue
;
void
*
rqueue
;
void
*
wal
;
...
...
src/vnode/src/vnodeCfg.c
浏览文件 @
ae67adfd
...
...
@@ -39,8 +39,7 @@ static void vnodeLoadCfg(SVnodeObj *pVnode, SCreateVnodeMsg* vnodeMsg) {
pVnode
->
tsdbCfg
.
compression
=
vnodeMsg
->
cfg
.
compression
;
pVnode
->
walCfg
.
walLevel
=
vnodeMsg
->
cfg
.
walLevel
;
pVnode
->
walCfg
.
fsyncPeriod
=
vnodeMsg
->
cfg
.
fsyncPeriod
;
pVnode
->
walCfg
.
wals
=
vnodeMsg
->
cfg
.
wals
;
pVnode
->
walCfg
.
keep
=
0
;
pVnode
->
walCfg
.
keep
=
TAOS_WAL_NOT_KEEP
;
pVnode
->
syncCfg
.
replica
=
vnodeMsg
->
cfg
.
replications
;
pVnode
->
syncCfg
.
quorum
=
vnodeMsg
->
cfg
.
quorum
;
...
...
src/vnode/src/vnodeMain.c
浏览文件 @
ae67adfd
...
...
@@ -227,6 +227,7 @@ int32_t vnodeOpen(int32_t vnode, char *rootDir) {
pVnode
->
vgId
=
vnode
;
pVnode
->
status
=
TAOS_VN_STATUS_INIT
;
pVnode
->
fversion
=
0
;
pVnode
->
version
=
0
;
pVnode
->
tsdbCfg
.
tsdbId
=
pVnode
->
vgId
;
pVnode
->
rootDir
=
strdup
(
rootDir
);
...
...
@@ -288,6 +289,7 @@ int32_t vnodeOpen(int32_t vnode, char *rootDir) {
vnodeCleanUp
(
pVnode
);
return
terrno
;
}
else
{
pVnode
->
fversion
=
0
;
pVnode
->
version
=
0
;
}
}
...
...
@@ -302,6 +304,7 @@ int32_t vnodeOpen(int32_t vnode, char *rootDir) {
walRestore
(
pVnode
->
wal
,
pVnode
,
vnodeProcessWrite
);
if
(
pVnode
->
version
==
0
)
{
pVnode
->
fversion
=
0
;
pVnode
->
version
=
walGetVersion
(
pVnode
->
wal
);
}
...
...
src/vnode/src/vnodeVersion.c
浏览文件 @
ae67adfd
...
...
@@ -61,10 +61,10 @@ int32_t vnodeReadVersion(SVnodeObj *pVnode) {
vError
(
"vgId:%d, failed to read %s, version not found"
,
pVnode
->
vgId
,
file
);
goto
PARSE_VER_ERROR
;
}
pVnode
->
version
=
ver
->
valueint
;
pVnode
->
version
=
(
uint64_t
)
ver
->
valueint
;
terrno
=
TSDB_CODE_SUCCESS
;
vInfo
(
"vgId:%d, read %s successfully, version:%"
PRI
d
64
,
pVnode
->
vgId
,
file
,
pVnode
->
version
);
vInfo
(
"vgId:%d, read %s successfully, version:%"
PRI
u
64
,
pVnode
->
vgId
,
file
,
pVnode
->
version
);
PARSE_VER_ERROR:
if
(
content
!=
NULL
)
free
(
content
);
...
...
@@ -89,7 +89,7 @@ int32_t vnodeSaveVersion(SVnodeObj *pVnode) {
char
*
content
=
calloc
(
1
,
maxLen
+
1
);
len
+=
snprintf
(
content
+
len
,
maxLen
-
len
,
"{
\n
"
);
len
+=
snprintf
(
content
+
len
,
maxLen
-
len
,
"
\"
version
\"
: %"
PRI
d
64
"
\n
"
,
pVnode
->
fversion
);
len
+=
snprintf
(
content
+
len
,
maxLen
-
len
,
"
\"
version
\"
: %"
PRI
u
64
"
\n
"
,
pVnode
->
fversion
);
len
+=
snprintf
(
content
+
len
,
maxLen
-
len
,
"}
\n
"
);
fwrite
(
content
,
1
,
len
,
fp
);
...
...
@@ -98,6 +98,6 @@ int32_t vnodeSaveVersion(SVnodeObj *pVnode) {
free
(
content
);
terrno
=
0
;
vInfo
(
"vgId:%d, successed to write %s, version:%"
PRI
d
64
,
pVnode
->
vgId
,
file
,
pVnode
->
fversion
);
vInfo
(
"vgId:%d, successed to write %s, version:%"
PRI
u
64
,
pVnode
->
vgId
,
file
,
pVnode
->
fversion
);
return
TSDB_CODE_SUCCESS
;
}
\ No newline at end of file
src/wal/src/walMgmt.c
浏览文件 @
ae67adfd
...
...
@@ -128,7 +128,7 @@ void walClose(void *handle) {
taosClose
(
pWal
->
fd
);
if
(
!
pWal
->
keep
)
{
if
(
pWal
->
keep
!=
TAOS_WAL_KEEP
)
{
int64_t
fileId
=
-
1
;
while
(
walGetNextFile
(
pWal
,
&
fileId
)
>=
0
)
{
snprintf
(
pWal
->
name
,
sizeof
(
pWal
->
name
),
"%s/%s%"
PRId64
,
pWal
->
path
,
WAL_PREFIX
,
fileId
);
...
...
src/wal/src/walWrite.c
浏览文件 @
ae67adfd
...
...
@@ -41,7 +41,7 @@ int32_t walRenew(void *handle) {
wDebug
(
"vgId:%d, file:%s, it is closed"
,
pWal
->
vgId
,
pWal
->
name
);
}
if
(
pWal
->
keep
)
{
if
(
pWal
->
keep
==
TAOS_WAL_KEEP
)
{
pWal
->
fileId
=
0
;
}
else
{
if
(
walGetNewFile
(
pWal
,
&
pWal
->
fileId
)
!=
0
)
pWal
->
fileId
=
0
;
...
...
@@ -58,7 +58,7 @@ int32_t walRenew(void *handle) {
wDebug
(
"vgId:%d, file:%s, it is created"
,
pWal
->
vgId
,
pWal
->
name
);
}
if
(
!
pWal
->
keep
)
{
if
(
pWal
->
keep
!=
TAOS_WAL_KEEP
)
{
// remove the oldest wal file
int64_t
oldFileId
=
-
1
;
if
(
walGetOldFile
(
pWal
,
pWal
->
fileId
,
WAL_FILE_NUM
,
&
oldFileId
)
==
0
)
{
...
...
@@ -144,12 +144,12 @@ int32_t walRestore(void *handle, void *pVnode, FWalWrite writeFp) {
continue
;
}
wDebug
(
"vgId:%d, file:%s, restore success
and keep it
"
,
pWal
->
vgId
,
walName
);
wDebug
(
"vgId:%d, file:%s, restore success"
,
pWal
->
vgId
,
walName
);
count
++
;
}
if
(
!
pWal
->
keep
)
return
TSDB_CODE_SUCCESS
;
if
(
pWal
->
keep
!=
TAOS_WAL_KEEP
)
return
TSDB_CODE_SUCCESS
;
if
(
count
==
0
)
{
wDebug
(
"vgId:%d, wal file not exist, renew it"
,
pWal
->
vgId
);
...
...
@@ -173,7 +173,6 @@ int32_t walGetWalFile(void *handle, char *fileName, int64_t *fileId) {
if
(
handle
==
NULL
)
return
-
1
;
SWal
*
pWal
=
handle
;
// for keep
if
(
*
fileId
==
0
)
*
fileId
=
-
1
;
pthread_mutex_lock
(
&
(
pWal
->
mutex
));
...
...
@@ -311,7 +310,7 @@ static int32_t walRestoreWalFile(SWal *pWal, void *pVnode, FWalWrite writeFp, ch
return
code
;
}
int64_t
walGetVersion
(
twalh
param
)
{
u
int64_t
walGetVersion
(
twalh
param
)
{
SWal
*
pWal
=
param
;
if
(
pWal
==
0
)
return
0
;
...
...
src/wal/test/waltest.c
浏览文件 @
ae67adfd
...
...
@@ -37,7 +37,6 @@ int writeToQueue(void *pVnode, void *data, int type, void *pMsg) {
int
main
(
int
argc
,
char
*
argv
[])
{
char
path
[
128
]
=
"/home/jhtao/test/wal"
;
int
max
=
3
;
int
level
=
2
;
int
total
=
5
;
int
rows
=
10000
;
...
...
@@ -47,8 +46,6 @@ int main(int argc, char *argv[]) {
for
(
int
i
=
1
;
i
<
argc
;
++
i
)
{
if
(
strcmp
(
argv
[
i
],
"-p"
)
==
0
&&
i
<
argc
-
1
)
{
tstrncpy
(
path
,
argv
[
++
i
],
sizeof
(
path
));
}
else
if
(
strcmp
(
argv
[
i
],
"-m"
)
==
0
&&
i
<
argc
-
1
)
{
max
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-l"
)
==
0
&&
i
<
argc
-
1
)
{
level
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-r"
)
==
0
&&
i
<
argc
-
1
)
{
...
...
@@ -66,7 +63,6 @@ int main(int argc, char *argv[]) {
}
else
{
printf
(
"
\n
usage: %s [options]
\n
"
,
argv
[
0
]);
printf
(
" [-p path]: wal file path default is:%s
\n
"
,
path
);
printf
(
" [-m max]: max wal files, default is:%d
\n
"
,
max
);
printf
(
" [-l level]: log level, default is:%d
\n
"
,
level
);
printf
(
" [-t total]: total wal files, default is:%d
\n
"
,
total
);
printf
(
" [-r rows]: rows of records per wal file, default is:%d
\n
"
,
rows
);
...
...
@@ -82,7 +78,6 @@ int main(int argc, char *argv[]) {
SWalCfg
walCfg
;
walCfg
.
walLevel
=
level
;
walCfg
.
wals
=
max
;
walCfg
.
keep
=
keep
;
pWal
=
walOpen
(
path
,
&
walCfg
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录