Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
f469521f
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f469521f
编写于
12月 31, 2021
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
test for create table
上级
89a0dd76
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
77 addition
and
65 deletion
+77
-65
tests/test/c/create_table.c
tests/test/c/create_table.c
+77
-65
未找到文件。
tests/test/c/create_table.c
浏览文件 @
f469521f
...
...
@@ -28,34 +28,34 @@
#define NC "\033[0m"
char
dbName
[
32
]
=
"db"
;
char
stableName
[
64
]
=
"st"
;
int32_t
numOfThreads
=
30
;
int32_t
numOfTables
=
100000
;
int32_t
replica
=
1
;
int32_t
numOfColumns
=
2
;
char
stbName
[
64
]
=
"st"
;
int32_t
numOfThreads
=
2
;
int32_t
numOfTables
=
100
;
int32_t
createTable
=
1
;
int32_t
insertData
=
0
;
int32_t
batchNum
=
1
;
int32_t
numOfVgroups
=
2
;
typedef
struct
{
int32_t
tableBeginIndex
;
int32_t
tableEndIndex
;
int32_t
threadIndex
;
char
dbName
[
32
];
char
st
able
Name
[
64
];
char
st
b
Name
[
64
];
float
createTableSpeed
;
float
insertDataSpeed
;
pthread_t
thread
;
}
SThreadInfo
;
void
shellP
arseArgument
(
int
argc
,
char
*
argv
[]);
void
p
arseArgument
(
int
argc
,
char
*
argv
[]);
void
*
threadFunc
(
void
*
param
);
void
createDbAndS
Table
();
void
createDbAndS
tb
();
int
main
(
int
argc
,
char
*
argv
[])
{
shellParseArgument
(
argc
,
argv
);
taos_init
();
if
(
replica
!=
0
)
{
createDbAndSTable
();
}
parseArgument
(
argc
,
argv
);
createDbAndStb
();
pPrint
(
"%d threads are spawned to create
table"
,
numOfThreads
);
pPrint
(
"%d threads are spawned to create
%d tables"
,
numOfThreads
,
numOfThreads
);
pthread_attr_t
thattr
;
pthread_attr_init
(
&
thattr
);
...
...
@@ -69,7 +69,7 @@ int main(int argc, char *argv[]) {
pInfo
[
i
].
tableEndIndex
=
(
i
+
1
)
*
numOfTablesPerThread
;
pInfo
[
i
].
threadIndex
=
i
;
strcpy
(
pInfo
[
i
].
dbName
,
dbName
);
strcpy
(
pInfo
[
i
].
st
ableName
,
stable
Name
);
strcpy
(
pInfo
[
i
].
st
bName
,
stb
Name
);
pthread_create
(
&
(
pInfo
[
i
].
thread
),
&
thattr
,
threadFunc
,
(
void
*
)(
pInfo
+
i
));
}
...
...
@@ -83,13 +83,19 @@ int main(int argc, char *argv[]) {
createTableSpeed
+=
pInfo
[
i
].
createTableSpeed
;
}
pPrint
(
"%s total speed:%.1f tables/second, threads:%d %s"
,
GREEN
,
createTableSpeed
,
numOfThreads
,
NC
);
float
insertDataSpeed
=
0
;
for
(
int
i
=
0
;
i
<
numOfThreads
;
++
i
)
{
insertDataSpeed
+=
pInfo
[
i
].
insertDataSpeed
;
}
pPrint
(
"%s total %.1f tables/second, threads:%d %s"
,
GREEN
,
createTableSpeed
,
numOfThreads
,
NC
);
pPrint
(
"%s total %.1f rows/second, threads:%d %s"
,
GREEN
,
insertDataSpeed
,
numOfThreads
,
NC
);
pthread_attr_destroy
(
&
thattr
);
free
(
pInfo
);
}
void
createDbAndS
Table
()
{
void
createDbAndS
tb
()
{
pPrint
(
"start to create db and stable"
);
char
qstr
[
64000
];
...
...
@@ -99,7 +105,7 @@ void createDbAndSTable() {
exit
(
1
);
}
sprintf
(
qstr
,
"create database if not exists %s
replica %d"
,
dbName
,
replica
);
sprintf
(
qstr
,
"create database if not exists %s
vgroups %d"
,
dbName
,
numOfVgroups
);
TAOS_RES
*
pSql
=
taos_query
(
con
,
qstr
);
int32_t
code
=
taos_errno
(
pSql
);
if
(
code
!=
0
)
{
...
...
@@ -135,49 +141,45 @@ void *threadFunc(void *param) {
TAOS_RES
*
pSql
=
taos_query
(
con
,
qstr
);
taos_free_result
(
pSql
);
if
(
createTable
)
{
int64_t
startMs
=
taosGetTimestampMs
();
if
(
replica
!=
0
)
{
for
(
int32_t
t
=
pInfo
->
tableBeginIndex
;
t
<
pInfo
->
tableEndIndex
;
++
t
)
{
sprintf
(
qstr
,
"create table %s%d (ts timestamp, i int)"
,
st
able
Name
,
t
);
sprintf
(
qstr
,
"create table %s%d (ts timestamp, i int)"
,
st
b
Name
,
t
);
TAOS_RES
*
pSql
=
taos_query
(
con
,
qstr
);
code
=
taos_errno
(
pSql
);
if
(
code
!=
0
)
{
pError
(
"failed to create table %s%d, reason:%s"
,
st
able
Name
,
t
,
tstrerror
(
code
));
pError
(
"failed to create table %s%d, reason:%s"
,
st
b
Name
,
t
,
tstrerror
(
code
));
}
taos_free_result
(
pSql
);
}
}
else
{
int64_t
endMs
=
taosGetTimestampMs
();
int32_t
totalTables
=
pInfo
->
tableEndIndex
-
pInfo
->
tableBeginIndex
;
float
seconds
=
(
endMs
-
startMs
)
/
1000
.
0
;
float
speed
=
totalTables
/
seconds
;
pInfo
->
createTableSpeed
=
speed
;
pPrint
(
"thread:%d, time:%.2f sec, speed:%.1f tables/second, "
,
pInfo
->
threadIndex
,
seconds
,
speed
);
}
if
(
insertData
)
{
int64_t
startMs
=
taosGetTimestampMs
();
for
(
int32_t
t
=
pInfo
->
tableBeginIndex
;
t
<
pInfo
->
tableEndIndex
;
++
t
)
{
sprintf
(
qstr
,
"insert into %s%d values(now, 1)"
,
st
able
Name
,
t
);
sprintf
(
qstr
,
"insert into %s%d values(now, 1)"
,
st
b
Name
,
t
);
TAOS_RES
*
pSql
=
taos_query
(
con
,
qstr
);
code
=
taos_errno
(
pSql
);
if
(
code
!=
0
)
{
if
(
code
!=
TSDB_CODE_MND_INVALID_TABLE_NAME
)
{
pError
(
"failed to create table %s%d, reason:%s"
,
stableName
,
t
,
tstrerror
(
code
));
}
if
(
code
==
TSDB_CODE_VND_INVALID_VGROUP_ID
)
{
exit
(
0
);
}
pError
(
"failed to create table %s%d, reason:%s"
,
stbName
,
t
,
tstrerror
(
code
));
}
taos_free_result
(
pSql
);
}
}
float
createTableSpeed
=
0
;
for
(
int
i
=
0
;
i
<
numOfThreads
;
++
i
)
{
createTableSpeed
+=
pInfo
[
i
].
createTableSpeed
;
}
int64_t
endMs
=
taosGetTimestampMs
();
int32_t
totalTables
=
pInfo
->
tableEndIndex
-
pInfo
->
tableBeginIndex
;
float
seconds
=
(
endMs
-
startMs
)
/
1000
.
0
;
float
speed
=
totalTables
/
seconds
;
pInfo
->
createTableSpeed
=
speed
;
pInfo
->
insertDataSpeed
=
speed
;
pPrint
(
"thread:%d, time:%.2f sec, speed:%.1f rows/second, "
,
pInfo
->
threadIndex
,
seconds
,
speed
);
}
pPrint
(
"thread:%d, time:%.2f sec, speed:%.1f tables/second, "
,
pInfo
->
threadIndex
,
seconds
,
speed
);
taos_close
(
con
);
return
0
;
}
...
...
@@ -190,20 +192,24 @@ void printHelp() {
printf
(
"%s%s
\n
"
,
indent
,
"-d"
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
indent
,
"The name of the database to be created, default is "
,
dbName
);
printf
(
"%s%s
\n
"
,
indent
,
"-s"
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
indent
,
"The name of the super table to be created, default is "
,
st
able
Name
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
indent
,
"The name of the super table to be created, default is "
,
st
b
Name
);
printf
(
"%s%s
\n
"
,
indent
,
"-t"
);
printf
(
"%s%s%s%d
\n
"
,
indent
,
indent
,
"numOfThreads, default is "
,
numOfThreads
);
printf
(
"%s%s
\n
"
,
indent
,
"-n"
);
printf
(
"%s%s%s%d
\n
"
,
indent
,
indent
,
"numOfTables, default is "
,
numOfTables
);
printf
(
"%s%s
\n
"
,
indent
,
"-r"
);
printf
(
"%s%s%s%d
\n
"
,
indent
,
indent
,
"replica, default is "
,
replica
);
printf
(
"%s%s
\n
"
,
indent
,
"-columns"
);
printf
(
"%s%s%s%d
\n
"
,
indent
,
indent
,
"numOfColumns, default is "
,
numOfColumns
);
printf
(
"%s%s
\n
"
,
indent
,
"-v"
);
printf
(
"%s%s%s%d
\n
"
,
indent
,
indent
,
"numOfVgroups, default is "
,
numOfVgroups
);
printf
(
"%s%s
\n
"
,
indent
,
"-a"
);
printf
(
"%s%s%s%d
\n
"
,
indent
,
indent
,
"createTable, default is "
,
createTable
);
printf
(
"%s%s
\n
"
,
indent
,
"-i"
);
printf
(
"%s%s%s%d
\n
"
,
indent
,
indent
,
"insertData, default is "
,
insertData
);
printf
(
"%s%s
\n
"
,
indent
,
"-b"
);
printf
(
"%s%s%s%d
\n
"
,
indent
,
indent
,
"batchNum, default is "
,
batchNum
);
exit
(
EXIT_SUCCESS
);
}
void
shellP
arseArgument
(
int
argc
,
char
*
argv
[])
{
void
p
arseArgument
(
int
argc
,
char
*
argv
[])
{
for
(
int
i
=
1
;
i
<
argc
;
i
++
)
{
if
(
strcmp
(
argv
[
i
],
"-h"
)
==
0
||
strcmp
(
argv
[
i
],
"--help"
)
==
0
)
{
printHelp
();
...
...
@@ -213,26 +219,32 @@ void shellParseArgument(int argc, char *argv[]) {
}
else
if
(
strcmp
(
argv
[
i
],
"-c"
)
==
0
)
{
strcpy
(
configDir
,
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-s"
)
==
0
)
{
strcpy
(
st
able
Name
,
argv
[
++
i
]);
strcpy
(
st
b
Name
,
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-t"
)
==
0
)
{
numOfThreads
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-n"
)
==
0
)
{
numOfTables
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-r"
)
==
0
)
{
replica
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-columns"
)
==
0
)
{
numOfColumns
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-n"
)
==
0
)
{
numOfVgroups
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-a"
)
==
0
)
{
createTable
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-i"
)
==
0
)
{
insertData
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-b"
)
==
0
)
{
batchNum
=
atoi
(
argv
[
++
i
]);
}
else
{
}
}
pPrint
(
"%s dbName:%s %s"
,
GREEN
,
dbName
,
NC
);
pPrint
(
"%s st
ableName:%s %s"
,
GREEN
,
stable
Name
,
NC
);
pPrint
(
"%s st
bName:%s %s"
,
GREEN
,
stb
Name
,
NC
);
pPrint
(
"%s configDir:%s %s"
,
GREEN
,
configDir
,
NC
);
pPrint
(
"%s numOfTables:%d %s"
,
GREEN
,
numOfTables
,
NC
);
pPrint
(
"%s numOfThreads:%d %s"
,
GREEN
,
numOfThreads
,
NC
);
pPrint
(
"%s numOfColumns:%d %s"
,
GREEN
,
numOfColumns
,
NC
);
pPrint
(
"%s replica:%d %s"
,
GREEN
,
replica
,
NC
);
pPrint
(
"%s numOfVgroups:%d %s"
,
GREEN
,
numOfVgroups
,
NC
);
pPrint
(
"%s createTable:%d %s"
,
GREEN
,
createTable
,
NC
);
pPrint
(
"%s insertData:%d %s"
,
GREEN
,
insertData
,
NC
);
pPrint
(
"%s batchNum:%d %s"
,
GREEN
,
batchNum
,
NC
);
pPrint
(
"%s start create table performace test %s"
,
GREEN
,
NC
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录