Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
067e32d3
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
067e32d3
编写于
7月 13, 2020
作者:
陶建辉(Jeff)
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' into hotfix/wal
上级
c6dfcd2d
2436c9ff
变更
56
隐藏空白更改
内联
并排
Showing
56 changed file
with
2563 addition
and
175 deletion
+2563
-175
packaging/cfg/taos.cfg
packaging/cfg/taos.cfg
+5
-8
src/common/inc/tglobal.h
src/common/inc/tglobal.h
+2
-0
src/common/src/tglobal.c
src/common/src/tglobal.c
+24
-11
src/dnode/src/dnodePeer.c
src/dnode/src/dnodePeer.c
+2
-2
src/dnode/src/dnodeSystem.c
src/dnode/src/dnodeSystem.c
+7
-1
src/dnode/src/dnodeVWrite.c
src/dnode/src/dnodeVWrite.c
+2
-1
src/inc/taosdef.h
src/inc/taosdef.h
+5
-5
src/inc/taoserror.h
src/inc/taoserror.h
+2
-0
src/mnode/inc/mnodeSdb.h
src/mnode/inc/mnodeSdb.h
+1
-0
src/mnode/src/mnodeSdb.c
src/mnode/src/mnodeSdb.c
+8
-0
src/mnode/src/mnodeTable.c
src/mnode/src/mnodeTable.c
+30
-12
src/mnode/src/mnodeVgroup.c
src/mnode/src/mnodeVgroup.c
+7
-3
src/plugins/http/inc/httpCode.h
src/plugins/http/inc/httpCode.h
+1
-1
src/plugins/http/inc/httpInt.h
src/plugins/http/inc/httpInt.h
+3
-0
src/plugins/http/inc/httpServer.h
src/plugins/http/inc/httpServer.h
+1
-1
src/plugins/http/src/httpHandle.c
src/plugins/http/src/httpHandle.c
+7
-14
src/plugins/http/src/httpServer.c
src/plugins/http/src/httpServer.c
+12
-9
src/query/inc/qUtil.h
src/query/inc/qUtil.h
+1
-1
src/query/src/qExecutor.c
src/query/src/qExecutor.c
+70
-27
src/query/src/qUtil.c
src/query/src/qUtil.c
+12
-4
src/query/src/qast.c
src/query/src/qast.c
+4
-2
src/tsdb/src/tsdbMeta.c
src/tsdb/src/tsdbMeta.c
+34
-7
src/tsdb/src/tsdbRead.c
src/tsdb/src/tsdbRead.c
+2
-1
src/util/inc/exception.h
src/util/inc/exception.h
+2
-1
src/util/inc/tfile.h
src/util/inc/tfile.h
+7
-6
src/util/src/exception.c
src/util/src/exception.c
+3
-0
src/util/src/tfile.c
src/util/src/tfile.c
+44
-3
src/vnode/src/vnodeMain.c
src/vnode/src/vnodeMain.c
+1
-1
src/vnode/src/vnodeRead.c
src/vnode/src/vnodeRead.c
+1
-1
src/vnode/src/vnodeWrite.c
src/vnode/src/vnodeWrite.c
+2
-0
tests/CMakeLists.txt
tests/CMakeLists.txt
+1
-0
tests/comparisonTest/tdengine/CMakeLists.txt
tests/comparisonTest/tdengine/CMakeLists.txt
+12
-0
tests/comparisonTest/tdengine/tdengineTest.c
tests/comparisonTest/tdengine/tdengineTest.c
+28
-21
tests/pytest/util/dnodes.py
tests/pytest/util/dnodes.py
+3
-1
tests/script/sh/deploy.sh
tests/script/sh/deploy.sh
+3
-1
tests/script/tmp/prepare.sim
tests/script/tmp/prepare.sim
+9
-4
tests/script/unique/cluster/client3.sim
tests/script/unique/cluster/client3.sim
+55
-0
tests/script/unique/cluster/client4.sim
tests/script/unique/cluster/client4.sim
+113
-0
tests/script/unique/cluster/client5.sim
tests/script/unique/cluster/client5.sim
+113
-0
tests/script/unique/cluster/cluster_main.sim
tests/script/unique/cluster/cluster_main.sim
+44
-26
tests/script/unique/cluster/cluster_main0.sim
tests/script/unique/cluster/cluster_main0.sim
+288
-0
tests/script/unique/cluster/cluster_main1.sim
tests/script/unique/cluster/cluster_main1.sim
+329
-0
tests/script/unique/cluster/cluster_main2.sim
tests/script/unique/cluster/cluster_main2.sim
+333
-0
tests/script/unique/cluster/main1_client1_0.sim
tests/script/unique/cluster/main1_client1_0.sim
+94
-0
tests/script/unique/cluster/main1_client1_1.sim
tests/script/unique/cluster/main1_client1_1.sim
+82
-0
tests/script/unique/cluster/main1_client1_2.sim
tests/script/unique/cluster/main1_client1_2.sim
+81
-0
tests/script/unique/cluster/main1_client1_3.sim
tests/script/unique/cluster/main1_client1_3.sim
+81
-0
tests/script/unique/cluster/main1_client4.sim
tests/script/unique/cluster/main1_client4.sim
+127
-0
tests/script/unique/cluster/main2_client1_0.sim
tests/script/unique/cluster/main2_client1_0.sim
+69
-0
tests/script/unique/cluster/main2_client1_1.sim
tests/script/unique/cluster/main2_client1_1.sim
+57
-0
tests/script/unique/cluster/main2_client1_2.sim
tests/script/unique/cluster/main2_client1_2.sim
+56
-0
tests/script/unique/cluster/main2_client1_3.sim
tests/script/unique/cluster/main2_client1_3.sim
+56
-0
tests/script/unique/cluster/main2_client2_0.sim
tests/script/unique/cluster/main2_client2_0.sim
+56
-0
tests/script/unique/cluster/main2_client2_1.sim
tests/script/unique/cluster/main2_client2_1.sim
+57
-0
tests/script/unique/cluster/main2_client2_2.sim
tests/script/unique/cluster/main2_client2_2.sim
+57
-0
tests/script/unique/cluster/main2_client2_3.sim
tests/script/unique/cluster/main2_client2_3.sim
+57
-0
未找到文件。
packaging/cfg/taos.cfg
浏览文件 @
067e32d3
...
@@ -51,18 +51,15 @@
...
@@ -51,18 +51,15 @@
# number of threads per CPU core
# number of threads per CPU core
# numOfThreadsPerCore 1.0
# numOfThreadsPerCore 1.0
# number of vnodes per core in DNode
# number of vgroups per db
# numOfVnodesPerCore 8
# maxVgroupsPerDb 0
# max number of tables per vnode
# maxTablesPerVnode 1000000
# the ratio of threads responsible for querying in the total thread
# the ratio of threads responsible for querying in the total thread
# ratioOfQueryThreads 0.5
# ratioOfQueryThreads 0.5
# number of total vnodes in DNode
# numOfTotalVnodes 0
# max number of tables per vnode
# maxtablesPerVnode 1000
# interval of check load balance when the management node is in normal operation
# interval of check load balance when the management node is in normal operation
# balanceInterval 300
# balanceInterval 300
...
...
src/common/inc/tglobal.h
浏览文件 @
067e32d3
...
@@ -68,7 +68,9 @@ extern int64_t tsMaxRetentWindow;
...
@@ -68,7 +68,9 @@ extern int64_t tsMaxRetentWindow;
// db parameters in client
// db parameters in client
extern
int32_t
tsCacheBlockSize
;
extern
int32_t
tsCacheBlockSize
;
extern
int32_t
tsBlocksPerVnode
;
extern
int32_t
tsBlocksPerVnode
;
extern
int32_t
tsMinTablePerVnode
;
extern
int32_t
tsMaxTablePerVnode
;
extern
int32_t
tsMaxTablePerVnode
;
extern
int32_t
tsTableIncStepPerVnode
;
extern
int32_t
tsMaxVgroupsPerDb
;
extern
int32_t
tsMaxVgroupsPerDb
;
extern
int16_t
tsDaysPerFile
;
extern
int16_t
tsDaysPerFile
;
extern
int32_t
tsDaysToKeep
;
extern
int32_t
tsDaysToKeep
;
...
...
src/common/src/tglobal.c
浏览文件 @
067e32d3
...
@@ -38,7 +38,7 @@ uint16_t tsDnodeShellPort = 6030; // udp[6035-6039] tcp[6035]
...
@@ -38,7 +38,7 @@ uint16_t tsDnodeShellPort = 6030; // udp[6035-6039] tcp[6035]
uint16_t
tsDnodeDnodePort
=
6035
;
// udp/tcp
uint16_t
tsDnodeDnodePort
=
6035
;
// udp/tcp
uint16_t
tsSyncPort
=
6040
;
uint16_t
tsSyncPort
=
6040
;
int32_t
tsStatusInterval
=
1
;
// second
int32_t
tsStatusInterval
=
1
;
// second
int16_t
tsNumOfVnodesPerCore
=
8
;
int16_t
tsNumOfVnodesPerCore
=
32
;
int16_t
tsNumOfTotalVnodes
=
TSDB_INVALID_VNODE_NUM
;
int16_t
tsNumOfTotalVnodes
=
TSDB_INVALID_VNODE_NUM
;
int32_t
tsNumOfMnodes
=
3
;
int32_t
tsNumOfMnodes
=
3
;
int32_t
tsEnableVnodeBak
=
1
;
int32_t
tsEnableVnodeBak
=
1
;
...
@@ -113,7 +113,10 @@ int16_t tsWAL = TSDB_DEFAULT_WAL_LEVEL;
...
@@ -113,7 +113,10 @@ int16_t tsWAL = TSDB_DEFAULT_WAL_LEVEL;
int32_t
tsFsyncPeriod
=
TSDB_DEFAULT_FSYNC_PERIOD
;
int32_t
tsFsyncPeriod
=
TSDB_DEFAULT_FSYNC_PERIOD
;
int32_t
tsReplications
=
TSDB_DEFAULT_DB_REPLICA_OPTION
;
int32_t
tsReplications
=
TSDB_DEFAULT_DB_REPLICA_OPTION
;
int32_t
tsMaxVgroupsPerDb
=
0
;
int32_t
tsMaxVgroupsPerDb
=
0
;
int32_t
tsMinTablePerVnode
=
100
;
int32_t
tsMaxTablePerVnode
=
TSDB_DEFAULT_TABLES
;
int32_t
tsMaxTablePerVnode
=
TSDB_DEFAULT_TABLES
;
int32_t
tsTableIncStepPerVnode
=
TSDB_TABLES_STEP
;
// balance
// balance
int32_t
tsEnableBalance
=
1
;
int32_t
tsEnableBalance
=
1
;
int32_t
tsAlternativeRole
=
0
;
int32_t
tsAlternativeRole
=
0
;
...
@@ -390,16 +393,6 @@ static void doInitGlobalConfig() {
...
@@ -390,16 +393,6 @@ static void doInitGlobalConfig() {
cfg
.
unitType
=
TAOS_CFG_UTYPE_NONE
;
cfg
.
unitType
=
TAOS_CFG_UTYPE_NONE
;
taosInitConfigOption
(
cfg
);
taosInitConfigOption
(
cfg
);
cfg
.
option
=
"numOfVnodesPerCore"
;
cfg
.
ptr
=
&
tsNumOfVnodesPerCore
;
cfg
.
valType
=
TAOS_CFG_VTYPE_INT16
;
cfg
.
cfgType
=
TSDB_CFG_CTYPE_B_CONFIG
|
TSDB_CFG_CTYPE_B_SHOW
;
cfg
.
minValue
=
1
;
cfg
.
maxValue
=
64
;
cfg
.
ptrLength
=
0
;
cfg
.
unitType
=
TAOS_CFG_UTYPE_NONE
;
taosInitConfigOption
(
cfg
);
cfg
.
option
=
"numOfTotalVnodes"
;
cfg
.
option
=
"numOfTotalVnodes"
;
cfg
.
ptr
=
&
tsNumOfTotalVnodes
;
cfg
.
ptr
=
&
tsNumOfTotalVnodes
;
cfg
.
valType
=
TAOS_CFG_VTYPE_INT16
;
cfg
.
valType
=
TAOS_CFG_VTYPE_INT16
;
...
@@ -623,6 +616,26 @@ static void doInitGlobalConfig() {
...
@@ -623,6 +616,26 @@ static void doInitGlobalConfig() {
cfg
.
unitType
=
TAOS_CFG_UTYPE_NONE
;
cfg
.
unitType
=
TAOS_CFG_UTYPE_NONE
;
taosInitConfigOption
(
cfg
);
taosInitConfigOption
(
cfg
);
cfg
.
option
=
"minTablesPerVnode"
;
cfg
.
ptr
=
&
tsMinTablePerVnode
;
cfg
.
valType
=
TAOS_CFG_VTYPE_INT32
;
cfg
.
cfgType
=
TSDB_CFG_CTYPE_B_CONFIG
|
TSDB_CFG_CTYPE_B_SHOW
;
cfg
.
minValue
=
TSDB_MIN_TABLES
;
cfg
.
maxValue
=
TSDB_MAX_TABLES
;
cfg
.
ptrLength
=
0
;
cfg
.
unitType
=
TAOS_CFG_UTYPE_NONE
;
taosInitConfigOption
(
cfg
);
cfg
.
option
=
"tableIncStepPerVnode"
;
cfg
.
ptr
=
&
tsTableIncStepPerVnode
;
cfg
.
valType
=
TAOS_CFG_VTYPE_INT32
;
cfg
.
cfgType
=
TSDB_CFG_CTYPE_B_CONFIG
|
TSDB_CFG_CTYPE_B_SHOW
;
cfg
.
minValue
=
TSDB_MIN_TABLES
;
cfg
.
maxValue
=
TSDB_MAX_TABLES
;
cfg
.
ptrLength
=
0
;
cfg
.
unitType
=
TAOS_CFG_UTYPE_NONE
;
taosInitConfigOption
(
cfg
);
cfg
.
option
=
"cache"
;
cfg
.
option
=
"cache"
;
cfg
.
ptr
=
&
tsCacheBlockSize
;
cfg
.
ptr
=
&
tsCacheBlockSize
;
cfg
.
valType
=
TAOS_CFG_VTYPE_INT32
;
cfg
.
valType
=
TAOS_CFG_VTYPE_INT32
;
...
...
src/dnode/src/dnodePeer.c
浏览文件 @
067e32d3
...
@@ -60,7 +60,7 @@ int32_t dnodeInitServer() {
...
@@ -60,7 +60,7 @@ int32_t dnodeInitServer() {
rpcInit
.
label
=
"DND-S"
;
rpcInit
.
label
=
"DND-S"
;
rpcInit
.
numOfThreads
=
1
;
rpcInit
.
numOfThreads
=
1
;
rpcInit
.
cfp
=
dnodeProcessReqMsgFromDnode
;
rpcInit
.
cfp
=
dnodeProcessReqMsgFromDnode
;
rpcInit
.
sessions
=
100
;
rpcInit
.
sessions
=
TSDB_MAX_VNODES
;
rpcInit
.
connType
=
TAOS_CONN_SERVER
;
rpcInit
.
connType
=
TAOS_CONN_SERVER
;
rpcInit
.
idleTime
=
tsShellActivityTimer
*
1000
;
rpcInit
.
idleTime
=
tsShellActivityTimer
*
1000
;
...
@@ -122,7 +122,7 @@ int32_t dnodeInitClient() {
...
@@ -122,7 +122,7 @@ int32_t dnodeInitClient() {
rpcInit
.
label
=
"DND-C"
;
rpcInit
.
label
=
"DND-C"
;
rpcInit
.
numOfThreads
=
1
;
rpcInit
.
numOfThreads
=
1
;
rpcInit
.
cfp
=
dnodeProcessRspFromDnode
;
rpcInit
.
cfp
=
dnodeProcessRspFromDnode
;
rpcInit
.
sessions
=
100
;
rpcInit
.
sessions
=
TSDB_MAX_VNODES
;
rpcInit
.
connType
=
TAOS_CONN_CLIENT
;
rpcInit
.
connType
=
TAOS_CONN_CLIENT
;
rpcInit
.
idleTime
=
tsShellActivityTimer
*
1000
;
rpcInit
.
idleTime
=
tsShellActivityTimer
*
1000
;
rpcInit
.
user
=
"t"
;
rpcInit
.
user
=
"t"
;
...
...
src/dnode/src/dnodeSystem.c
浏览文件 @
067e32d3
...
@@ -70,7 +70,13 @@ int32_t main(int32_t argc, char *argv[]) {
...
@@ -70,7 +70,13 @@ int32_t main(int32_t argc, char *argv[]) {
}
}
#endif
#endif
#ifdef TAOS_RANDOM_FILE_FAIL
#ifdef TAOS_RANDOM_FILE_FAIL
else
if
(
strcmp
(
argv
[
i
],
"--random-file-fail-factor"
)
==
0
)
{
else
if
(
strcmp
(
argv
[
i
],
"--random-file-fail-output"
)
==
0
)
{
if
((
i
<
argc
-
1
)
&&
(
argv
[
i
+
1
][
0
]
!=
'-'
))
{
taosSetRandomFileFailOutput
(
argv
[
++
i
]);
}
else
{
taosSetRandomFileFailOutput
(
NULL
);
}
}
else
if
(
strcmp
(
argv
[
i
],
"--random-file-fail-factor"
)
==
0
)
{
if
(
(
i
+
1
)
<
argc
)
{
if
(
(
i
+
1
)
<
argc
)
{
int
factor
=
atoi
(
argv
[
i
+
1
]);
int
factor
=
atoi
(
argv
[
i
+
1
]);
printf
(
"The factor of random failure is %d
\n
"
,
factor
);
printf
(
"The factor of random failure is %d
\n
"
,
factor
);
...
...
src/dnode/src/dnodeVWrite.c
浏览文件 @
067e32d3
...
@@ -232,9 +232,10 @@ static void *dnodeProcessWriteQueue(void *param) {
...
@@ -232,9 +232,10 @@ static void *dnodeProcessWriteQueue(void *param) {
pHead
->
msgType
=
pWrite
->
rpcMsg
.
msgType
;
pHead
->
msgType
=
pWrite
->
rpcMsg
.
msgType
;
pHead
->
version
=
0
;
pHead
->
version
=
0
;
pHead
->
len
=
pWrite
->
contLen
;
pHead
->
len
=
pWrite
->
contLen
;
dDebug
(
"%p, msg:%s will be processed in vwrite queue"
,
pWrite
->
rpcMsg
.
ahandle
,
taosMsg
[
pWrite
->
rpcMsg
.
msgType
]);
dDebug
(
"%p,
rpc
msg:%s will be processed in vwrite queue"
,
pWrite
->
rpcMsg
.
ahandle
,
taosMsg
[
pWrite
->
rpcMsg
.
msgType
]);
}
else
{
}
else
{
pHead
=
(
SWalHead
*
)
item
;
pHead
=
(
SWalHead
*
)
item
;
dTrace
(
"%p, wal msg:%s will be processed in vwrite queue, version:%"
PRIu64
,
pHead
,
taosMsg
[
pHead
->
msgType
],
pHead
->
version
);
}
}
int32_t
code
=
vnodeProcessWrite
(
pVnode
,
type
,
pHead
,
pRspRet
);
int32_t
code
=
vnodeProcessWrite
(
pVnode
,
type
,
pHead
,
pRspRet
);
...
...
src/inc/taosdef.h
浏览文件 @
067e32d3
...
@@ -274,8 +274,8 @@ void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size);
...
@@ -274,8 +274,8 @@ void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size);
#define TSDB_DEFAULT_PAYLOAD_SIZE 5120 // default payload size, greater than PATH_MAX value
#define TSDB_DEFAULT_PAYLOAD_SIZE 5120 // default payload size, greater than PATH_MAX value
#define TSDB_EXTRA_PAYLOAD_SIZE 128 // extra bytes for auth
#define TSDB_EXTRA_PAYLOAD_SIZE 128 // extra bytes for auth
#define TSDB_CQ_SQL_SIZE 1024
#define TSDB_CQ_SQL_SIZE 1024
#define TSDB_MAX_VNODES 2
56
#define TSDB_MAX_VNODES 2
048
#define TSDB_MIN_VNODES
50
#define TSDB_MIN_VNODES
256
#define TSDB_INVALID_VNODE_NUM 0
#define TSDB_INVALID_VNODE_NUM 0
#define TSDB_DNODE_ROLE_ANY 0
#define TSDB_DNODE_ROLE_ANY 0
...
@@ -296,9 +296,9 @@ void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size);
...
@@ -296,9 +296,9 @@ void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size);
#define TSDB_DEFAULT_TOTAL_BLOCKS 4
#define TSDB_DEFAULT_TOTAL_BLOCKS 4
#define TSDB_MIN_TABLES 4
#define TSDB_MIN_TABLES 4
#define TSDB_MAX_TABLES
5
000000
#define TSDB_MAX_TABLES
10
000000
#define TSDB_DEFAULT_TABLES
2
00000
#define TSDB_DEFAULT_TABLES
10
00000
#define TSDB_TABLES_STEP 1000
0
#define TSDB_TABLES_STEP 1000
#define TSDB_MIN_DAYS_PER_FILE 1
#define TSDB_MIN_DAYS_PER_FILE 1
#define TSDB_MAX_DAYS_PER_FILE 3650
#define TSDB_MAX_DAYS_PER_FILE 3650
...
...
src/inc/taoserror.h
浏览文件 @
067e32d3
...
@@ -200,6 +200,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_TDB_INVALID_CREATE_TB_MSG, 0, 0x060E, "tsdb inval
...
@@ -200,6 +200,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_TDB_INVALID_CREATE_TB_MSG, 0, 0x060E, "tsdb inval
TAOS_DEFINE_ERROR
(
TSDB_CODE_TDB_NO_TABLE_DATA_IN_MEM
,
0
,
0x060F
,
"tsdb no table data in memory skiplist"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_TDB_NO_TABLE_DATA_IN_MEM
,
0
,
0x060F
,
"tsdb no table data in memory skiplist"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_TDB_FILE_ALREADY_EXISTS
,
0
,
0x0610
,
"tsdb file already exists"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_TDB_FILE_ALREADY_EXISTS
,
0
,
0x0610
,
"tsdb file already exists"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_TDB_TABLE_RECONFIGURE
,
0
,
0x0611
,
"tsdb need to reconfigure table"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_TDB_TABLE_RECONFIGURE
,
0
,
0x0611
,
"tsdb need to reconfigure table"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_TDB_IVD_CREATE_TABLE_INFO
,
0
,
0x0612
,
"tsdb create table information"
)
// query
// query
TAOS_DEFINE_ERROR
(
TSDB_CODE_QRY_INVALID_QHANDLE
,
0
,
0x0700
,
"query invalid handle"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_QRY_INVALID_QHANDLE
,
0
,
0x0700
,
"query invalid handle"
)
...
@@ -208,6 +209,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_QRY_NO_DISKSPACE, 0, 0x0702, "query no d
...
@@ -208,6 +209,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_QRY_NO_DISKSPACE, 0, 0x0702, "query no d
TAOS_DEFINE_ERROR
(
TSDB_CODE_QRY_OUT_OF_MEMORY
,
0
,
0x0703
,
"query out of memory"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_QRY_OUT_OF_MEMORY
,
0
,
0x0703
,
"query out of memory"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_QRY_APP_ERROR
,
0
,
0x0704
,
"query app error"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_QRY_APP_ERROR
,
0
,
0x0704
,
"query app error"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_QRY_DUP_JOIN_KEY
,
0
,
0x0705
,
"query duplicated join key"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_QRY_DUP_JOIN_KEY
,
0
,
0x0705
,
"query duplicated join key"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_QRY_EXCEED_TAGS_LIMIT
,
0
,
0x0706
,
"query tag conditon too many"
)
// grant
// grant
TAOS_DEFINE_ERROR
(
TSDB_CODE_GRANT_EXPIRED
,
0
,
0x0800
,
"grant expired"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_GRANT_EXPIRED
,
0
,
0x0800
,
"grant expired"
)
...
...
src/mnode/inc/mnodeSdb.h
浏览文件 @
067e32d3
...
@@ -94,6 +94,7 @@ void sdbDecRef(void *thandle, void *pRow);
...
@@ -94,6 +94,7 @@ void sdbDecRef(void *thandle, void *pRow);
int64_t
sdbGetNumOfRows
(
void
*
handle
);
int64_t
sdbGetNumOfRows
(
void
*
handle
);
int32_t
sdbGetId
(
void
*
handle
);
int32_t
sdbGetId
(
void
*
handle
);
uint64_t
sdbGetVersion
();
uint64_t
sdbGetVersion
();
bool
sdbCheckRowDeleted
(
void
*
thandle
,
void
*
pRow
);
#ifdef __cplusplus
#ifdef __cplusplus
}
}
...
...
src/mnode/src/mnodeSdb.c
浏览文件 @
067e32d3
...
@@ -661,6 +661,14 @@ int32_t sdbInsertRow(SSdbOper *pOper) {
...
@@ -661,6 +661,14 @@ int32_t sdbInsertRow(SSdbOper *pOper) {
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
bool
sdbCheckRowDeleted
(
void
*
pTableInput
,
void
*
pRow
)
{
SSdbTable
*
pTable
=
pTableInput
;
if
(
pTable
==
NULL
)
return
false
;
int8_t
*
updateEnd
=
pRow
+
pTable
->
refCountPos
-
1
;
return
(
*
updateEnd
==
1
);
}
int32_t
sdbDeleteRow
(
SSdbOper
*
pOper
)
{
int32_t
sdbDeleteRow
(
SSdbOper
*
pOper
)
{
SSdbTable
*
pTable
=
(
SSdbTable
*
)
pOper
->
table
;
SSdbTable
*
pTable
=
(
SSdbTable
*
)
pOper
->
table
;
if
(
pTable
==
NULL
)
return
TSDB_CODE_MND_SDB_INVALID_TABLE_TYPE
;
if
(
pTable
==
NULL
)
return
TSDB_CODE_MND_SDB_INVALID_TABLE_TYPE
;
...
...
src/mnode/src/mnodeTable.c
浏览文件 @
067e32d3
...
@@ -72,7 +72,7 @@ static void mnodeProcessCreateChildTableRsp(SRpcMsg *rpcMsg);
...
@@ -72,7 +72,7 @@ static void mnodeProcessCreateChildTableRsp(SRpcMsg *rpcMsg);
static
int32_t
mnodeProcessDropTableMsg
(
SMnodeMsg
*
mnodeMsg
);
static
int32_t
mnodeProcessDropTableMsg
(
SMnodeMsg
*
mnodeMsg
);
static
int32_t
mnodeProcessDropSuperTableMsg
(
SMnodeMsg
*
pMsg
);
static
int32_t
mnodeProcessDropSuperTableMsg
(
SMnodeMsg
*
pMsg
);
static
void
mnodeProcessDropSuperTableRsp
(
SRpcMsg
*
rpcMsg
);
static
void
mnodeProcessDropSuperTableRsp
(
SRpcMsg
*
rpcMsg
);
static
int32_t
mnodeProcessDropChildTableMsg
(
SMnodeMsg
*
pMsg
);
static
int32_t
mnodeProcessDropChildTableMsg
(
SMnodeMsg
*
pMsg
,
bool
needReturn
);
static
void
mnodeProcessDropChildTableRsp
(
SRpcMsg
*
rpcMsg
);
static
void
mnodeProcessDropChildTableRsp
(
SRpcMsg
*
rpcMsg
);
static
int32_t
mnodeProcessSuperTableVgroupMsg
(
SMnodeMsg
*
mnodeMsg
);
static
int32_t
mnodeProcessSuperTableVgroupMsg
(
SMnodeMsg
*
mnodeMsg
);
...
@@ -376,7 +376,7 @@ static void mnodeCleanupChildTables() {
...
@@ -376,7 +376,7 @@ static void mnodeCleanupChildTables() {
}
}
static
void
mnodeAddTableIntoStable
(
SSuperTableObj
*
pStable
,
SChildTableObj
*
pCtable
)
{
static
void
mnodeAddTableIntoStable
(
SSuperTableObj
*
pStable
,
SChildTableObj
*
pCtable
)
{
pStable
->
numOfTables
++
;
atomic_add_fetch_32
(
&
pStable
->
numOfTables
,
1
)
;
if
(
pStable
->
vgHash
==
NULL
)
{
if
(
pStable
->
vgHash
==
NULL
)
{
pStable
->
vgHash
=
taosHashInit
(
64
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_INT
),
false
);
pStable
->
vgHash
=
taosHashInit
(
64
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_INT
),
false
);
...
@@ -385,18 +385,22 @@ static void mnodeAddTableIntoStable(SSuperTableObj *pStable, SChildTableObj *pCt
...
@@ -385,18 +385,22 @@ static void mnodeAddTableIntoStable(SSuperTableObj *pStable, SChildTableObj *pCt
if
(
pStable
->
vgHash
!=
NULL
)
{
if
(
pStable
->
vgHash
!=
NULL
)
{
if
(
taosHashGet
(
pStable
->
vgHash
,
&
pCtable
->
vgId
,
sizeof
(
pCtable
->
vgId
))
==
NULL
)
{
if
(
taosHashGet
(
pStable
->
vgHash
,
&
pCtable
->
vgId
,
sizeof
(
pCtable
->
vgId
))
==
NULL
)
{
taosHashPut
(
pStable
->
vgHash
,
&
pCtable
->
vgId
,
sizeof
(
pCtable
->
vgId
),
&
pCtable
->
vgId
,
sizeof
(
pCtable
->
vgId
));
taosHashPut
(
pStable
->
vgHash
,
&
pCtable
->
vgId
,
sizeof
(
pCtable
->
vgId
),
&
pCtable
->
vgId
,
sizeof
(
pCtable
->
vgId
));
mDebug
(
"table:%s, vgId:%d is put into stable vgList, sizeOfVgList:%d"
,
pStable
->
info
.
tableId
,
pCtable
->
vgId
,
(
int32_t
)
taosHashGetSize
(
pStable
->
vgHash
));
}
}
}
}
}
}
static
void
mnodeRemoveTableFromStable
(
SSuperTableObj
*
pStable
,
SChildTableObj
*
pCtable
)
{
static
void
mnodeRemoveTableFromStable
(
SSuperTableObj
*
pStable
,
SChildTableObj
*
pCtable
)
{
pStable
->
numOfTables
--
;
atomic_sub_fetch_32
(
&
pStable
->
numOfTables
,
1
)
;
if
(
pStable
->
vgHash
==
NULL
)
return
;
if
(
pStable
->
vgHash
==
NULL
)
return
;
SVgObj
*
pVgroup
=
mnodeGetVgroup
(
pCtable
->
vgId
);
SVgObj
*
pVgroup
=
mnodeGetVgroup
(
pCtable
->
vgId
);
if
(
pVgroup
==
NULL
)
{
if
(
pVgroup
==
NULL
)
{
taosHashRemove
(
pStable
->
vgHash
,
(
char
*
)
&
pCtable
->
vgId
,
sizeof
(
pCtable
->
vgId
));
taosHashRemove
(
pStable
->
vgHash
,
(
char
*
)
&
pCtable
->
vgId
,
sizeof
(
pCtable
->
vgId
));
mDebug
(
"table:%s, vgId:%d is remove from stable vgList, sizeOfVgList:%d"
,
pStable
->
info
.
tableId
,
pCtable
->
vgId
,
(
int32_t
)
taosHashGetSize
(
pStable
->
vgHash
));
}
}
mnodeDecVgroupRef
(
pVgroup
);
mnodeDecVgroupRef
(
pVgroup
);
}
}
...
@@ -748,13 +752,15 @@ static int32_t mnodeProcessDropTableMsg(SMnodeMsg *pMsg) {
...
@@ -748,13 +752,15 @@ static int32_t mnodeProcessDropTableMsg(SMnodeMsg *pMsg) {
}
}
if
(
pMsg
->
pTable
->
type
==
TSDB_SUPER_TABLE
)
{
if
(
pMsg
->
pTable
->
type
==
TSDB_SUPER_TABLE
)
{
mInfo
(
"app:%p:%p, table:%s, start to drop stable"
,
pMsg
->
rpcMsg
.
ahandle
,
pMsg
,
pDrop
->
tableId
);
SSuperTableObj
*
pSTable
=
(
SSuperTableObj
*
)
pMsg
->
pTable
;
mInfo
(
"app:%p:%p, table:%s, start to drop stable, uid:%"
PRIu64
", numOfChildTables:%d, sizeOfVgList:%d"
,
pMsg
->
rpcMsg
.
ahandle
,
pMsg
,
pDrop
->
tableId
,
pSTable
->
uid
,
pSTable
->
numOfTables
,
(
int32_t
)
taosHashGetSize
(
pSTable
->
vgHash
));
return
mnodeProcessDropSuperTableMsg
(
pMsg
);
return
mnodeProcessDropSuperTableMsg
(
pMsg
);
}
else
{
}
else
{
SChildTableObj
*
pCTable
=
(
SChildTableObj
*
)
pMsg
->
pTable
;
SChildTableObj
*
pCTable
=
(
SChildTableObj
*
)
pMsg
->
pTable
;
mInfo
(
"app:%p:%p, table:%s, start to drop ctable, vgId:%d sid:%d uid:%"
PRIu64
,
pMsg
->
rpcMsg
.
ahandle
,
pMsg
,
mInfo
(
"app:%p:%p, table:%s, start to drop ctable, vgId:%d sid:%d uid:%"
PRIu64
,
pMsg
->
rpcMsg
.
ahandle
,
pMsg
,
pDrop
->
tableId
,
pCTable
->
vgId
,
pCTable
->
sid
,
pCTable
->
uid
);
pDrop
->
tableId
,
pCTable
->
vgId
,
pCTable
->
sid
,
pCTable
->
uid
);
return
mnodeProcessDropChildTableMsg
(
pMsg
);
return
mnodeProcessDropChildTableMsg
(
pMsg
,
true
);
}
}
}
}
...
@@ -801,7 +807,7 @@ static int32_t mnodeCreateSuperTableCb(SMnodeMsg *pMsg, int32_t code) {
...
@@ -801,7 +807,7 @@ static int32_t mnodeCreateSuperTableCb(SMnodeMsg *pMsg, int32_t code) {
assert
(
pTable
);
assert
(
pTable
);
if
(
code
==
TSDB_CODE_SUCCESS
)
{
if
(
code
==
TSDB_CODE_SUCCESS
)
{
mLInfo
(
"stable:%s, is created in sdb
"
,
pTable
->
info
.
tableI
d
);
mLInfo
(
"stable:%s, is created in sdb
, uid:%"
PRIu64
,
pTable
->
info
.
tableId
,
pTable
->
ui
d
);
}
else
{
}
else
{
mError
(
"app:%p:%p, stable:%s, failed to create in sdb, reason:%s"
,
pMsg
->
rpcMsg
.
ahandle
,
pMsg
,
pTable
->
info
.
tableId
,
mError
(
"app:%p:%p, stable:%s, failed to create in sdb, reason:%s"
,
pMsg
->
rpcMsg
.
ahandle
,
pMsg
,
pTable
->
info
.
tableId
,
tstrerror
(
code
));
tstrerror
(
code
));
...
@@ -889,7 +895,7 @@ static int32_t mnodeProcessDropSuperTableMsg(SMnodeMsg *pMsg) {
...
@@ -889,7 +895,7 @@ static int32_t mnodeProcessDropSuperTableMsg(SMnodeMsg *pMsg) {
if
(
pMsg
==
NULL
)
return
TSDB_CODE_MND_APP_ERROR
;
if
(
pMsg
==
NULL
)
return
TSDB_CODE_MND_APP_ERROR
;
SSuperTableObj
*
pStable
=
(
SSuperTableObj
*
)
pMsg
->
pTable
;
SSuperTableObj
*
pStable
=
(
SSuperTableObj
*
)
pMsg
->
pTable
;
if
(
pStable
->
numOfTables
!=
0
)
{
if
(
pStable
->
vgHash
!=
NULL
/*pStable->numOfTables != 0*/
)
{
SHashMutableIterator
*
pIter
=
taosHashCreateIter
(
pStable
->
vgHash
);
SHashMutableIterator
*
pIter
=
taosHashCreateIter
(
pStable
->
vgHash
);
while
(
taosHashIterNext
(
pIter
))
{
while
(
taosHashIterNext
(
pIter
))
{
int32_t
*
pVgId
=
taosHashIterGet
(
pIter
);
int32_t
*
pVgId
=
taosHashIterGet
(
pIter
);
...
@@ -1734,11 +1740,13 @@ static int32_t mnodeProcessCreateChildTableMsg(SMnodeMsg *pMsg) {
...
@@ -1734,11 +1740,13 @@ static int32_t mnodeProcessCreateChildTableMsg(SMnodeMsg *pMsg) {
return
code
;
return
code
;
}
}
if
(
pMsg
->
pVgroup
==
NULL
)
{
if
(
pMsg
->
pVgroup
!=
NULL
)
{
pMsg
->
pVgroup
=
pVgroup
;
mnodeDecVgroupRef
(
pMsg
->
pVgroup
);
mnodeIncVgroupRef
(
pVgroup
);
}
}
pMsg
->
pVgroup
=
pVgroup
;
mnodeIncVgroupRef
(
pVgroup
);
mDebug
(
"app:%p:%p, table:%s, allocated in vgroup, vgId:%d sid:%d"
,
pMsg
->
rpcMsg
.
ahandle
,
pMsg
,
pCreate
->
tableId
,
mDebug
(
"app:%p:%p, table:%s, allocated in vgroup, vgId:%d sid:%d"
,
pMsg
->
rpcMsg
.
ahandle
,
pMsg
,
pCreate
->
tableId
,
pVgroup
->
vgId
,
sid
);
pVgroup
->
vgId
,
sid
);
...
@@ -1758,7 +1766,7 @@ static int32_t mnodeProcessCreateChildTableMsg(SMnodeMsg *pMsg) {
...
@@ -1758,7 +1766,7 @@ static int32_t mnodeProcessCreateChildTableMsg(SMnodeMsg *pMsg) {
}
}
}
}
static
int32_t
mnodeProcessDropChildTableMsg
(
SMnodeMsg
*
pMsg
)
{
static
int32_t
mnodeProcessDropChildTableMsg
(
SMnodeMsg
*
pMsg
,
bool
needReturn
)
{
SChildTableObj
*
pTable
=
(
SChildTableObj
*
)
pMsg
->
pTable
;
SChildTableObj
*
pTable
=
(
SChildTableObj
*
)
pMsg
->
pTable
;
if
(
pMsg
->
pVgroup
==
NULL
)
pMsg
->
pVgroup
=
mnodeGetVgroup
(
pTable
->
vgId
);
if
(
pMsg
->
pVgroup
==
NULL
)
pMsg
->
pVgroup
=
mnodeGetVgroup
(
pTable
->
vgId
);
if
(
pMsg
->
pVgroup
==
NULL
)
{
if
(
pMsg
->
pVgroup
==
NULL
)
{
...
@@ -1793,6 +1801,8 @@ static int32_t mnodeProcessDropChildTableMsg(SMnodeMsg *pMsg) {
...
@@ -1793,6 +1801,8 @@ static int32_t mnodeProcessDropChildTableMsg(SMnodeMsg *pMsg) {
.
msgType
=
TSDB_MSG_TYPE_MD_DROP_TABLE
.
msgType
=
TSDB_MSG_TYPE_MD_DROP_TABLE
};
};
if
(
!
needReturn
)
rpcMsg
.
ahandle
=
NULL
;
dnodeSendMsgToDnode
(
&
ipSet
,
&
rpcMsg
);
dnodeSendMsgToDnode
(
&
ipSet
,
&
rpcMsg
);
return
TSDB_CODE_MND_ACTION_IN_PROGRESS
;
return
TSDB_CODE_MND_ACTION_IN_PROGRESS
;
...
@@ -2116,7 +2126,7 @@ static void mnodeDropAllChildTablesInStable(SSuperTableObj *pStable) {
...
@@ -2116,7 +2126,7 @@ static void mnodeDropAllChildTablesInStable(SSuperTableObj *pStable) {
int32_t
numOfTables
=
0
;
int32_t
numOfTables
=
0
;
SChildTableObj
*
pTable
=
NULL
;
SChildTableObj
*
pTable
=
NULL
;
mInfo
(
"stable:%s, all child tables
(%d) will dropped from sdb"
,
pStable
->
info
.
tableId
,
numOfTables
);
mInfo
(
"stable:%s, all child tables
:%d will dropped from sdb"
,
pStable
->
info
.
tableId
,
pStable
->
numOfTables
);
while
(
1
)
{
while
(
1
)
{
pIter
=
mnodeGetNextChildTable
(
pIter
,
&
pTable
);
pIter
=
mnodeGetNextChildTable
(
pIter
,
&
pTable
);
...
@@ -2246,6 +2256,14 @@ static void mnodeProcessCreateChildTableRsp(SRpcMsg *rpcMsg) {
...
@@ -2246,6 +2256,14 @@ static void mnodeProcessCreateChildTableRsp(SRpcMsg *rpcMsg) {
SChildTableObj
*
pTable
=
(
SChildTableObj
*
)
mnodeMsg
->
pTable
;
SChildTableObj
*
pTable
=
(
SChildTableObj
*
)
mnodeMsg
->
pTable
;
assert
(
pTable
);
assert
(
pTable
);
// If the table is deleted by another thread during creation, stop creating and send drop msg to vnode
if
(
sdbCheckRowDeleted
(
tsChildTableSdb
,
pTable
))
{
mDebug
(
"app:%p:%p, table:%s, create table rsp received, but a deleting opertion incoming, vgId:%d sid:%d uid:%"
PRIu64
,
mnodeMsg
->
rpcMsg
.
ahandle
,
mnodeMsg
,
pTable
->
info
.
tableId
,
pTable
->
vgId
,
pTable
->
sid
,
pTable
->
uid
);
mnodeProcessDropChildTableMsg
(
mnodeMsg
,
false
);
rpcMsg
->
code
=
TSDB_CODE_SUCCESS
;
}
if
(
rpcMsg
->
code
==
TSDB_CODE_SUCCESS
||
rpcMsg
->
code
==
TSDB_CODE_TDB_TABLE_ALREADY_EXIST
)
{
if
(
rpcMsg
->
code
==
TSDB_CODE_SUCCESS
||
rpcMsg
->
code
==
TSDB_CODE_TDB_TABLE_ALREADY_EXIST
)
{
SCMCreateTableMsg
*
pCreate
=
mnodeMsg
->
rpcMsg
.
pCont
;
SCMCreateTableMsg
*
pCreate
=
mnodeMsg
->
rpcMsg
.
pCont
;
if
(
pCreate
->
getMeta
)
{
if
(
pCreate
->
getMeta
)
{
...
...
src/mnode/src/mnodeVgroup.c
浏览文件 @
067e32d3
...
@@ -323,7 +323,7 @@ static int32_t mnodeAllocVgroupIdPool(SVgObj *pInputVgroup) {
...
@@ -323,7 +323,7 @@ static int32_t mnodeAllocVgroupIdPool(SVgObj *pInputVgroup) {
if
(
pDb
==
NULL
)
return
TSDB_CODE_MND_APP_ERROR
;
if
(
pDb
==
NULL
)
return
TSDB_CODE_MND_APP_ERROR
;
int32_t
minIdPoolSize
=
TSDB_MAX_TABLES
;
int32_t
minIdPoolSize
=
TSDB_MAX_TABLES
;
int32_t
maxIdPoolSize
=
TSDB_MIN_TABLES
;
int32_t
maxIdPoolSize
=
tsMinTablePerVnode
;
for
(
int32_t
v
=
0
;
v
<
pDb
->
numOfVgroups
;
++
v
)
{
for
(
int32_t
v
=
0
;
v
<
pDb
->
numOfVgroups
;
++
v
)
{
SVgObj
*
pVgroup
=
pDb
->
vgList
[
v
];
SVgObj
*
pVgroup
=
pDb
->
vgList
[
v
];
if
(
pVgroup
==
NULL
)
continue
;
if
(
pVgroup
==
NULL
)
continue
;
...
@@ -347,10 +347,10 @@ static int32_t mnodeAllocVgroupIdPool(SVgObj *pInputVgroup) {
...
@@ -347,10 +347,10 @@ static int32_t mnodeAllocVgroupIdPool(SVgObj *pInputVgroup) {
// realloc all vgroups in db
// realloc all vgroups in db
int32_t
newIdPoolSize
;
int32_t
newIdPoolSize
;
if
(
minIdPoolSize
*
4
<
TSDB_TABLES_STEP
)
{
if
(
minIdPoolSize
*
4
<
tsTableIncStepPerVnode
)
{
newIdPoolSize
=
minIdPoolSize
*
4
;
newIdPoolSize
=
minIdPoolSize
*
4
;
}
else
{
}
else
{
newIdPoolSize
=
((
minIdPoolSize
/
TSDB_TABLES_STEP
)
+
1
)
*
TSDB_TABLES_STEP
;
newIdPoolSize
=
((
minIdPoolSize
/
tsTableIncStepPerVnode
)
+
1
)
*
tsTableIncStepPerVnode
;
}
}
if
(
newIdPoolSize
>
tsMaxTablePerVnode
)
{
if
(
newIdPoolSize
>
tsMaxTablePerVnode
)
{
...
@@ -471,6 +471,8 @@ static int32_t mnodeCreateVgroupCb(SMnodeMsg *pMsg, int32_t code) {
...
@@ -471,6 +471,8 @@ static int32_t mnodeCreateVgroupCb(SMnodeMsg *pMsg, int32_t code) {
}
}
pMsg
->
expected
=
pVgroup
->
numOfVnodes
;
pMsg
->
expected
=
pVgroup
->
numOfVnodes
;
pMsg
->
successed
=
0
;
pMsg
->
received
=
0
;
mnodeSendCreateVgroupMsg
(
pVgroup
,
pMsg
);
mnodeSendCreateVgroupMsg
(
pVgroup
,
pMsg
);
return
TSDB_CODE_MND_ACTION_IN_PROGRESS
;
return
TSDB_CODE_MND_ACTION_IN_PROGRESS
;
...
@@ -837,6 +839,8 @@ static void mnodeProcessCreateVnodeRsp(SRpcMsg *rpcMsg) {
...
@@ -837,6 +839,8 @@ static void mnodeProcessCreateVnodeRsp(SRpcMsg *rpcMsg) {
pVgroup
->
vgId
,
tstrerror
(
rpcMsg
->
code
),
mnodeMsg
->
received
,
mnodeMsg
->
successed
,
mnodeMsg
->
expected
,
pVgroup
->
vgId
,
tstrerror
(
rpcMsg
->
code
),
mnodeMsg
->
received
,
mnodeMsg
->
successed
,
mnodeMsg
->
expected
,
mnodeMsg
->
rpcMsg
.
handle
,
rpcMsg
->
ahandle
);
mnodeMsg
->
rpcMsg
.
handle
,
rpcMsg
->
ahandle
);
assert
(
mnodeMsg
->
received
<=
mnodeMsg
->
expected
);
if
(
mnodeMsg
->
received
!=
mnodeMsg
->
expected
)
return
;
if
(
mnodeMsg
->
received
!=
mnodeMsg
->
expected
)
return
;
if
(
mnodeMsg
->
received
==
mnodeMsg
->
successed
)
{
if
(
mnodeMsg
->
received
==
mnodeMsg
->
successed
)
{
...
...
src/plugins/http/inc/httpCode.h
浏览文件 @
067e32d3
...
@@ -105,7 +105,7 @@
...
@@ -105,7 +105,7 @@
#define HTTP_OP_VALUE_TYPE 79
#define HTTP_OP_VALUE_TYPE 79
//tgf
//tgf
#define HTTP_TG_STABLE_NOT_EXIST 80
#define HTTP_TG_STABLE_NOT_EXIST
80
extern
char
*
httpMsg
[];
extern
char
*
httpMsg
[];
...
...
src/plugins/http/inc/httpInt.h
浏览文件 @
067e32d3
...
@@ -61,6 +61,9 @@
...
@@ -61,6 +61,9 @@
#define HTTP_CHECK_BODY_CONTINUE 0
#define HTTP_CHECK_BODY_CONTINUE 0
#define HTTP_CHECK_BODY_SUCCESS 1
#define HTTP_CHECK_BODY_SUCCESS 1
#define HTTP_READ_DATA_SUCCESS 0
#define HTTP_READ_DATA_FAILED 1
#define HTTP_WRITE_RETRY_TIMES 500
#define HTTP_WRITE_RETRY_TIMES 500
#define HTTP_WRITE_WAIT_TIME_MS 5
#define HTTP_WRITE_WAIT_TIME_MS 5
#define HTTP_EXPIRED_TIME 60000
#define HTTP_EXPIRED_TIME 60000
...
...
src/plugins/http/inc/httpServer.h
浏览文件 @
067e32d3
...
@@ -23,6 +23,6 @@ void httpCleanUpConnect();
...
@@ -23,6 +23,6 @@ void httpCleanUpConnect();
void
*
httpInitServer
(
char
*
ip
,
uint16_t
port
,
char
*
label
,
int
numOfThreads
,
void
*
fp
,
void
*
shandle
);
void
*
httpInitServer
(
char
*
ip
,
uint16_t
port
,
char
*
label
,
int
numOfThreads
,
void
*
fp
,
void
*
shandle
);
void
httpCleanUpServer
(
HttpServer
*
pServer
);
void
httpCleanUpServer
(
HttpServer
*
pServer
);
bool
httpReadDataImp
(
HttpContext
*
pContext
);
int
httpReadDataImp
(
HttpContext
*
pContext
);
#endif
#endif
src/plugins/http/src/httpHandle.c
浏览文件 @
067e32d3
...
@@ -60,6 +60,7 @@ bool httpParseURL(HttpContext* pContext) {
...
@@ -60,6 +60,7 @@ bool httpParseURL(HttpContext* pContext) {
char
*
pSeek
;
char
*
pSeek
;
char
*
pEnd
=
strchr
(
pParser
->
pLast
,
' '
);
char
*
pEnd
=
strchr
(
pParser
->
pLast
,
' '
);
if
(
pEnd
==
NULL
)
{
if
(
pEnd
==
NULL
)
{
httpSendErrorResp
(
pContext
,
HTTP_UNSUPPORT_URL
);
return
false
;
return
false
;
}
}
...
@@ -275,14 +276,14 @@ bool httpParseChunkedBody(HttpContext* pContext, HttpParser* pParser, bool test)
...
@@ -275,14 +276,14 @@ bool httpParseChunkedBody(HttpContext* pContext, HttpParser* pParser, bool test)
return
true
;
return
true
;
}
}
bool
httpReadChunkedBody
(
HttpContext
*
pContext
,
HttpParser
*
pParser
)
{
int
httpReadChunkedBody
(
HttpContext
*
pContext
,
HttpParser
*
pParser
)
{
bool
parsedOk
=
httpParseChunkedBody
(
pContext
,
pParser
,
true
);
bool
parsedOk
=
httpParseChunkedBody
(
pContext
,
pParser
,
true
);
if
(
parsedOk
)
{
if
(
parsedOk
)
{
httpParseChunkedBody
(
pContext
,
pParser
,
false
);
httpParseChunkedBody
(
pContext
,
pParser
,
false
);
return
HTTP_CHECK_BODY_SUCCESS
;
return
HTTP_CHECK_BODY_SUCCESS
;
}
else
{
}
else
{
httpTrace
(
"context:%p, fd:%d, ip:%s, chunked body not finished, continue read"
,
pContext
,
pContext
->
fd
,
pContext
->
ipstr
);
httpTrace
(
"context:%p, fd:%d, ip:%s, chunked body not finished, continue read"
,
pContext
,
pContext
->
fd
,
pContext
->
ipstr
);
if
(
!
httpReadDataImp
(
pContext
)
)
{
if
(
httpReadDataImp
(
pContext
)
!=
HTTP_READ_DATA_SUCCESS
)
{
httpError
(
"context:%p, fd:%d, ip:%s, read chunked request error"
,
pContext
,
pContext
->
fd
,
pContext
->
ipstr
);
httpError
(
"context:%p, fd:%d, ip:%s, read chunked request error"
,
pContext
,
pContext
->
fd
,
pContext
->
ipstr
);
return
HTTP_CHECK_BODY_ERROR
;
return
HTTP_CHECK_BODY_ERROR
;
}
else
{
}
else
{
...
@@ -296,7 +297,6 @@ int httpReadUnChunkedBody(HttpContext* pContext, HttpParser* pParser) {
...
@@ -296,7 +297,6 @@ int httpReadUnChunkedBody(HttpContext* pContext, HttpParser* pParser) {
if
(
dataReadLen
>
pParser
->
data
.
len
)
{
if
(
dataReadLen
>
pParser
->
data
.
len
)
{
httpError
(
"context:%p, fd:%d, ip:%s, un-chunked body length invalid, read size:%d dataReadLen:%d > pContext->data.len:%d"
,
httpError
(
"context:%p, fd:%d, ip:%s, un-chunked body length invalid, read size:%d dataReadLen:%d > pContext->data.len:%d"
,
pContext
,
pContext
->
fd
,
pContext
->
ipstr
,
pContext
->
parser
.
bufsize
,
dataReadLen
,
pParser
->
data
.
len
);
pContext
,
pContext
->
fd
,
pContext
->
ipstr
,
pContext
->
parser
.
bufsize
,
dataReadLen
,
pParser
->
data
.
len
);
httpSendErrorResp
(
pContext
,
HTTP_PARSE_BODY_ERROR
);
return
HTTP_CHECK_BODY_ERROR
;
return
HTTP_CHECK_BODY_ERROR
;
}
else
if
(
dataReadLen
<
pParser
->
data
.
len
)
{
}
else
if
(
dataReadLen
<
pParser
->
data
.
len
)
{
httpTrace
(
"context:%p, fd:%d, ip:%s, un-chunked body not finished, read size:%d dataReadLen:%d < pContext->data.len:%d, continue read"
,
httpTrace
(
"context:%p, fd:%d, ip:%s, un-chunked body not finished, read size:%d dataReadLen:%d < pContext->data.len:%d, continue read"
,
...
@@ -358,20 +358,13 @@ bool httpParseRequest(HttpContext* pContext) {
...
@@ -358,20 +358,13 @@ bool httpParseRequest(HttpContext* pContext) {
}
}
int
httpCheckReadCompleted
(
HttpContext
*
pContext
)
{
int
httpCheckReadCompleted
(
HttpContext
*
pContext
)
{
HttpParser
*
pParser
=
&
pContext
->
parser
;
HttpParser
*
pParser
=
&
pContext
->
parser
;
if
(
pContext
->
httpChunked
==
HTTP_UNCUNKED
)
{
if
(
pContext
->
httpChunked
==
HTTP_UNCUNKED
)
{
int
ret
=
httpReadUnChunkedBody
(
pContext
,
pParser
);
return
httpReadUnChunkedBody
(
pContext
,
pParser
);
if
(
ret
!=
HTTP_CHECK_BODY_SUCCESS
)
{
return
ret
;
}
}
else
{
}
else
{
int
ret
=
httpReadChunkedBody
(
pContext
,
pParser
);
return
httpReadChunkedBody
(
pContext
,
pParser
);
if
(
ret
!=
HTTP_CHECK_BODY_SUCCESS
)
{
return
ret
;
}
}
}
return
HTTP_CHECK_BODY_SUCCESS
;
}
}
bool
httpDecodeRequest
(
HttpContext
*
pContext
)
{
bool
httpDecodeRequest
(
HttpContext
*
pContext
)
{
...
...
src/plugins/http/src/httpServer.c
浏览文件 @
067e32d3
...
@@ -69,7 +69,7 @@ void httpCleanUpConnect() {
...
@@ -69,7 +69,7 @@ void httpCleanUpConnect() {
httpDebug
(
"http server:%s is cleaned up"
,
pServer
->
label
);
httpDebug
(
"http server:%s is cleaned up"
,
pServer
->
label
);
}
}
bool
httpReadDataImp
(
HttpContext
*
pContext
)
{
int
httpReadDataImp
(
HttpContext
*
pContext
)
{
HttpParser
*
pParser
=
&
pContext
->
parser
;
HttpParser
*
pParser
=
&
pContext
->
parser
;
while
(
pParser
->
bufsize
<=
(
HTTP_BUFFER_SIZE
-
HTTP_STEP_SIZE
))
{
while
(
pParser
->
bufsize
<=
(
HTTP_BUFFER_SIZE
-
HTTP_STEP_SIZE
))
{
...
@@ -85,8 +85,7 @@ bool httpReadDataImp(HttpContext *pContext) {
...
@@ -85,8 +85,7 @@ bool httpReadDataImp(HttpContext *pContext) {
}
else
{
}
else
{
httpError
(
"context:%p, fd:%d, ip:%s, read from socket error:%d, close connect"
,
httpError
(
"context:%p, fd:%d, ip:%s, read from socket error:%d, close connect"
,
pContext
,
pContext
->
fd
,
pContext
->
ipstr
,
errno
);
pContext
,
pContext
->
fd
,
pContext
->
ipstr
,
errno
);
httpReleaseContext
(
pContext
);
return
HTTP_READ_DATA_FAILED
;
return
false
;
}
}
}
else
{
}
else
{
pParser
->
bufsize
+=
nread
;
pParser
->
bufsize
+=
nread
;
...
@@ -95,15 +94,13 @@ bool httpReadDataImp(HttpContext *pContext) {
...
@@ -95,15 +94,13 @@ bool httpReadDataImp(HttpContext *pContext) {
if
(
pParser
->
bufsize
>=
(
HTTP_BUFFER_SIZE
-
HTTP_STEP_SIZE
))
{
if
(
pParser
->
bufsize
>=
(
HTTP_BUFFER_SIZE
-
HTTP_STEP_SIZE
))
{
httpError
(
"context:%p, fd:%d, ip:%s, thread:%s, request big than:%d"
,
httpError
(
"context:%p, fd:%d, ip:%s, thread:%s, request big than:%d"
,
pContext
,
pContext
->
fd
,
pContext
->
ipstr
,
pContext
->
pThread
->
label
,
HTTP_BUFFER_SIZE
);
pContext
,
pContext
->
fd
,
pContext
->
ipstr
,
pContext
->
pThread
->
label
,
HTTP_BUFFER_SIZE
);
httpSendErrorResp
(
pContext
,
HTTP_REQUSET_TOO_BIG
);
return
HTTP_REQUSET_TOO_BIG
;
httpNotifyContextClose
(
pContext
);
return
false
;
}
}
}
}
pParser
->
buffer
[
pParser
->
bufsize
]
=
0
;
pParser
->
buffer
[
pParser
->
bufsize
]
=
0
;
return
true
;
return
HTTP_READ_DATA_SUCCESS
;
}
}
static
bool
httpDecompressData
(
HttpContext
*
pContext
)
{
static
bool
httpDecompressData
(
HttpContext
*
pContext
)
{
...
@@ -141,8 +138,14 @@ static bool httpReadData(HttpContext *pContext) {
...
@@ -141,8 +138,14 @@ static bool httpReadData(HttpContext *pContext) {
httpInitContext
(
pContext
);
httpInitContext
(
pContext
);
}
}
if
(
!
httpReadDataImp
(
pContext
))
{
int32_t
code
=
httpReadDataImp
(
pContext
);
httpNotifyContextClose
(
pContext
);
if
(
code
!=
HTTP_READ_DATA_SUCCESS
)
{
if
(
code
==
HTTP_READ_DATA_FAILED
)
{
httpReleaseContext
(
pContext
);
}
else
{
httpSendErrorResp
(
pContext
,
code
);
httpNotifyContextClose
(
pContext
);
}
return
false
;
return
false
;
}
}
...
...
src/query/inc/qUtil.h
浏览文件 @
067e32d3
...
@@ -37,7 +37,7 @@ SWindowResult *getWindowResult(SWindowResInfo *pWindowResInfo, int32_t slot);
...
@@ -37,7 +37,7 @@ SWindowResult *getWindowResult(SWindowResInfo *pWindowResInfo, int32_t slot);
#define curTimeWindow(_winres) ((_winres)->curIndex)
#define curTimeWindow(_winres) ((_winres)->curIndex)
bool
isWindowResClosed
(
SWindowResInfo
*
pWindowResInfo
,
int32_t
slot
);
bool
isWindowResClosed
(
SWindowResInfo
*
pWindowResInfo
,
int32_t
slot
);
void
createQueryResultInfo
(
SQuery
*
pQuery
,
SWindowResult
*
pResultRow
,
bool
isSTableQuery
,
SPosInfo
*
posInfo
,
size_t
interBufSize
);
int32_t
createQueryResultInfo
(
SQuery
*
pQuery
,
SWindowResult
*
pResultRow
,
bool
isSTableQuery
,
SPosInfo
*
posInfo
,
size_t
interBufSize
);
char
*
getPosInResultPage
(
SQueryRuntimeEnv
*
pRuntimeEnv
,
int32_t
columnIndex
,
SWindowResult
*
pResult
);
char
*
getPosInResultPage
(
SQueryRuntimeEnv
*
pRuntimeEnv
,
int32_t
columnIndex
,
SWindowResult
*
pResult
);
...
...
src/query/src/qExecutor.c
浏览文件 @
067e32d3
...
@@ -2978,16 +2978,23 @@ void switchCtxOrder(SQueryRuntimeEnv *pRuntimeEnv) {
...
@@ -2978,16 +2978,23 @@ void switchCtxOrder(SQueryRuntimeEnv *pRuntimeEnv) {
}
}
}
}
void
createQueryResultInfo
(
SQuery
*
pQuery
,
SWindowResult
*
pResultRow
,
bool
isSTableQuery
,
SPosInfo
*
posInfo
,
size_t
interBufSize
)
{
int32_t
createQueryResultInfo
(
SQuery
*
pQuery
,
SWindowResult
*
pResultRow
,
bool
isSTableQuery
,
SPosInfo
*
posInfo
,
size_t
interBufSize
)
{
int32_t
numOfCols
=
pQuery
->
numOfOutput
;
int32_t
numOfCols
=
pQuery
->
numOfOutput
;
pResultRow
->
resultInfo
=
calloc
((
size_t
)
numOfCols
,
sizeof
(
SResultInfo
));
pResultRow
->
resultInfo
=
calloc
((
size_t
)
numOfCols
,
sizeof
(
SResultInfo
));
if
(
pResultRow
->
resultInfo
==
NULL
)
{
return
TSDB_CODE_QRY_OUT_OF_MEMORY
;
}
pResultRow
->
pos
=
*
posInfo
;
pResultRow
->
pos
=
*
posInfo
;
char
*
buf
=
calloc
(
1
,
interBufSize
);
char
*
buf
=
calloc
(
1
,
interBufSize
);
if
(
buf
==
NULL
)
{
return
TSDB_CODE_QRY_OUT_OF_MEMORY
;
}
// set the intermediate result output buffer
// set the intermediate result output buffer
setWindowResultInfo
(
pResultRow
->
resultInfo
,
pQuery
,
isSTableQuery
,
buf
);
setWindowResultInfo
(
pResultRow
->
resultInfo
,
pQuery
,
isSTableQuery
,
buf
);
return
TSDB_CODE_SUCCESS
;
}
}
void
resetCtxOutputBuf
(
SQueryRuntimeEnv
*
pRuntimeEnv
)
{
void
resetCtxOutputBuf
(
SQueryRuntimeEnv
*
pRuntimeEnv
)
{
...
@@ -3368,7 +3375,10 @@ static STableQueryInfo *createTableQueryInfo(SQueryRuntimeEnv *pRuntimeEnv, void
...
@@ -3368,7 +3375,10 @@ static STableQueryInfo *createTableQueryInfo(SQueryRuntimeEnv *pRuntimeEnv, void
if
(
QUERY_IS_INTERVAL_QUERY
(
pQuery
)
||
pRuntimeEnv
->
groupbyNormalCol
)
{
if
(
QUERY_IS_INTERVAL_QUERY
(
pQuery
)
||
pRuntimeEnv
->
groupbyNormalCol
)
{
int32_t
initialSize
=
16
;
int32_t
initialSize
=
16
;
int32_t
initialThreshold
=
100
;
int32_t
initialThreshold
=
100
;
initWindowResInfo
(
&
pTableQueryInfo
->
windowResInfo
,
pRuntimeEnv
,
initialSize
,
initialThreshold
,
TSDB_DATA_TYPE_INT
);
int32_t
code
=
initWindowResInfo
(
&
pTableQueryInfo
->
windowResInfo
,
pRuntimeEnv
,
initialSize
,
initialThreshold
,
TSDB_DATA_TYPE_INT
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
NULL
;
}
}
else
{
// in other aggregate query, do not initialize the windowResInfo
}
else
{
// in other aggregate query, do not initialize the windowResInfo
}
}
...
@@ -4189,7 +4199,10 @@ int32_t doInitQInfo(SQInfo *pQInfo, STSBuf *pTsBuf, void *tsdb, int32_t vgId, bo
...
@@ -4189,7 +4199,10 @@ int32_t doInitQInfo(SQInfo *pQInfo, STSBuf *pTsBuf, void *tsdb, int32_t vgId, bo
type
=
TSDB_DATA_TYPE_INT
;
// group id
type
=
TSDB_DATA_TYPE_INT
;
// group id
}
}
initWindowResInfo
(
&
pRuntimeEnv
->
windowResInfo
,
pRuntimeEnv
,
32
,
4096
,
type
);
code
=
initWindowResInfo
(
&
pRuntimeEnv
->
windowResInfo
,
pRuntimeEnv
,
32
,
4096
,
type
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
}
}
}
else
if
(
pRuntimeEnv
->
groupbyNormalCol
||
QUERY_IS_INTERVAL_QUERY
(
pQuery
))
{
}
else
if
(
pRuntimeEnv
->
groupbyNormalCol
||
QUERY_IS_INTERVAL_QUERY
(
pQuery
))
{
...
@@ -4206,7 +4219,10 @@ int32_t doInitQInfo(SQInfo *pQInfo, STSBuf *pTsBuf, void *tsdb, int32_t vgId, bo
...
@@ -4206,7 +4219,10 @@ int32_t doInitQInfo(SQInfo *pQInfo, STSBuf *pTsBuf, void *tsdb, int32_t vgId, bo
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
}
}
initWindowResInfo
(
&
pRuntimeEnv
->
windowResInfo
,
pRuntimeEnv
,
rows
,
4096
,
type
);
code
=
initWindowResInfo
(
&
pRuntimeEnv
->
windowResInfo
,
pRuntimeEnv
,
rows
,
4096
,
type
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
}
}
if
(
pQuery
->
fillType
!=
TSDB_FILL_NONE
&&
!
isPointInterpoQuery
(
pQuery
))
{
if
(
pQuery
->
fillType
!=
TSDB_FILL_NONE
&&
!
isPointInterpoQuery
(
pQuery
))
{
...
@@ -5370,6 +5386,7 @@ static int32_t buildAirthmeticExprFromMsg(SExprInfo *pArithExprInfo, SQueryTable
...
@@ -5370,6 +5386,7 @@ static int32_t buildAirthmeticExprFromMsg(SExprInfo *pArithExprInfo, SQueryTable
pExprNode
=
exprTreeFromBinary
(
pArithExprInfo
->
base
.
arg
[
0
].
argValue
.
pz
,
pArithExprInfo
->
base
.
arg
[
0
].
argBytes
);
pExprNode
=
exprTreeFromBinary
(
pArithExprInfo
->
base
.
arg
[
0
].
argValue
.
pz
,
pArithExprInfo
->
base
.
arg
[
0
].
argBytes
);
}
CATCH
(
code
)
{
}
CATCH
(
code
)
{
CLEANUP_EXECUTE
();
CLEANUP_EXECUTE
();
qError
(
"qmsg:%p failed to create arithmetic expression string from:%s, reason: %s"
,
pQueryMsg
,
pArithExprInfo
->
base
.
arg
[
0
].
argValue
.
pz
,
tstrerror
(
code
));
return
code
;
return
code
;
}
END_TRY
}
END_TRY
...
@@ -5627,17 +5644,23 @@ static void freeQInfo(SQInfo *pQInfo);
...
@@ -5627,17 +5644,23 @@ static void freeQInfo(SQInfo *pQInfo);
static
SQInfo
*
createQInfoImpl
(
SQueryTableMsg
*
pQueryMsg
,
SArray
*
pTableIdList
,
SSqlGroupbyExpr
*
pGroupbyExpr
,
SExprInfo
*
pExprs
,
static
SQInfo
*
createQInfoImpl
(
SQueryTableMsg
*
pQueryMsg
,
SArray
*
pTableIdList
,
SSqlGroupbyExpr
*
pGroupbyExpr
,
SExprInfo
*
pExprs
,
STableGroupInfo
*
pTableGroupInfo
,
SColumnInfo
*
pTagCols
)
{
STableGroupInfo
*
pTableGroupInfo
,
SColumnInfo
*
pTagCols
)
{
int16_t
numOfCols
=
pQueryMsg
->
numOfCols
;
int16_t
numOfOutput
=
pQueryMsg
->
numOfOutput
;
SQInfo
*
pQInfo
=
(
SQInfo
*
)
calloc
(
1
,
sizeof
(
SQInfo
));
SQInfo
*
pQInfo
=
(
SQInfo
*
)
calloc
(
1
,
sizeof
(
SQInfo
));
if
(
pQInfo
==
NULL
)
{
if
(
pQInfo
==
NULL
)
{
return
NULL
;
goto
_cleanup_qinfo
;
}
}
// to make sure third party won't overwrite this structure
pQInfo
->
signature
=
pQInfo
;
pQInfo
->
tableGroupInfo
=
*
pTableGroupInfo
;
SQuery
*
pQuery
=
calloc
(
1
,
sizeof
(
SQuery
));
SQuery
*
pQuery
=
calloc
(
1
,
sizeof
(
SQuery
));
if
(
pQuery
==
NULL
)
{
goto
_cleanup_query
;
}
pQInfo
->
runtimeEnv
.
pQuery
=
pQuery
;
pQInfo
->
runtimeEnv
.
pQuery
=
pQuery
;
int16_t
numOfCols
=
pQueryMsg
->
numOfCols
;
int16_t
numOfOutput
=
pQueryMsg
->
numOfOutput
;
pQuery
->
numOfCols
=
numOfCols
;
pQuery
->
numOfCols
=
numOfCols
;
pQuery
->
numOfOutput
=
numOfOutput
;
pQuery
->
numOfOutput
=
numOfOutput
;
pQuery
->
limit
.
limit
=
pQueryMsg
->
limit
;
pQuery
->
limit
.
limit
=
pQueryMsg
->
limit
;
...
@@ -5651,6 +5674,7 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
...
@@ -5651,6 +5674,7 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
pQuery
->
slidingTimeUnit
=
pQueryMsg
->
slidingTimeUnit
;
pQuery
->
slidingTimeUnit
=
pQueryMsg
->
slidingTimeUnit
;
pQuery
->
fillType
=
pQueryMsg
->
fillType
;
pQuery
->
fillType
=
pQueryMsg
->
fillType
;
pQuery
->
numOfTags
=
pQueryMsg
->
numOfTags
;
pQuery
->
numOfTags
=
pQueryMsg
->
numOfTags
;
pQuery
->
tagColList
=
pTagCols
;
// todo do not allocate ??
// todo do not allocate ??
pQuery
->
colList
=
calloc
(
numOfCols
,
sizeof
(
SSingleColumnFilterInfo
));
pQuery
->
colList
=
calloc
(
numOfCols
,
sizeof
(
SSingleColumnFilterInfo
));
...
@@ -5663,8 +5687,6 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
...
@@ -5663,8 +5687,6 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
pQuery
->
colList
[
i
].
filters
=
tscFilterInfoClone
(
pQueryMsg
->
colList
[
i
].
filters
,
pQuery
->
colList
[
i
].
numOfFilters
);
pQuery
->
colList
[
i
].
filters
=
tscFilterInfoClone
(
pQueryMsg
->
colList
[
i
].
filters
,
pQuery
->
colList
[
i
].
numOfFilters
);
}
}
pQuery
->
tagColList
=
pTagCols
;
// calculate the result row size
// calculate the result row size
for
(
int16_t
col
=
0
;
col
<
numOfOutput
;
++
col
)
{
for
(
int16_t
col
=
0
;
col
<
numOfOutput
;
++
col
)
{
assert
(
pExprs
[
col
].
bytes
>
0
);
assert
(
pExprs
[
col
].
bytes
>
0
);
...
@@ -5709,10 +5731,6 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
...
@@ -5709,10 +5731,6 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
memcpy
(
pQuery
->
fillVal
,
(
char
*
)
pQueryMsg
->
fillVal
,
pQuery
->
numOfOutput
*
sizeof
(
int64_t
));
memcpy
(
pQuery
->
fillVal
,
(
char
*
)
pQueryMsg
->
fillVal
,
pQuery
->
numOfOutput
*
sizeof
(
int64_t
));
}
}
// to make sure third party won't overwrite this structure
pQInfo
->
signature
=
pQInfo
;
pQInfo
->
tableGroupInfo
=
*
pTableGroupInfo
;
size_t
numOfGroups
=
0
;
size_t
numOfGroups
=
0
;
if
(
pTableGroupInfo
->
pGroupList
!=
NULL
)
{
if
(
pTableGroupInfo
->
pGroupList
!=
NULL
)
{
numOfGroups
=
taosArrayGetSize
(
pTableGroupInfo
->
pGroupList
);
numOfGroups
=
taosArrayGetSize
(
pTableGroupInfo
->
pGroupList
);
...
@@ -5736,6 +5754,10 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
...
@@ -5736,6 +5754,10 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
size_t
s
=
taosArrayGetSize
(
pa
);
size_t
s
=
taosArrayGetSize
(
pa
);
SArray
*
p1
=
taosArrayInit
(
s
,
POINTER_BYTES
);
SArray
*
p1
=
taosArrayInit
(
s
,
POINTER_BYTES
);
if
(
p1
==
NULL
)
{
goto
_cleanup
;
}
taosArrayPush
(
pQInfo
->
tableqinfoGroupInfo
.
pGroupList
,
&
p1
);
for
(
int32_t
j
=
0
;
j
<
s
;
++
j
)
{
for
(
int32_t
j
=
0
;
j
<
s
;
++
j
)
{
void
*
pTable
=
taosArrayGetP
(
pa
,
j
);
void
*
pTable
=
taosArrayGetP
(
pa
,
j
);
...
@@ -5750,13 +5772,14 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
...
@@ -5750,13 +5772,14 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
void
*
buf
=
pQInfo
->
pBuf
+
index
*
sizeof
(
STableQueryInfo
);
void
*
buf
=
pQInfo
->
pBuf
+
index
*
sizeof
(
STableQueryInfo
);
STableQueryInfo
*
item
=
createTableQueryInfo
(
&
pQInfo
->
runtimeEnv
,
pTable
,
window
,
buf
);
STableQueryInfo
*
item
=
createTableQueryInfo
(
&
pQInfo
->
runtimeEnv
,
pTable
,
window
,
buf
);
if
(
item
==
NULL
)
{
goto
_cleanup
;
}
item
->
groupIndex
=
i
;
item
->
groupIndex
=
i
;
taosArrayPush
(
p1
,
&
item
);
taosArrayPush
(
p1
,
&
item
);
taosHashPut
(
pQInfo
->
tableqinfoGroupInfo
.
map
,
&
id
->
tid
,
sizeof
(
id
->
tid
),
&
item
,
POINTER_BYTES
);
taosHashPut
(
pQInfo
->
tableqinfoGroupInfo
.
map
,
&
id
->
tid
,
sizeof
(
id
->
tid
),
&
item
,
POINTER_BYTES
);
index
+=
1
;
index
+=
1
;
}
}
taosArrayPush
(
pQInfo
->
tableqinfoGroupInfo
.
pGroupList
,
&
p1
);
}
}
pQInfo
->
arrTableIdInfo
=
taosArrayInit
(
tableIndex
,
sizeof
(
STableIdInfo
));
pQInfo
->
arrTableIdInfo
=
taosArrayInit
(
tableIndex
,
sizeof
(
STableIdInfo
));
...
@@ -5775,6 +5798,21 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
...
@@ -5775,6 +5798,21 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SArray* pTableIdList,
qDebug
(
"qmsg:%p QInfo:%p created"
,
pQueryMsg
,
pQInfo
);
qDebug
(
"qmsg:%p QInfo:%p created"
,
pQueryMsg
,
pQInfo
);
return
pQInfo
;
return
pQInfo
;
_cleanup_qinfo:
tsdbDestoryTableGroup
(
pTableGroupInfo
);
_cleanup_query:
taosArrayDestroy
(
pGroupbyExpr
->
columnInfo
);
tfree
(
pGroupbyExpr
);
tfree
(
pTagCols
);
for
(
int32_t
i
=
0
;
i
<
numOfOutput
;
++
i
)
{
SExprInfo
*
pExprInfo
=
&
pExprs
[
i
];
if
(
pExprInfo
->
pExpr
!=
NULL
)
{
tExprTreeDestroy
(
&
pExprInfo
->
pExpr
,
NULL
);
}
}
tfree
(
pExprs
);
_cleanup:
_cleanup:
freeQInfo
(
pQInfo
);
freeQInfo
(
pQInfo
);
return
NULL
;
return
NULL
;
...
@@ -5893,19 +5931,21 @@ static void freeQInfo(SQInfo *pQInfo) {
...
@@ -5893,19 +5931,21 @@ static void freeQInfo(SQInfo *pQInfo) {
}
}
// todo refactor, extract method to destroytableDataInfo
// todo refactor, extract method to destroytableDataInfo
int32_t
numOfGroups
=
GET_NUM_OF_TABLEGROUP
(
pQInfo
);
if
(
pQInfo
->
tableqinfoGroupInfo
.
pGroupList
!=
NULL
)
{
for
(
int32_t
i
=
0
;
i
<
numOfGroups
;
++
i
)
{
int32_t
numOfGroups
=
GET_NUM_OF_TABLEGROUP
(
pQInfo
);
SArray
*
p
=
GET_TABLEGROUP
(
pQInfo
,
i
);
for
(
int32_t
i
=
0
;
i
<
numOfGroups
;
++
i
)
{
SArray
*
p
=
GET_TABLEGROUP
(
pQInfo
,
i
);
size_t
num
=
taosArrayGetSize
(
p
);
for
(
int32_t
j
=
0
;
j
<
num
;
++
j
)
{
size_t
num
=
taosArrayGetSize
(
p
);
STableQueryInfo
*
item
=
taosArrayGetP
(
p
,
j
);
for
(
int32_t
j
=
0
;
j
<
num
;
++
j
)
{
if
(
item
!=
NULL
)
{
STableQueryInfo
*
item
=
taosArrayGetP
(
p
,
j
);
destroyTableQueryInfo
(
item
,
pQuery
->
numOfOutput
);
if
(
item
!=
NULL
)
{
destroyTableQueryInfo
(
item
,
pQuery
->
numOfOutput
);
}
}
}
}
taosArrayDestroy
(
p
);
taosArrayDestroy
(
p
);
}
}
}
tfree
(
pQInfo
->
pBuf
);
tfree
(
pQInfo
->
pBuf
);
...
@@ -6086,6 +6126,9 @@ int32_t qCreateQueryInfo(void* tsdb, int32_t vgId, SQueryTableMsg* pQueryMsg, vo
...
@@ -6086,6 +6126,9 @@ int32_t qCreateQueryInfo(void* tsdb, int32_t vgId, SQueryTableMsg* pQueryMsg, vo
code
=
tsdbQuerySTableByTagCond
(
tsdb
,
id
->
uid
,
tagCond
,
pQueryMsg
->
tagCondLen
,
pQueryMsg
->
tagNameRelType
,
tbnameCond
,
&
tableGroupInfo
,
pGroupColIndex
,
code
=
tsdbQuerySTableByTagCond
(
tsdb
,
id
->
uid
,
tagCond
,
pQueryMsg
->
tagCondLen
,
pQueryMsg
->
tagNameRelType
,
tbnameCond
,
&
tableGroupInfo
,
pGroupColIndex
,
numOfGroupByCols
);
numOfGroupByCols
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
if
(
code
==
TSDB_CODE_QRY_EXCEED_TAGS_LIMIT
)
{
qError
(
"qmsg:%p failed to QueryStable, reason: %s"
,
pQueryMsg
,
tstrerror
(
code
));
}
goto
_over
;
goto
_over
;
}
}
}
else
{
}
else
{
...
...
src/query/src/qUtil.c
浏览文件 @
067e32d3
...
@@ -50,9 +50,15 @@ int32_t initWindowResInfo(SWindowResInfo *pWindowResInfo, SQueryRuntimeEnv *pRun
...
@@ -50,9 +50,15 @@ int32_t initWindowResInfo(SWindowResInfo *pWindowResInfo, SQueryRuntimeEnv *pRun
// use the pointer arraylist
// use the pointer arraylist
pWindowResInfo
->
pResult
=
calloc
(
threshold
,
sizeof
(
SWindowResult
));
pWindowResInfo
->
pResult
=
calloc
(
threshold
,
sizeof
(
SWindowResult
));
if
(
pWindowResInfo
->
pResult
==
NULL
)
{
return
TSDB_CODE_QRY_OUT_OF_MEMORY
;
}
for
(
int32_t
i
=
0
;
i
<
pWindowResInfo
->
capacity
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
pWindowResInfo
->
capacity
;
++
i
)
{
SPosInfo
posInfo
=
{
-
1
,
-
1
};
SPosInfo
posInfo
=
{
-
1
,
-
1
};
createQueryResultInfo
(
pRuntimeEnv
->
pQuery
,
&
pWindowResInfo
->
pResult
[
i
],
pRuntimeEnv
->
stableQuery
,
&
posInfo
,
pRuntimeEnv
->
interBufSize
);
int32_t
code
=
createQueryResultInfo
(
pRuntimeEnv
->
pQuery
,
&
pWindowResInfo
->
pResult
[
i
],
pRuntimeEnv
->
stableQuery
,
&
posInfo
,
pRuntimeEnv
->
interBufSize
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
}
}
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
...
@@ -76,9 +82,11 @@ void cleanupTimeWindowInfo(SWindowResInfo *pWindowResInfo, int32_t numOfCols) {
...
@@ -76,9 +82,11 @@ void cleanupTimeWindowInfo(SWindowResInfo *pWindowResInfo, int32_t numOfCols) {
return
;
return
;
}
}
for
(
int32_t
i
=
0
;
i
<
pWindowResInfo
->
capacity
;
++
i
)
{
if
(
pWindowResInfo
->
pResult
!=
NULL
)
{
SWindowResult
*
pResult
=
&
pWindowResInfo
->
pResult
[
i
];
for
(
int32_t
i
=
0
;
i
<
pWindowResInfo
->
capacity
;
++
i
)
{
destroyTimeWindowRes
(
pResult
,
numOfCols
);
SWindowResult
*
pResult
=
&
pWindowResInfo
->
pResult
[
i
];
destroyTimeWindowRes
(
pResult
,
numOfCols
);
}
}
}
taosHashCleanup
(
pWindowResInfo
->
hashList
);
taosHashCleanup
(
pWindowResInfo
->
hashList
);
...
...
src/query/src/qast.c
浏览文件 @
067e32d3
...
@@ -962,10 +962,13 @@ static UNUSED_FUNC char* exception_strdup(const char* str) {
...
@@ -962,10 +962,13 @@ static UNUSED_FUNC char* exception_strdup(const char* str) {
static
tExprNode
*
exprTreeFromBinaryImpl
(
SBufferReader
*
br
)
{
static
tExprNode
*
exprTreeFromBinaryImpl
(
SBufferReader
*
br
)
{
int32_t
anchor
=
CLEANUP_GET_ANCHOR
();
int32_t
anchor
=
CLEANUP_GET_ANCHOR
();
if
(
CLEANUP_EXCEED_LIMIT
())
{
THROW
(
TSDB_CODE_QRY_EXCEED_TAGS_LIMIT
);
return
NULL
;
}
tExprNode
*
pExpr
=
exception_calloc
(
1
,
sizeof
(
tExprNode
));
tExprNode
*
pExpr
=
exception_calloc
(
1
,
sizeof
(
tExprNode
));
CLEANUP_PUSH_VOID_PTR_PTR
(
true
,
tExprNodeDestroy
,
pExpr
,
NULL
);
CLEANUP_PUSH_VOID_PTR_PTR
(
true
,
tExprNodeDestroy
,
pExpr
,
NULL
);
pExpr
->
nodeType
=
tbufReadUint8
(
br
);
pExpr
->
nodeType
=
tbufReadUint8
(
br
);
if
(
pExpr
->
nodeType
==
TSQL_NODE_VALUE
)
{
if
(
pExpr
->
nodeType
==
TSQL_NODE_VALUE
)
{
...
@@ -995,7 +998,6 @@ static tExprNode* exprTreeFromBinaryImpl(SBufferReader* br) {
...
@@ -995,7 +998,6 @@ static tExprNode* exprTreeFromBinaryImpl(SBufferReader* br) {
pExpr
->
_node
.
hasPK
=
tbufReadUint8
(
br
);
pExpr
->
_node
.
hasPK
=
tbufReadUint8
(
br
);
pExpr
->
_node
.
pLeft
=
exprTreeFromBinaryImpl
(
br
);
pExpr
->
_node
.
pLeft
=
exprTreeFromBinaryImpl
(
br
);
pExpr
->
_node
.
pRight
=
exprTreeFromBinaryImpl
(
br
);
pExpr
->
_node
.
pRight
=
exprTreeFromBinaryImpl
(
br
);
assert
(
pExpr
->
_node
.
pLeft
!=
NULL
&&
pExpr
->
_node
.
pRight
!=
NULL
);
assert
(
pExpr
->
_node
.
pLeft
!=
NULL
&&
pExpr
->
_node
.
pRight
!=
NULL
);
}
}
...
...
src/tsdb/src/tsdbMeta.c
浏览文件 @
067e32d3
...
@@ -57,8 +57,30 @@ int tsdbCreateTable(TSDB_REPO_T *repo, STableCfg *pCfg) {
...
@@ -57,8 +57,30 @@ int tsdbCreateTable(TSDB_REPO_T *repo, STableCfg *pCfg) {
STable
*
super
=
NULL
;
STable
*
super
=
NULL
;
STable
*
table
=
NULL
;
STable
*
table
=
NULL
;
int
newSuper
=
0
;
int
newSuper
=
0
;
int
tid
=
pCfg
->
tableId
.
tid
;
STable
*
pTable
=
NULL
;
if
(
tid
<
0
||
tid
>=
pRepo
->
config
.
maxTables
)
{
tsdbError
(
"vgId:%d failed to create table since invalid tid %d"
,
REPO_ID
(
pRepo
),
tid
);
terrno
=
TSDB_CODE_TDB_IVD_CREATE_TABLE_INFO
;
goto
_err
;
}
STable
*
pTable
=
tsdbGetTableByUid
(
pMeta
,
pCfg
->
tableId
.
uid
);
if
(
pMeta
->
tables
[
tid
]
!=
NULL
)
{
if
(
TABLE_UID
(
pMeta
->
tables
[
tid
])
==
pCfg
->
tableId
.
uid
)
{
tsdbError
(
"vgId:%d table %s already exists, tid %d uid %"
PRId64
,
REPO_ID
(
pRepo
),
TABLE_CHAR_NAME
(
pTable
),
TABLE_TID
(
pTable
),
TABLE_UID
(
pTable
));
return
TSDB_CODE_TDB_TABLE_ALREADY_EXIST
;
}
else
{
tsdbError
(
"vgId:%d table %s at tid %d uid %"
PRIu64
" exists, replace it with new table, this can be not reasonable"
,
REPO_ID
(
pRepo
),
TABLE_CHAR_NAME
(
pMeta
->
tables
[
tid
]),
TABLE_TID
(
pMeta
->
tables
[
tid
]),
TABLE_UID
(
pMeta
->
tables
[
tid
]));
tsdbDropTable
(
pRepo
,
pMeta
->
tables
[
tid
]
->
tableId
);
}
}
pTable
=
tsdbGetTableByUid
(
pMeta
,
pCfg
->
tableId
.
uid
);
if
(
pTable
!=
NULL
)
{
if
(
pTable
!=
NULL
)
{
tsdbError
(
"vgId:%d table %s already exists, tid %d uid %"
PRId64
,
REPO_ID
(
pRepo
),
TABLE_CHAR_NAME
(
pTable
),
tsdbError
(
"vgId:%d table %s already exists, tid %d uid %"
PRId64
,
REPO_ID
(
pRepo
),
TABLE_CHAR_NAME
(
pTable
),
TABLE_TID
(
pTable
),
TABLE_UID
(
pTable
));
TABLE_TID
(
pTable
),
TABLE_UID
(
pTable
));
...
@@ -72,10 +94,10 @@ int tsdbCreateTable(TSDB_REPO_T *repo, STableCfg *pCfg) {
...
@@ -72,10 +94,10 @@ int tsdbCreateTable(TSDB_REPO_T *repo, STableCfg *pCfg) {
super
=
tsdbNewTable
(
pCfg
,
true
);
super
=
tsdbNewTable
(
pCfg
,
true
);
if
(
super
==
NULL
)
goto
_err
;
if
(
super
==
NULL
)
goto
_err
;
}
else
{
}
else
{
// TODO
if
(
TABLE_TYPE
(
super
)
!=
TSDB_SUPER_TABLE
||
TABLE_UID
(
super
)
!=
pCfg
->
superUid
)
{
if
(
super
->
type
!=
TSDB_SUPER_TABLE
)
return
-
1
;
terrno
=
TSDB_CODE_TDB_IVD_CREATE_TABLE_INFO
;
if
(
super
->
tableId
.
uid
!=
pCfg
->
superUid
)
return
-
1
;
goto
_err
;
// tsdbUpdateTable(pRepo, super, pCfg);
}
}
}
}
}
...
@@ -705,6 +727,9 @@ static STable *tsdbNewTable(STableCfg *pCfg, bool isSuper) {
...
@@ -705,6 +727,9 @@ static STable *tsdbNewTable(STableCfg *pCfg, bool isSuper) {
T_REF_INC
(
pTable
);
T_REF_INC
(
pTable
);
tsdbDebug
(
"table %s tid %d uid %"
PRIu64
" is created"
,
TABLE_CHAR_NAME
(
pTable
),
TABLE_TID
(
pTable
),
TABLE_UID
(
pTable
));
return
pTable
;
return
pTable
;
_err:
_err:
...
@@ -714,7 +739,9 @@ _err:
...
@@ -714,7 +739,9 @@ _err:
static
void
tsdbFreeTable
(
STable
*
pTable
)
{
static
void
tsdbFreeTable
(
STable
*
pTable
)
{
if
(
pTable
)
{
if
(
pTable
)
{
if
(
pTable
->
name
!=
NULL
)
tsdbDebug
(
"table %s is destroyed"
,
TABLE_CHAR_NAME
(
pTable
));
if
(
pTable
->
name
!=
NULL
)
tsdbDebug
(
"table %s tid %d uid %"
PRIu64
" is destroyed"
,
TABLE_CHAR_NAME
(
pTable
),
TABLE_TID
(
pTable
),
TABLE_UID
(
pTable
));
tfree
(
TABLE_NAME
(
pTable
));
tfree
(
TABLE_NAME
(
pTable
));
if
(
TABLE_TYPE
(
pTable
)
!=
TSDB_CHILD_TABLE
)
{
if
(
TABLE_TYPE
(
pTable
)
!=
TSDB_CHILD_TABLE
)
{
for
(
int
i
=
0
;
i
<
TSDB_MAX_TABLE_SCHEMAS
;
i
++
)
{
for
(
int
i
=
0
;
i
<
TSDB_MAX_TABLE_SCHEMAS
;
i
++
)
{
...
@@ -782,7 +809,7 @@ static int tsdbAddTableToMeta(STsdbRepo *pRepo, STable *pTable, bool addIdx, boo
...
@@ -782,7 +809,7 @@ static int tsdbAddTableToMeta(STsdbRepo *pRepo, STable *pTable, bool addIdx, boo
tsdbGetTableSchemaImpl
(
pTable
,
false
,
false
,
-
1
));
tsdbGetTableSchemaImpl
(
pTable
,
false
,
false
,
-
1
));
}
}
tsdb
Trace
(
"vgId:%d table %s tid %d uid %"
PRIu64
" is added to meta"
,
REPO_ID
(
pRepo
),
TABLE_CHAR_NAME
(
pTable
),
tsdb
Debug
(
"vgId:%d table %s tid %d uid %"
PRIu64
" is added to meta"
,
REPO_ID
(
pRepo
),
TABLE_CHAR_NAME
(
pTable
),
TABLE_TID
(
pTable
),
TABLE_UID
(
pTable
));
TABLE_TID
(
pTable
),
TABLE_UID
(
pTable
));
return
0
;
return
0
;
...
...
src/tsdb/src/tsdbRead.c
浏览文件 @
067e32d3
...
@@ -2217,7 +2217,8 @@ int32_t tsdbQuerySTableByTagCond(TSDB_REPO_T* tsdb, uint64_t uid, const char* pT
...
@@ -2217,7 +2217,8 @@ int32_t tsdbQuerySTableByTagCond(TSDB_REPO_T* tsdb, uint64_t uid, const char* pT
}
CATCH
(
code
)
{
}
CATCH
(
code
)
{
CLEANUP_EXECUTE
();
CLEANUP_EXECUTE
();
ret
=
code
;
terrno
=
code
;
goto
_error
;
// TODO: more error handling
// TODO: more error handling
}
END_TRY
}
END_TRY
...
...
src/util/inc/exception.h
浏览文件 @
067e32d3
...
@@ -78,6 +78,7 @@ void cleanupPush_int_ptr ( bool failOnly, void* func, void* arg );
...
@@ -78,6 +78,7 @@ void cleanupPush_int_ptr ( bool failOnly, void* func, void* arg );
int32_t
cleanupGetActionCount
();
int32_t
cleanupGetActionCount
();
void
cleanupExecuteTo
(
int32_t
anchor
,
bool
failed
);
void
cleanupExecuteTo
(
int32_t
anchor
,
bool
failed
);
void
cleanupExecute
(
SExceptionNode
*
node
,
bool
failed
);
void
cleanupExecute
(
SExceptionNode
*
node
,
bool
failed
);
bool
cleanupExceedLimit
();
#define CLEANUP_PUSH_VOID_PTR_PTR( failOnly, func, arg1, arg2 ) cleanupPush_void_ptr_ptr( (failOnly), (void*)(func), (void*)(arg1), (void*)(arg2) )
#define CLEANUP_PUSH_VOID_PTR_PTR( failOnly, func, arg1, arg2 ) cleanupPush_void_ptr_ptr( (failOnly), (void*)(func), (void*)(arg1), (void*)(arg2) )
#define CLEANUP_PUSH_VOID_PTR_BOOL( failOnly, func, arg1, arg2 ) cleanupPush_void_ptr_bool( (failOnly), (void*)(func), (void*)(arg1), (bool)(arg2) )
#define CLEANUP_PUSH_VOID_PTR_BOOL( failOnly, func, arg1, arg2 ) cleanupPush_void_ptr_bool( (failOnly), (void*)(func), (void*)(arg1), (bool)(arg2) )
...
@@ -91,7 +92,7 @@ void cleanupExecute( SExceptionNode* node, bool failed );
...
@@ -91,7 +92,7 @@ void cleanupExecute( SExceptionNode* node, bool failed );
#define CLEANUP_GET_ANCHOR() cleanupGetActionCount()
#define CLEANUP_GET_ANCHOR() cleanupGetActionCount()
#define CLEANUP_EXECUTE_TO( anchor, failed ) cleanupExecuteTo( (anchor), (failed) )
#define CLEANUP_EXECUTE_TO( anchor, failed ) cleanupExecuteTo( (anchor), (failed) )
#define CLEANUP_EXCEED_LIMIT() cleanupExceedLimit()
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// functions & macros for exception handling
// functions & macros for exception handling
...
...
src/util/inc/tfile.h
浏览文件 @
067e32d3
...
@@ -19,13 +19,14 @@
...
@@ -19,13 +19,14 @@
#ifdef TAOS_RANDOM_FILE_FAIL
#ifdef TAOS_RANDOM_FILE_FAIL
void
taosSetRandomFileFailFactor
(
int
factor
);
void
taosSetRandomFileFailFactor
(
int
factor
);
ssize_t
taos_tread
(
int
fd
,
void
*
buf
,
size_t
count
);
void
taosSetRandomFileFailOutput
(
const
char
*
path
);
ssize_t
taos_twrite
(
int
fd
,
void
*
buf
,
size_t
count
);
ssize_t
taos_tread
(
int
fd
,
void
*
buf
,
size_t
count
,
const
char
*
file
,
uint32_t
line
);
off_t
taos_lseek
(
int
fd
,
off_t
offset
,
int
whence
);
ssize_t
taos_twrite
(
int
fd
,
void
*
buf
,
size_t
count
,
const
char
*
file
,
uint32_t
line
);
off_t
taos_lseek
(
int
fd
,
off_t
offset
,
int
whence
,
const
char
*
file
,
uint32_t
line
);
#define tread(fd, buf, count) taos_tread(fd, buf, count)
#define tread(fd, buf, count) taos_tread(fd, buf, count
, __FILE__, __LINE__
)
#define twrite(fd, buf, count) taos_twrite(fd, buf, count)
#define twrite(fd, buf, count) taos_twrite(fd, buf, count
, __FILE__, __LINE__
)
#define lseek(fd, offset, whence) taos_lseek(fd, offset, whence)
#define lseek(fd, offset, whence) taos_lseek(fd, offset, whence
, __FILE__, __LINE__
)
#endif // TAOS_RANDOM_FILE_FAIL
#endif // TAOS_RANDOM_FILE_FAIL
...
...
src/util/src/exception.c
浏览文件 @
067e32d3
...
@@ -147,3 +147,6 @@ void cleanupExecuteTo( int32_t anchor, bool failed ) {
...
@@ -147,3 +147,6 @@ void cleanupExecuteTo( int32_t anchor, bool failed ) {
void
cleanupExecute
(
SExceptionNode
*
node
,
bool
failed
)
{
void
cleanupExecute
(
SExceptionNode
*
node
,
bool
failed
)
{
doExecuteCleanup
(
node
,
0
,
failed
);
doExecuteCleanup
(
node
,
0
,
failed
);
}
}
bool
cleanupExceedLimit
()
{
return
expList
->
numCleanupAction
>=
expList
->
maxCleanupAction
;
}
src/util/src/tfile.c
浏览文件 @
067e32d3
...
@@ -29,14 +29,55 @@
...
@@ -29,14 +29,55 @@
#ifdef TAOS_RANDOM_FILE_FAIL
#ifdef TAOS_RANDOM_FILE_FAIL
static
int
random_file_fail_factor
=
20
;
static
int
random_file_fail_factor
=
20
;
static
FILE
*
fpRandomFileFailOutput
=
NULL
;
void
taosSetRandomFileFailFactor
(
int
factor
)
void
taosSetRandomFileFailFactor
(
int
factor
)
{
{
random_file_fail_factor
=
factor
;
random_file_fail_factor
=
factor
;
}
}
static
void
close_random_file_fail_output
()
{
if
(
fpRandomFileFailOutput
!=
NULL
)
{
if
(
fpRandomFileFailOutput
!=
stdout
)
{
fclose
(
fpRandomFileFailOutput
);
}
fpRandomFileFailOutput
=
NULL
;
}
}
static
void
random_file_fail_output_sig
(
int
sig
)
{
fprintf
(
fpRandomFileFailOutput
,
"signal %d received.
\n
"
,
sig
);
struct
sigaction
act
=
{
0
};
act
.
sa_handler
=
SIG_DFL
;
sigaction
(
sig
,
&
act
,
NULL
);
close_random_file_fail_output
();
exit
(
EXIT_FAILURE
);
}
void
taosSetRandomFileFailOutput
(
const
char
*
path
)
{
if
(
path
==
NULL
)
{
fpRandomFileFailOutput
=
stdout
;
}
else
if
((
fpRandomFileFailOutput
=
fopen
(
path
,
"w"
))
!=
NULL
)
{
atexit
(
close_random_file_fail_output
);
}
else
{
printf
(
"failed to open random file fail log file '%s', errno=%d
\n
"
,
path
,
errno
);
return
;
}
struct
sigaction
act
=
{
0
};
act
.
sa_handler
=
random_file_fail_output_sig
;
sigaction
(
SIGFPE
,
&
act
,
NULL
);
sigaction
(
SIGSEGV
,
&
act
,
NULL
);
sigaction
(
SIGILL
,
&
act
,
NULL
);
}
#endif
#endif
ssize_t
taos_tread
(
int
fd
,
void
*
buf
,
size_t
count
)
ssize_t
taos_tread
(
int
fd
,
void
*
buf
,
size_t
count
,
const
char
*
file
,
uint32_t
line
)
{
{
#ifdef TAOS_RANDOM_FILE_FAIL
#ifdef TAOS_RANDOM_FILE_FAIL
if
(
random_file_fail_factor
>
0
)
{
if
(
random_file_fail_factor
>
0
)
{
...
@@ -49,7 +90,7 @@ ssize_t taos_tread(int fd, void *buf, size_t count)
...
@@ -49,7 +90,7 @@ ssize_t taos_tread(int fd, void *buf, size_t count)
return
tread
(
fd
,
buf
,
count
);
return
tread
(
fd
,
buf
,
count
);
}
}
ssize_t
taos_twrite
(
int
fd
,
void
*
buf
,
size_t
count
)
ssize_t
taos_twrite
(
int
fd
,
void
*
buf
,
size_t
count
,
const
char
*
file
,
uint32_t
line
)
{
{
#ifdef TAOS_RANDOM_FILE_FAIL
#ifdef TAOS_RANDOM_FILE_FAIL
if
(
random_file_fail_factor
>
0
)
{
if
(
random_file_fail_factor
>
0
)
{
...
@@ -62,7 +103,7 @@ ssize_t taos_twrite(int fd, void *buf, size_t count)
...
@@ -62,7 +103,7 @@ ssize_t taos_twrite(int fd, void *buf, size_t count)
return
twrite
(
fd
,
buf
,
count
);
return
twrite
(
fd
,
buf
,
count
);
}
}
off_t
taos_lseek
(
int
fd
,
off_t
offset
,
int
whence
)
off_t
taos_lseek
(
int
fd
,
off_t
offset
,
int
whence
,
const
char
*
file
,
uint32_t
line
)
{
{
#ifdef TAOS_RANDOM_FILE_FAIL
#ifdef TAOS_RANDOM_FILE_FAIL
if
(
random_file_fail_factor
>
0
)
{
if
(
random_file_fail_factor
>
0
)
{
...
...
src/vnode/src/vnodeMain.c
浏览文件 @
067e32d3
...
@@ -59,7 +59,7 @@ int32_t vnodeInitResources() {
...
@@ -59,7 +59,7 @@ int32_t vnodeInitResources() {
vnodeInitWriteFp
();
vnodeInitWriteFp
();
vnodeInitReadFp
();
vnodeInitReadFp
();
tsDnodeVnodesHash
=
taosHashInit
(
TSDB_M
AX
_VNODES
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_INT
),
true
);
tsDnodeVnodesHash
=
taosHashInit
(
TSDB_M
IN
_VNODES
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_INT
),
true
);
if
(
tsDnodeVnodesHash
==
NULL
)
{
if
(
tsDnodeVnodesHash
==
NULL
)
{
vError
(
"failed to init vnode list"
);
vError
(
"failed to init vnode list"
);
return
TSDB_CODE_VND_OUT_OF_MEMORY
;
return
TSDB_CODE_VND_OUT_OF_MEMORY
;
...
...
src/vnode/src/vnodeRead.c
浏览文件 @
067e32d3
...
@@ -155,7 +155,7 @@ static int32_t vnodeProcessFetchMsg(SVnodeObj *pVnode, SReadMsg *pReadMsg) {
...
@@ -155,7 +155,7 @@ static int32_t vnodeProcessFetchMsg(SVnodeObj *pVnode, SReadMsg *pReadMsg) {
pRetrieve
->
qhandle
=
htobe64
(
pRetrieve
->
qhandle
);
pRetrieve
->
qhandle
=
htobe64
(
pRetrieve
->
qhandle
);
pRetrieve
->
free
=
htons
(
pRetrieve
->
free
);
pRetrieve
->
free
=
htons
(
pRetrieve
->
free
);
vDebug
(
"vgId:%d, QInfo:%p, retrieve msg is disposed"
,
pVnode
->
vgId
,
*
(
void
*
*
)
pRetrieve
->
qhandle
);
vDebug
(
"vgId:%d, QInfo:%p, retrieve msg is disposed"
,
pVnode
->
vgId
,
(
void
*
)
pRetrieve
->
qhandle
);
memset
(
pRet
,
0
,
sizeof
(
SRspRet
));
memset
(
pRet
,
0
,
sizeof
(
SRspRet
));
...
...
src/vnode/src/vnodeWrite.c
浏览文件 @
067e32d3
...
@@ -184,6 +184,8 @@ int vnodeWriteToQueue(void *param, void *data, int type) {
...
@@ -184,6 +184,8 @@ int vnodeWriteToQueue(void *param, void *data, int type) {
memcpy
(
pWal
,
pHead
,
size
);
memcpy
(
pWal
,
pHead
,
size
);
atomic_add_fetch_32
(
&
pVnode
->
refCount
,
1
);
atomic_add_fetch_32
(
&
pVnode
->
refCount
,
1
);
vDebug
(
"vgId:%d, get vnode wqueue, refCount:%d"
,
pVnode
->
vgId
,
pVnode
->
refCount
);
taosWriteQitem
(
pVnode
->
wqueue
,
type
,
pWal
);
taosWriteQitem
(
pVnode
->
wqueue
,
type
,
pWal
);
return
0
;
return
0
;
...
...
tests/CMakeLists.txt
浏览文件 @
067e32d3
...
@@ -12,3 +12,4 @@ SET(CMAKE_VERBOSE_MAKEFILE ON)
...
@@ -12,3 +12,4 @@ SET(CMAKE_VERBOSE_MAKEFILE ON)
ADD_SUBDIRECTORY
(
examples/c
)
ADD_SUBDIRECTORY
(
examples/c
)
ADD_SUBDIRECTORY
(
tsim
)
ADD_SUBDIRECTORY
(
tsim
)
ADD_SUBDIRECTORY
(
test/c
)
ADD_SUBDIRECTORY
(
test/c
)
ADD_SUBDIRECTORY
(
comparisonTest/tdengine
)
tests/comparisonTest/tdengine/CMakeLists.txt
0 → 100644
浏览文件 @
067e32d3
CMAKE_MINIMUM_REQUIRED
(
VERSION 2.8
)
PROJECT
(
TDengine
)
INCLUDE_DIRECTORIES
(
${
TD_COMMUNITY_DIR
}
/src/inc
)
INCLUDE_DIRECTORIES
(
${
TD_COMMUNITY_DIR
}
/src/util/inc
)
INCLUDE_DIRECTORIES
(
${
TD_COMMUNITY_DIR
}
/src/common/inc
)
INCLUDE_DIRECTORIES
(
${
TD_OS_DIR
}
/inc
)
IF
((
TD_LINUX_64
)
OR
(
TD_LINUX_32 AND TD_ARM
))
add_executable
(
tdengineTest tdengineTest.c
)
target_link_libraries
(
tdengineTest taos_static tutil common pthread
)
ENDIF
()
tests/comparisonTest/tdengine/tdengineTest.c
浏览文件 @
067e32d3
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
#include <time.h>
#include <time.h>
#include <pthread.h>
#include <pthread.h>
#include <sys/time.h>
#include <sys/time.h>
#include <inttypes.h>
typedef
struct
{
typedef
struct
{
char
sql
[
256
];
char
sql
[
256
];
...
@@ -123,19 +124,21 @@ void writeDataImp(void *param) {
...
@@ -123,19 +124,21 @@ void writeDataImp(void *param) {
if
(
taos
==
NULL
)
if
(
taos
==
NULL
)
taos_error
(
taos
);
taos_error
(
taos
);
int
code
=
taos_query
(
taos
,
"use db"
);
TAOS_RES
*
result
=
taos_query
(
taos
,
"use db"
);
int32_t
code
=
taos_errno
(
result
);
if
(
code
!=
0
)
{
if
(
code
!=
0
)
{
taos_error
(
taos
);
taos_error
(
taos
);
}
}
taos_free_result
(
result
);
char
sql
[
65000
]
;
char
*
sql
=
calloc
(
1
,
8
*
1024
*
1024
)
;
int
sqlLen
=
0
;
int
sqlLen
=
0
;
int
lastMachineid
=
0
;
int
lastMachineid
=
0
;
int
counter
=
0
;
int
counter
=
0
;
int
totalRecords
=
0
;
int
totalRecords
=
0
;
for
(
int
j
=
pThread
->
sID
;
j
<=
pThread
->
eID
;
j
++
)
{
for
(
int
j
=
pThread
->
sID
;
j
<=
pThread
->
eID
;
j
++
)
{
char
fileName
[
256
];
char
fileName
[
300
];
sprintf
(
fileName
,
"%s/testdata%d.csv"
,
arguments
.
dataDir
,
j
);
sprintf
(
fileName
,
"%s/testdata%d.csv"
,
arguments
.
dataDir
,
j
);
FILE
*
fp
=
fopen
(
fileName
,
"r"
);
FILE
*
fp
=
fopen
(
fileName
,
"r"
);
...
@@ -162,7 +165,7 @@ void writeDataImp(void *param) {
...
@@ -162,7 +165,7 @@ void writeDataImp(void *param) {
int64_t
timestamp
;
int64_t
timestamp
;
int
temperature
;
int
temperature
;
float
humidity
;
float
humidity
;
sscanf
(
line
,
"%d%s%d%
lld
%d%f"
,
&
machineid
,
machinename
,
&
machinegroup
,
&
timestamp
,
&
temperature
,
&
humidity
);
sscanf
(
line
,
"%d%s%d%
"
PRId64
"
%d%f"
,
&
machineid
,
machinename
,
&
machinegroup
,
&
timestamp
,
&
temperature
,
&
humidity
);
if
(
counter
==
0
)
{
if
(
counter
==
0
)
{
sqlLen
=
sprintf
(
sql
,
"insert into"
);
sqlLen
=
sprintf
(
sql
,
"insert into"
);
...
@@ -174,14 +177,16 @@ void writeDataImp(void *param) {
...
@@ -174,14 +177,16 @@ void writeDataImp(void *param) {
machineid
,
machineid
,
machinename
,
machinegroup
);
machineid
,
machineid
,
machinename
,
machinegroup
);
}
}
sqlLen
+=
sprintf
(
sql
+
sqlLen
,
"(%
lld
,%d,%f)"
,
timestamp
,
temperature
,
humidity
);
sqlLen
+=
sprintf
(
sql
+
sqlLen
,
"(%
"
PRId64
"
,%d,%f)"
,
timestamp
,
temperature
,
humidity
);
counter
++
;
counter
++
;
if
(
counter
>=
arguments
.
rowsPerRequest
)
{
if
(
counter
>=
arguments
.
rowsPerRequest
)
{
int
code
=
taos_query
(
taos
,
sql
);
TAOS_RES
*
result
=
taos_query
(
taos
,
sql
);
int32_t
code
=
taos_errno
(
result
);
if
(
code
!=
0
)
{
if
(
code
!=
0
)
{
printf
(
"thread:%d error:%d reason:%s
\n
"
,
pThread
->
pi
d
,
code
,
taos_errstr
(
taos
));
printf
(
"thread:%d error:%d reason:%s
\n
"
,
pThread
->
threadI
d
,
code
,
taos_errstr
(
taos
));
}
}
taos_free_result
(
result
);
totalRecords
+=
counter
;
totalRecords
+=
counter
;
counter
=
0
;
counter
=
0
;
...
@@ -194,15 +199,18 @@ void writeDataImp(void *param) {
...
@@ -194,15 +199,18 @@ void writeDataImp(void *param) {
}
}
if
(
counter
>
0
)
{
if
(
counter
>
0
)
{
int
code
=
taos_query
(
taos
,
sql
);
TAOS_RES
*
result
=
taos_query
(
taos
,
sql
);
int32_t
code
=
taos_errno
(
result
);
if
(
code
!=
0
)
{
if
(
code
!=
0
)
{
printf
(
"thread:%d error:%d reason:%s
\n
"
,
pThread
->
pi
d
,
code
,
taos_errstr
(
taos
));
printf
(
"thread:%d error:%d reason:%s
\n
"
,
pThread
->
threadI
d
,
code
,
taos_errstr
(
taos
));
}
}
taos_free_result
(
result
);
totalRecords
+=
counter
;
totalRecords
+=
counter
;
}
}
__sync_fetch_and_add
(
&
statis
.
totalRows
,
totalRecords
);
__sync_fetch_and_add
(
&
statis
.
totalRows
,
totalRecords
);
free
(
sql
);
}
}
void
writeData
()
{
void
writeData
()
{
...
@@ -215,19 +223,23 @@ void writeData() {
...
@@ -215,19 +223,23 @@ void writeData() {
taos_init
();
taos_init
();
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
if
(
taos
==
NULL
)
taos_error
(
taos
);
taos_error
(
taos
);
int
code
=
taos_query
(
taos
,
"create database if not exists db"
);
TAOS_RES
*
result
=
taos_query
(
taos
,
"create database if not exists db"
);
int32_t
code
=
taos_errno
(
result
);
if
(
code
!=
0
)
{
if
(
code
!=
0
)
{
taos_error
(
taos
);
taos_error
(
taos
);
}
}
taos_free_result
(
result
);
code
=
taos_query
(
taos
,
"create table if not exists db.devices(ts timestamp, temperature int, humidity float) "
result
=
taos_query
(
taos
,
"tags(devid int, devname binary(16), devgroup int)"
);
"create table if not exists db.devices(ts timestamp, temperature int, humidity float) "
"tags(devid int, devname binary(16), devgroup int)"
);
code
=
taos_errno
(
result
);
if
(
code
!=
0
)
{
if
(
code
!=
0
)
{
taos_error
(
taos
);
taos_error
(
taos
);
}
}
taos_free_result
(
result
);
int64_t
st
=
getTimeStampMs
();
int64_t
st
=
getTimeStampMs
();
...
@@ -292,17 +304,12 @@ void readData() {
...
@@ -292,17 +304,12 @@ void readData() {
int64_t
st
=
getTimeStampMs
();
int64_t
st
=
getTimeStampMs
();
int
code
=
taos_query
(
taos
,
line
);
TAOS_RES
*
result
=
taos_query
(
taos
,
line
);
int32_t
code
=
taos_errno
(
result
);
if
(
code
!=
0
)
{
if
(
code
!=
0
)
{
taos_error
(
taos
);
taos_error
(
taos
);
}
}
void
*
result
=
taos_use_result
(
taos
);
if
(
result
==
NULL
)
{
printf
(
"failed to get result, reason:%s
\n
"
,
taos_errstr
(
taos
));
exit
(
1
);
}
TAOS_ROW
row
;
TAOS_ROW
row
;
int
rows
=
0
;
int
rows
=
0
;
//int num_fields = taos_field_count(taos);
//int num_fields = taos_field_count(taos);
...
...
tests/pytest/util/dnodes.py
浏览文件 @
067e32d3
...
@@ -28,7 +28,9 @@ class TDSimClient:
...
@@ -28,7 +28,9 @@ class TDSimClient:
"locale"
:
"en_US.UTF-8"
,
"locale"
:
"en_US.UTF-8"
,
"charset"
:
"UTF-8"
,
"charset"
:
"UTF-8"
,
"asyncLog"
:
"0"
,
"asyncLog"
:
"0"
,
"maxTablesPerVnode"
:
"4"
,
"minTablesPerVnode"
:
"4"
,
"maxTablesPerVnode"
:
"1000"
,
"tableIncStepPerVnode"
:
"10000"
,
"maxVgroupsPerDb"
:
"1000"
,
"maxVgroupsPerDb"
:
"1000"
,
"sdbDebugFlag"
:
"143"
,
"sdbDebugFlag"
:
"143"
,
"rpcDebugFlag"
:
"135"
,
"rpcDebugFlag"
:
"135"
,
...
...
tests/script/sh/deploy.sh
浏览文件 @
067e32d3
...
@@ -110,7 +110,7 @@ echo "second ${HOSTNAME}:7200" >> $TAOS_CFG
...
@@ -110,7 +110,7 @@ echo "second ${HOSTNAME}:7200" >> $TAOS_CFG
echo
"serverPort
${
NODE
}
"
>>
$TAOS_CFG
echo
"serverPort
${
NODE
}
"
>>
$TAOS_CFG
echo
"dataDir
$DATA_DIR
"
>>
$TAOS_CFG
echo
"dataDir
$DATA_DIR
"
>>
$TAOS_CFG
echo
"logDir
$LOG_DIR
"
>>
$TAOS_CFG
echo
"logDir
$LOG_DIR
"
>>
$TAOS_CFG
echo
"debugFlag 13
5
"
>>
$TAOS_CFG
echo
"debugFlag 13
1
"
>>
$TAOS_CFG
echo
"mDebugFlag 135"
>>
$TAOS_CFG
echo
"mDebugFlag 135"
>>
$TAOS_CFG
echo
"sdbDebugFlag 135"
>>
$TAOS_CFG
echo
"sdbDebugFlag 135"
>>
$TAOS_CFG
echo
"dDebugFlag 135"
>>
$TAOS_CFG
echo
"dDebugFlag 135"
>>
$TAOS_CFG
...
@@ -139,7 +139,9 @@ echo "clog 2" >> $TAOS_CFG
...
@@ -139,7 +139,9 @@ echo "clog 2" >> $TAOS_CFG
echo
"statusInterval 1"
>>
$TAOS_CFG
echo
"statusInterval 1"
>>
$TAOS_CFG
echo
"numOfTotalVnodes 4"
>>
$TAOS_CFG
echo
"numOfTotalVnodes 4"
>>
$TAOS_CFG
echo
"maxVgroupsPerDb 4"
>>
$TAOS_CFG
echo
"maxVgroupsPerDb 4"
>>
$TAOS_CFG
echo
"minTablesPerVnode 4"
>>
$TAOS_CFG
echo
"maxTablesPerVnode 1000"
>>
$TAOS_CFG
echo
"maxTablesPerVnode 1000"
>>
$TAOS_CFG
echo
"tableIncStepPerVnode 10000"
>>
$TAOS_CFG
echo
"asyncLog 0"
>>
$TAOS_CFG
echo
"asyncLog 0"
>>
$TAOS_CFG
echo
"numOfMnodes 1"
>>
$TAOS_CFG
echo
"numOfMnodes 1"
>>
$TAOS_CFG
echo
"locale en_US.UTF-8"
>>
$TAOS_CFG
echo
"locale en_US.UTF-8"
>>
$TAOS_CFG
...
...
tests/script/tmp/prepare.sim
浏览文件 @
067e32d3
...
@@ -25,10 +25,15 @@ system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 20
...
@@ -25,10 +25,15 @@ system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 20
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 20
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 20
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 20
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 20
system sh/cfg.sh -n dnode1 -c maxVgroupsPerDb -v 20
system sh/cfg.sh -n dnode1 -c maxVgroupsPerDb -v 2
system sh/cfg.sh -n dnode2 -c maxVgroupsPerDb -v 20
system sh/cfg.sh -n dnode2 -c maxVgroupsPerDb -v 2
system sh/cfg.sh -n dnode3 -c maxVgroupsPerDb -v 20
system sh/cfg.sh -n dnode3 -c maxVgroupsPerDb -v 2
system sh/cfg.sh -n dnode4 -c maxVgroupsPerDb -v 20
system sh/cfg.sh -n dnode4 -c maxVgroupsPerDb -v 2
system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 100000
system sh/cfg.sh -n dnode2 -c maxTablesPerVnode -v 100000
system sh/cfg.sh -n dnode3 -c maxTablesPerVnode -v 100000
system sh/cfg.sh -n dnode4 -c maxTablesPerVnode -v 100000
system sh/cfg.sh -n dnode1 -c http -v 1
system sh/cfg.sh -n dnode1 -c http -v 1
system sh/cfg.sh -n dnode2 -c http -v 1
system sh/cfg.sh -n dnode2 -c http -v 1
...
...
tests/script/unique/cluster/client3.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 0
$tblEnd = 10000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
loop_lable:
print ====================== client3 start loop: dynamic create table and insert data, select, drop table ............
$totalRows = 0
#sql create table $stb ( ts timestamp, c1 int) tags ( t1 int, t2 binary(16) )
$tagBinary = ' . client3
$tagBinary = $tagBinary . '
$rowsPerLoop = 100
$ts = $tsStart
$i = $tblStart
while $i < $tblEnd
$tb = dtb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb using $stb tags ( $i , $tagBinary ) values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
# print ====== app insert totalRows: $totalRows
$i = $i + 1
endw
sql select count(*) from $stb where t2 == $tagBinary
if $data00 != $totalRows then
print data00 $data00 totalRows $totalRows
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client3 insert loss: $deltaRows *****
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
endi
print ====================== client3 drop table
$i = $tblStart
while $i < $tblEnd
$tb = dtb . $i
sql drop table if exists $tb
$i = $i + 1
endw
goto loop_lable
\ No newline at end of file
tests/script/unique/cluster/client4.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 0
$tblEnd = 2000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
loop_lable:
print ====================== client4 start loop: create db2, tables and insert data, select, drop db2 ............
$db = db2
$stb = stb2
print create database if not exists $db replica 2
sql create database if not exists $db replica 2
sql use $db
print ==== client4start create table
$i = $tblStart
while $i < $tblEnd
$tb = dtb . $i
sql create table $tb (ts timestamp, c1 int)
$i = $i + 1
endw
print ==== client4start insert, include multi table data in one insert sql
$totalRows = 0
$totalRowsPerTbl = 0
$rowsPerLoop = 100
$ts = $tsStart
$i = $tblStart
while $i < $tblEnd
$tb0 = dtb . $i
$i = $i + 1
$tb1 = dtb . $i
$i = $i + 1
$tb2 = dtb . $i
$i = $i + 1
$tb3 = dtb . $i
$i = $i + 1
$tb4 = dtb . $i
$i = $i + 1
$x = 0
while $x < $rowsPerLoop
sql insert into $tb0 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb1 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb2 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb3 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb4 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRowsPerTbl = $totalRowsPerTbl + $x
$x = $x * 5
$totalRows = $totalRows + $x
endw
sql select count(*) from tb10
if $data00 != $totalRowsPerTbl then
print data00 $data00 totalRowsPerTbl $totalRowsPerTbl
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client4 insert loss: $deltaRows *****
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
endi
print ====client4 start alter table
$i = $tblStart
while $i < $tblEnd
$tb = dtb . $i
sql alter table $tb add c2 float
$i = $i + 1
endw
print ====client4 continue insert, include multi table data in one insert sql
$i = $tblStart
while $i < $tblEnd
$tb0 = dtb . $i
$i = $i + 1
$tb1 = dtb . $i
$i = $i + 1
$tb2 = dtb . $i
$i = $i + 1
$tb3 = dtb . $i
$i = $i + 1
$tb4 = dtb . $i
$i = $i + 1
$x = 0
while $x < $rowsPerLoop
sql insert into $tb0 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb1 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb2 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb3 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb4 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRowsPerTbl = $totalRowsPerTbl + $x
$x = $x * 5
$totalRows = $totalRows + $x
endw
sql select count(*) from tb10
if $data00 != $totalRowsPerTbl then
print data00 $data00 totalRowsPerTbl $totalRowsPerTbl
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client4 insert loss: $deltaRows *****
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
endi
print ====================== client4 drop database
sql drop if exists database $db
goto loop_lable
\ No newline at end of file
tests/script/unique/cluster/client5.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 0
$tblEnd = 2000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
loop_lable:
print ====================== client5 start loop query
$db = db2
$stb = stb2
print create database if not exists $db replica 2
sql create database if not exists $db replica 2
sql use $db
print ==== client4start create table
$i = $tblStart
while $i < $tblEnd
$tb = dtb . $i
sql create table $tb (ts timestamp, c1 int)
$i = $i + 1
endw
print ==== client4start insert, include multi table data in one insert sql
$totalRows = 0
$totalRowsPerTbl = 0
$rowsPerLoop = 100
$ts = $tsStart
$i = $tblStart
while $i < $tblEnd
$tb0 = dtb . $i
$i = $i + 1
$tb1 = dtb . $i
$i = $i + 1
$tb2 = dtb . $i
$i = $i + 1
$tb3 = dtb . $i
$i = $i + 1
$tb4 = dtb . $i
$i = $i + 1
$x = 0
while $x < $rowsPerLoop
sql insert into $tb0 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb1 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb2 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb3 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb4 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRowsPerTbl = $totalRowsPerTbl + $x
$x = $x * 5
$totalRows = $totalRows + $x
endw
sql select count(*) from tb10
if $data00 != $totalRowsPerTbl then
print data00 $data00 totalRowsPerTbl $totalRowsPerTbl
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client4 insert loss: $deltaRows *****
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
endi
print ====client4 start alter table
$i = $tblStart
while $i < $tblEnd
$tb = dtb . $i
sql alter table $tb add c2 float
$i = $i + 1
endw
print ====client4 continue insert, include multi table data in one insert sql
$i = $tblStart
while $i < $tblEnd
$tb0 = dtb . $i
$i = $i + 1
$tb1 = dtb . $i
$i = $i + 1
$tb2 = dtb . $i
$i = $i + 1
$tb3 = dtb . $i
$i = $i + 1
$tb4 = dtb . $i
$i = $i + 1
$x = 0
while $x < $rowsPerLoop
sql insert into $tb0 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb1 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb2 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb3 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) $tb4 values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRowsPerTbl = $totalRowsPerTbl + $x
$x = $x * 5
$totalRows = $totalRows + $x
endw
sql select count(*) from tb10
if $data00 != $totalRowsPerTbl then
print data00 $data00 totalRowsPerTbl $totalRowsPerTbl
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client4 insert loss: $deltaRows *****
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
endi
print ====================== client4 drop database
sql drop if exists database $db
goto loop_lable
\ No newline at end of file
tests/script/unique/cluster/cluster_main.sim
浏览文件 @
067e32d3
...
@@ -71,7 +71,7 @@ print ============== step3: create stable stb1
...
@@ -71,7 +71,7 @@ print ============== step3: create stable stb1
$stb = stb1
$stb = stb1
sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
print ============== step4: start
10 client1/ 10 client2/ 10 client3/ 10 client4/ 1 client5
print ============== step4: start
back client1_0.sim
run_back unique/cluster/client1_0.sim
run_back unique/cluster/client1_0.sim
#run_back unique/cluster/client1_1.sim
#run_back unique/cluster/client1_1.sim
#run_back unique/cluster/client1_2.sim
#run_back unique/cluster/client1_2.sim
...
@@ -106,26 +106,26 @@ endi
...
@@ -106,26 +106,26 @@ endi
print wait for a while to let clients start insert data
print wait for a while to let clients start insert data
sleep 5000
sleep 5000
print ============== step4-1: add dnode4/dnode5 into cluster
sql create dnode $hostname4
sql create dnode $hostname5
$loop_cnt = 0
$loop_cnt = 0
loop_cluster_do:
loop_cluster_do:
print **** **** **** START loop cluster do (loop_cnt: $loop_cnt )**** **** **** ****
print **** **** **** START loop cluster do (loop_cnt: $loop_cnt )**** **** **** ****
print ============== step5: start dnode4/dnode5
and add into cluster, then wait ready
print ============== step5: start dnode4/dnode5
system sh/exec.sh -n dnode4 -s start
system sh/exec.sh -n dnode4 -s start
system sh/exec.sh -n dnode5 -s start
system sh/exec.sh -n dnode5 -s start
sql create dnode $hostname4
sleep 20000
sql create dnode $hostname5
sleep 5000
print ============== step6: stop
and drop dnode1, then remove data dir of dnode1
print ============== step6: stop
dnode1
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
10
000
sql drop dnode $hostname1
#
sql drop dnode $hostname1
sleep 5000
#
sleep 5000
system rm -rf ../../../sim/dnode1/data
#
system rm -rf ../../../sim/dnode1/data
sleep 20000
#
sleep 20000
sql show mnodes
sql show mnodes
print show mnodes
print show mnodes
...
@@ -139,7 +139,22 @@ print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
...
@@ -139,7 +139,22 @@ print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
return -1
print ============== step6-1: restart dnode1
system sh/exec.sh -n dnode1 -s start
sleep 10000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step7: stop dnode2
print ============== step7: stop dnode2
system sh/exec.sh -n dnode2 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT
...
@@ -236,14 +251,17 @@ if $data04 != 2 then
...
@@ -236,14 +251,17 @@ if $data04 != 2 then
return -1
return -1
endi
endi
print ============== step14: stop
and drop dnode4/dnode5, then remove data dir of dnode4/dnode5
print ============== step14: stop
dnode4/dnode5
system sh/exec.sh -n dnode4 -s stop -x SIGINT
system sh/exec.sh -n dnode4 -s stop -x SIGINT
system sh/exec.sh -n dnode5 -s stop -x SIGINT
system sh/exec.sh -n dnode5 -s stop -x SIGINT
sleep 20000
sleep 20000
sql drop dnode $hostname4
#system sh/exec.sh -n dnode4 -s start
sql drop dnode $hostname5
#system sh/exec.sh -n dnode5 -s start
system rm -rf ../../../sim/dnode4/data
#sleep 10000
system rm -rf ../../../sim/dnode5/data
#sql drop dnode $hostname4
#sql drop dnode $hostname5
#system rm -rf ../../../sim/dnode4/data
#system rm -rf ../../../sim/dnode5/data
print ============== step15: alter replica 1
print ============== step15: alter replica 1
sql alter database $db replica 1
sql alter database $db replica 1
...
@@ -263,13 +281,13 @@ if $data04 != 2 then
...
@@ -263,13 +281,13 @@ if $data04 != 2 then
return -1
return -1
endi
endi
print ============== step17: start dnode1 and add into cluster, then wait dnode1 ready
#
print ============== step17: start dnode1 and add into cluster, then wait dnode1 ready
system sh/cfg.sh -n dnode1 -c first -v $hostname2
#
system sh/cfg.sh -n dnode1 -c first -v $hostname2
system sh/cfg.sh -n dnode1 -c second -v $hostname3
#
system sh/cfg.sh -n dnode1 -c second -v $hostname3
#
system sh/exec.sh -n dnode1 -s start
#
system sh/exec.sh -n dnode1 -s start
sql create dnode $hostname1
#
sql create dnode $hostname1
sleep 20000
#
sleep 20000
print ============== step18: alter replica 3
print ============== step18: alter replica 3
sql alter database $db replica 3
sql alter database $db replica 3
...
...
tests/script/unique/cluster/cluster_main0.sim
0 → 100644
浏览文件 @
067e32d3
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/deploy.sh -n dnode2 -i 2
system sh/deploy.sh -n dnode3 -i 3
system sh/deploy.sh -n dnode4 -i 4
system sh/deploy.sh -n dnode5 -i 5
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode5 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode1 -c walLevel -v 1
system sh/cfg.sh -n dnode2 -c walLevel -v 1
system sh/cfg.sh -n dnode3 -c walLevel -v 1
system sh/cfg.sh -n dnode4 -c walLevel -v 1
system sh/cfg.sh -n dnode5 -c walLevel -v 1
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
system sh/cfg.sh -n dnode5 -c balanceInterval -v 10
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode5 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode1 -c alternativeRole -v 0
system sh/cfg.sh -n dnode2 -c alternativeRole -v 0
system sh/cfg.sh -n dnode3 -c alternativeRole -v 0
system sh/cfg.sh -n dnode4 -c alternativeRole -v 0
system sh/cfg.sh -n dnode5 -c alternativeRole -v 0
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode5 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode5 -c arbitrator -v $arbitrator
print ============== step0: start tarbitrator
system sh/exec_tarbitrator.sh -s start
print ============== step1: start dnode1/dnode2/dnode3
system sh/exec.sh -n dnode1 -s start
system sh/exec.sh -n dnode2 -s start
system sh/exec.sh -n dnode3 -s start
sleep 3000
sql connect
sql create dnode $hostname2
sql create dnode $hostname3
sleep 3000
print ============== step2: create db1 with replica 3
$db = db1
print create database $db replica 3
#sql create database $db replica 3 maxTables $totalTableNum
sql create database $db replica 3
sql use $db
print ============== step3: create stable stb1
$stb = stb1
print create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(16))
sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(16))
print ============== step4: start others client
run_back unique/cluster/client1_0.sim
run_back unique/cluster/client1_1.sim
run_back unique/cluster/client1_2.sim
run_back unique/cluster/client1_3.sim
#run_back unique/cluster/client2_0.sim
#run_back unique/cluster/client2_1.sim
#run_back unique/cluster/client2_2.sim
#run_back unique/cluster/client2_3.sim
#run_back unique/cluster/client3.sim
#run_back unique/cluster/client4.sim
sleep 20000
wait_subsim_insert_complete_create_tables:
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
if $data00 < 1000 then
sleep 3000
goto wait_subsim_insert_complete_create_tables
endi
wait_subsim_insert_data:
print select count(*) from $stb
sql select count(*) from $stb
print data00 $data00
if $data00 < 1000 then
sleep 3000
goto wait_subsim_insert_data
endi
print wait for a while to let clients start insert data
sleep 5000
$loop_cnt = 0
loop_cluster_do:
print **** **** **** START loop cluster do (loop_cnt: $loop_cnt )**** **** **** ****
print ============== step5: start dnode4/dnode5 and add into cluster, then wait ready
system sh/exec.sh -n dnode4 -s start
system sh/exec.sh -n dnode5 -s start
sql create dnode $hostname4
sql create dnode $hostname5
sleep 5000
print ============== step6: stop dnode1
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep 10000
#sql drop dnode $hostname1
#sleep 5000
#system rm -rf ../../../sim/dnode1/data
#sleep 20000
print ============== step6-1: restart dnode1
system sh/exec.sh -n dnode1 -s start
sleep 10000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step7: stop dnode2
system sh/exec.sh -n dnode2 -s stop -x SIGINT
sleep 5000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step8: restart dnode2, then wait sync end
system sh/exec.sh -n dnode2 -s start
sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step9: stop dnode3, then wait sync end
system sh/exec.sh -n dnode3 -s stop -x SIGINT
sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step10: restart dnode3, then wait sync end
system sh/exec.sh -n dnode3 -s start
sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step11: stop dnode4, then wait sync end
system sh/exec.sh -n dnode4 -s stop -x SIGINT
sleep 20000
print ============== step12: restart dnode4, then wait sync end
system sh/exec.sh -n dnode4 -s start
sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step13: alter replica 2
sql alter database $db replica 2
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data04 != 2 then
print rplica is not modify to 2, error!!!!!!
return -1
endi
print ============== step14: stop and drop dnode4/dnode5, then remove data dir of dnode4/dnode5
system sh/exec.sh -n dnode4 -s stop -x SIGINT
system sh/exec.sh -n dnode5 -s stop -x SIGINT
sleep 3000
sql drop dnode $hostname4
sql drop dnode $hostname5
system rm -rf ../../../sim/dnode4/data
system rm -rf ../../../sim/dnode5/data
sleep 20000
print ============== step15: alter replica 1
sql alter database $db replica 1
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data04 != 1 then
print rplica is not modify to 1, error!!!!!!
return -1
endi
print ============== step16: alter replica 2
sql alter database $db replica 2
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data04 != 2 then
print rplica is not modify to 2, error!!!!!!
return -1
endi
#print ============== step17: start dnode1 and add into cluster, then wait dnode1 ready
#system sh/cfg.sh -n dnode1 -c first -v $hostname2
#system sh/cfg.sh -n dnode1 -c second -v $hostname3
#
#system sh/exec.sh -n dnode1 -s start
#sql create dnode $hostname1
#sleep 20000
print ============== step18: alter replica 3
sql alter database $db replica 3
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data04 != 3 then
print rplica is not modify to 3, error!!!!!!
return -1
endi
print **** **** **** (loop_cnt: $loop_cnt ) end, continue...... **** **** **** ****
$loop_cnt = $loop_cnt + 1
goto loop_cluster_do
tests/script/unique/cluster/cluster_main1.sim
0 → 100644
浏览文件 @
067e32d3
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/deploy.sh -n dnode2 -i 2
system sh/deploy.sh -n dnode3 -i 3
system sh/deploy.sh -n dnode4 -i 4
system sh/deploy.sh -n dnode5 -i 5
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode5 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode1 -c walLevel -v 1
system sh/cfg.sh -n dnode2 -c walLevel -v 1
system sh/cfg.sh -n dnode3 -c walLevel -v 1
system sh/cfg.sh -n dnode4 -c walLevel -v 1
system sh/cfg.sh -n dnode5 -c walLevel -v 1
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
system sh/cfg.sh -n dnode5 -c balanceInterval -v 10
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode5 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode1 -c alternativeRole -v 0
system sh/cfg.sh -n dnode2 -c alternativeRole -v 0
system sh/cfg.sh -n dnode3 -c alternativeRole -v 0
system sh/cfg.sh -n dnode4 -c alternativeRole -v 0
system sh/cfg.sh -n dnode5 -c alternativeRole -v 0
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode5 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode5 -c arbitrator -v $arbitrator
print ============== step0: start tarbitrator
system sh/exec_tarbitrator.sh -s start
print ============== step1: start dnode1/dnode2/dnode3
system sh/exec.sh -n dnode1 -s start
system sh/exec.sh -n dnode2 -s start
system sh/exec.sh -n dnode3 -s start
sleep 3000
sql connect
sql create dnode $hostname2
sql create dnode $hostname3
sleep 3000
print ============== step2: create db1 with replica 3
$replica = 3
$db = db1
print create database $db replica $replica
#sql create database $db replica 3 maxTables $totalTableNum
sql create database $db replica $replica
sql use $db
print ============== step3: create stable stb1
$stb = stb1
print create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(16))
sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(16))
print ============== step4: start others client
run_back unique/cluster/main1_client1_0.sim
run_back unique/cluster/main1_client1_1.sim
run_back unique/cluster/main1_client1_2.sim
run_back unique/cluster/main1_client1_3.sim
run_back unique/cluster/client3.sim
run_back unique/cluster/client4.sim
sleep 20000
wait_subsim_insert_complete_create_tables:
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
if $data00 < 1000 then
sleep 3000
goto wait_subsim_insert_complete_create_tables
endi
wait_subsim_insert_data:
print select count(*) from $stb
sql select count(*) from $stb
print data00 $data00
if $data00 < 1000 then
sleep 3000
goto wait_subsim_insert_data
endi
print wait for a while to let clients start insert data
sleep 5000
print ============== step4-1: add dnode4/dnode5 into cluster
sql create dnode $hostname4
sql create dnode $hostname5
sleep 5000
$loop_cnt = 0
loop_cluster_do:
print **** **** **** START loop cluster do (loop_cnt: $loop_cnt )**** **** **** ****
print ============== step5: start dnode4/dnode5
system sh/exec.sh -n dnode4 -s start
system sh/exec.sh -n dnode5 -s start
sleep 20000
print ============== step6: stop dnode1
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep 10000
#sql drop dnode $hostname1
#sleep 5000
#system rm -rf ../../../sim/dnode1/data
#sleep 20000
print ============== step6-1: restart dnode1
system sh/exec.sh -n dnode1 -s start
sleep 10000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step7: stop dnode2
system sh/exec.sh -n dnode2 -s stop -x SIGINT
sleep 5000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step8: restart dnode2, then wait sync end
system sh/exec.sh -n dnode2 -s start
sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step9: stop dnode3, then wait sync end
system sh/exec.sh -n dnode3 -s stop -x SIGINT
sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step10: restart dnode3, then wait sync end
system sh/exec.sh -n dnode3 -s start
sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step11: stop dnode4, then wait sync end
system sh/exec.sh -n dnode4 -s stop -x SIGINT
sleep 20000
#print ============== step12: restart dnode4, then wait sync end
#system sh/exec.sh -n dnode4 -s start
#sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step13: alter replica 2
sql alter database $db replica 2
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
print $data10 $data11 $data12 $data13 $data14 $data15 $data16 $data17 $data18 $data19
if $data00 == db1 then
$replica = $data04
elif $data10 == db1 then
$replica = $data14
else then
print ==== db1 already not exists!!!!!
return -1
endi
if $replica != 2 then
print rplica is not modify to 2, error!!!!!!
return -1
endi
print ============== step14: stop dnode5
system sh/exec.sh -n dnode5 -s stop -x SIGINT
sleep 20000
#system rm -rf ../../../sim/dnode5/data
#print ============== step14-1: drop dnode5, then remove data dir
#sql drop dnode $hostname5
#sleep 20000
#system rm -rf ../../../sim/dnode5/data
print ============== step15: alter replica 1
sql alter database $db replica 1
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
print $data10 $data11 $data12 $data13 $data14 $data15 $data16 $data17 $data18 $data19
if $data00 == db1 then
$replica = $data04
elif $data10 == db1 then
$replica = $data14
else then
print ==== db1 already not exists!!!!!
return -1
endi
if $replica != 1 then
print rplica is not modify to 1, error!!!!!!
return -1
endi
print ============== step16: alter replica 2
sql alter database $db replica 2
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
print $data10 $data11 $data12 $data13 $data14 $data15 $data16 $data17 $data18 $data19
if $data00 == db1 then
$replica = $data04
elif $data10 == db1 then
$replica = $data14
else then
print ==== db1 already not exists!!!!!
return -1
endi
if $replica != 2 then
print rplica is not modify to 2, error!!!!!!
return -1
endi
#print ============== step17: start dnode1 and add into cluster, then wait dnode1 ready
#system sh/cfg.sh -n dnode1 -c first -v $hostname2
#system sh/cfg.sh -n dnode1 -c second -v $hostname3
#
#system sh/exec.sh -n dnode1 -s start
#sql create dnode $hostname1
#sleep 20000
print ============== step18: alter replica 3
sql alter database $db replica 3
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
print $data10 $data11 $data12 $data13 $data14 $data15 $data16 $data17 $data18 $data19
if $data00 == db1 then
$replica = $data04
elif $data10 == db1 then
$replica = $data14
else then
print ==== db1 already not exists!!!!!
return -1
endi
if $replica != 3 then
print rplica is not modify to 3, error!!!!!!
return -1
endi
print **** **** **** (loop_cnt: $loop_cnt ) end, continue...... **** **** **** ****
$loop_cnt = $loop_cnt + 1
goto loop_cluster_do
tests/script/unique/cluster/cluster_main2.sim
0 → 100644
浏览文件 @
067e32d3
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/deploy.sh -n dnode2 -i 2
system sh/deploy.sh -n dnode3 -i 3
system sh/deploy.sh -n dnode4 -i 4
system sh/deploy.sh -n dnode5 -i 5
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode5 -c numOfMnodes -v 3
system sh/cfg.sh -n dnode1 -c walLevel -v 1
system sh/cfg.sh -n dnode2 -c walLevel -v 1
system sh/cfg.sh -n dnode3 -c walLevel -v 1
system sh/cfg.sh -n dnode4 -c walLevel -v 1
system sh/cfg.sh -n dnode5 -c walLevel -v 1
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
system sh/cfg.sh -n dnode5 -c balanceInterval -v 10
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode5 -c numOfTotalVnodes -v 256
system sh/cfg.sh -n dnode1 -c alternativeRole -v 0
system sh/cfg.sh -n dnode2 -c alternativeRole -v 0
system sh/cfg.sh -n dnode3 -c alternativeRole -v 0
system sh/cfg.sh -n dnode4 -c alternativeRole -v 0
system sh/cfg.sh -n dnode5 -c alternativeRole -v 0
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode5 -c maxtablesPerVnode -v 5000
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
system sh/cfg.sh -n dnode5 -c arbitrator -v $arbitrator
print ============== step0: start tarbitrator
system sh/exec_tarbitrator.sh -s start
print ============== step1: start dnode1/dnode2/dnode3
system sh/exec.sh -n dnode1 -s start
system sh/exec.sh -n dnode2 -s start
system sh/exec.sh -n dnode3 -s start
sleep 3000
sql connect
sql create dnode $hostname2
sql create dnode $hostname3
sleep 3000
print ============== step2: create db1 with replica 3
$replica = 3
$db = db1
print create database $db replica $replica
#sql create database $db replica 3 maxTables $totalTableNum
sql create database $db replica $replica
sql use $db
print ============== step3: create stable stb1
$stb = stb1
print create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(16))
sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(16))
print ============== step4: start others client
run_back unique/cluster/main2_client1_0.sim
run_back unique/cluster/main2_client1_1.sim
run_back unique/cluster/main2_client1_2.sim
run_back unique/cluster/main2_client1_3.sim
run_back unique/cluster/main2_client2_0.sim
run_back unique/cluster/main2_client2_1.sim
run_back unique/cluster/main2_client2_2.sim
run_back unique/cluster/main2_client2_3.sim
run_back unique/cluster/client3.sim
run_back unique/cluster/client4.sim
sleep 20000
wait_subsim_insert_complete_create_tables:
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
if $data00 < 1000 then
sleep 3000
goto wait_subsim_insert_complete_create_tables
endi
wait_subsim_insert_data:
print select count(*) from $stb
sql select count(*) from $stb
print data00 $data00
if $data00 < 1000 then
sleep 3000
goto wait_subsim_insert_data
endi
print wait for a while to let clients start insert data
sleep 5000
print ============== step4-1: add dnode4/dnode5 into cluster
sql create dnode $hostname4
sql create dnode $hostname5
sleep 5000
$loop_cnt = 0
loop_cluster_do:
print **** **** **** START loop cluster do (loop_cnt: $loop_cnt )**** **** **** ****
print ============== step5: start dnode4/dnode5
system sh/exec.sh -n dnode4 -s start
system sh/exec.sh -n dnode5 -s start
print ============== step6: stop dnode1
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep 10000
#sql drop dnode $hostname1
#sleep 5000
#system rm -rf ../../../sim/dnode1/data
#sleep 20000
print ============== step6-1: restart dnode1
system sh/exec.sh -n dnode1 -s start
sleep 10000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step7: stop dnode2
system sh/exec.sh -n dnode2 -s stop -x SIGINT
sleep 5000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step8: restart dnode2, then wait sync end
system sh/exec.sh -n dnode2 -s start
sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step9: stop dnode3, then wait sync end
system sh/exec.sh -n dnode3 -s stop -x SIGINT
sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step10: restart dnode3, then wait sync end
system sh/exec.sh -n dnode3 -s start
sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step11: stop dnode4, then wait sync end
system sh/exec.sh -n dnode4 -s stop -x SIGINT
sleep 20000
#print ============== step12: restart dnode4, then wait sync end
#system sh/exec.sh -n dnode4 -s start
#sleep 20000
sql show mnodes
print show mnodes
print rows: $rows
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
print $data0_7 $data1_7 $data2_7 $data3_7 $data4_7
print $data0_8 $data1_8 $data2_8 $data3_8 $data4_8
print $data0_9 $data1_9 $data2_9 $data3_9 $data4_9
print ============== step13: alter replica 2
sql alter database $db replica 2
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
print $data10 $data11 $data12 $data13 $data14 $data15 $data16 $data17 $data18 $data19
if $data00 == db1 then
$replica = $data04
elif $data10 == db1 then
$replica = $data14
else then
print ==== db1 already not exists!!!!!
return -1
endi
if $replica != 2 then
print rplica is not modify to 2, error!!!!!!
return -1
endi
print ============== step14: drop dnode5, then remove data dir
system sh/exec.sh -n dnode5 -s stop -x SIGINT
sleep 20000
#system rm -rf ../../../sim/dnode5/data
#print ============== step14-1: drop dnode5, then remove data dir
#sql drop dnode $hostname5
#sleep 20000
#system rm -rf ../../../sim/dnode5/data
print ============== step15: alter replica 1
sql alter database $db replica 1
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
print $data10 $data11 $data12 $data13 $data14 $data15 $data16 $data17 $data18 $data19
if $data00 == db1 then
$replica = $data04
elif $data10 == db1 then
$replica = $data14
else then
print ==== db1 already not exists!!!!!
return -1
endi
if $replica != 1 then
print rplica is not modify to 1, error!!!!!!
return -1
endi
print ============== step16: alter replica 2
sql alter database $db replica 2
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
print $data10 $data11 $data12 $data13 $data14 $data15 $data16 $data17 $data18 $data19
if $data00 == db1 then
$replica = $data04
elif $data10 == db1 then
$replica = $data14
else then
print ==== db1 already not exists!!!!!
return -1
endi
if $replica != 2 then
print rplica is not modify to 2, error!!!!!!
return -1
endi
#print ============== step17: start dnode1 and add into cluster, then wait dnode1 ready
#system sh/cfg.sh -n dnode1 -c first -v $hostname2
#system sh/cfg.sh -n dnode1 -c second -v $hostname3
#
#system sh/exec.sh -n dnode1 -s start
#sql create dnode $hostname1
#sleep 20000
print ============== step18: alter replica 3
sql alter database $db replica 3
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
print $data10 $data11 $data12 $data13 $data14 $data15 $data16 $data17 $data18 $data19
if $data00 == db1 then
$replica = $data04
elif $data10 == db1 then
$replica = $data14
else then
print ==== db1 already not exists!!!!!
return -1
endi
if $replica != 3 then
print rplica is not modify to 3, error!!!!!!
return -1
endi
print **** **** **** (loop_cnt: $loop_cnt ) end, continue...... **** **** **** ****
$loop_cnt = $loop_cnt + 1
goto loop_cluster_do
tests/script/unique/cluster/main1_client1_0.sim
0 → 100644
浏览文件 @
067e32d3
#system sh/stop_dnodes.sh
#system sh/deploy.sh -n dnode1 -i 1
#system sh/cfg.sh -n dnode5 -c maxtablesPerVnode -v 10000
#system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 256
#system sh/exec.sh -n dnode1 -s start
#sql connect
#$db = db1
#sql create database $db
#sql use $db
#$stb = stb1
#sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tblStart = 0
$tblEnd = 1000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client1_0
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client1_0 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lastLossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) -x insert_error_loop
$x = $x + 20
$ts = $ts + 40a
goto continue_next_0
insert_error_loop:
print ============== main1_client1_0 run error: sql insert into $tb values ( $ts + 0a , $x ) ... ...
continue_next_0:
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary -x query_error_loop
if $data00 != $totalRows then
print data00 $data00 totalRows $totalRows
$deltaRows = $totalRows - $data00
if $lastLossRows == 0 then
$lastLossRows = $deltaRows
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client1_0 insert loss: $deltaRows *****
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
elif $deltaRows != $lastLossRows
$tmp = $deltaRows - $lastLossRows
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client1_0 insert loss: $tmp ***********
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$lastLossRows = $deltaRows
endi
# return -1
endi
goto continue_next_1
query_error_loop:
print ============== main1_client1_0 run error: sql select count(*) from $stb where t2 == $tagBinary -x query_error_loop
continue_next_1:
print ====================== client1_0 insert data complete once ............
endi
endw
print ====================== client1_0 success and auto end =====================
\ No newline at end of file
tests/script/unique/cluster/main1_client1_1.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 1000
$tblEnd = 2000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client1_1
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client1_1 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lastLossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) -x insert_error_loop
$x = $x + 20
$ts = $ts + 40a
goto continue_next_0
insert_error_loop:
print ============== main1_client1_1 run error: sql insert into $tb values ( $ts + 0a , $x ) ... ...
continue_next_0:
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary -x query_error_loop
if $data00 != $totalRows then
print data00 $data00 totalRows $totalRows
$deltaRows = $totalRows - $data00
if $lastLossRows == 0 then
$lastLossRows = $deltaRows
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client1_1 insert loss: $deltaRows *****
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
elif $deltaRows != $lastLossRows
$tmp = $deltaRows - $lastLossRows
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client1_1 insert loss: $tmp ***********
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$lastLossRows = $deltaRows
endi
# return -1
endi
goto continue_next_1
query_error_loop:
print ============== main1_client1_1 run error: sql select count(*) from $stb where t2 == $tagBinary -x query_error_loop
continue_next_1:
print ====================== client1_2 insert data complete once ............
endi
endw
print ====================== client1_1 success and auto end =====================
\ No newline at end of file
tests/script/unique/cluster/main1_client1_2.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 2000
$tblEnd = 3000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client1_2
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client1_2 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lastLossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) -x insert_error_loop
$x = $x + 20
$ts = $ts + 40a
goto continue_next_0
insert_error_loop:
print ============== main1_client1_2 run error: sql insert into $tb values ( $ts + 0a , $x ) ... ...
continue_next_0:
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary -x query_error_loop
if $data00 != $totalRows then
print data00 $data00 totalRows $totalRows
$deltaRows = $totalRows - $data00
if $lastLossRows == 0 then
$lastLossRows = $deltaRows
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client1_2 insert loss: $deltaRows *****
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
elif $deltaRows != $lastLossRows
$tmp = $deltaRows - $lastLossRows
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client1_2 insert loss: $tmp ***********
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$lastLossRows = $deltaRows
endi
# return -1
endi
goto continue_next_1
query_error_loop:
print ============== main1_client1_2 run error: sql select count(*) from $stb where t2 == $tagBinary -x query_error_loop
continue_next_1:
print ====================== client1_2 insert data complete once ............
endi
endw
print ====================== client1_2 success and auto end =====================
\ No newline at end of file
tests/script/unique/cluster/main1_client1_3.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 3000
$tblEnd = 4000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client1_3
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client1_3 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lastLossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x ) -x insert_error_loop
$x = $x + 20
$ts = $ts + 40a
goto continue_next_0
insert_error_loop:
print ============== main1_client1_3 run error: sql insert into $tb values ( $ts + 0a , $x ) ... ...
continue_next_0:
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary -x query_error_loop
if $data00 != $totalRows then
print data00 $data00 totalRows $totalRows
$deltaRows = $totalRows - $data00
if $lastLossRows == 0 then
$lastLossRows = $deltaRows
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client1_3 insert loss: $deltaRows *****
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
elif $deltaRows != $lastLossRows
$tmp = $deltaRows - $lastLossRows
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
print ************ client1_3 insert loss: $tmp ***********
print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$lastLossRows = $deltaRows
endi
# return -1
endi
goto continue_next_1
query_error_loop:
print ============== main1_client1_3 run error: sql select count(*) from $stb where t2 == $tagBinary -x query_error_loop
continue_next_1:
print ====================== client1_3 insert data complete once ............
endi
endw
print ====================== client1_3 success and auto end =====================
\ No newline at end of file
tests/script/unique/cluster/main1_client4.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 0
$tblEnd = 10000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db2
$stb = stb2
loop_lable:
print ========= start loop create db, table, inset data, alter column/tag, select, drop db
sql create database if not exists $db
sql use $db
sql create table if not exists $stb ( ts timestamp, c1 int, c2 float ) tags ( t1 int , t2 binary(16) )
$tagBinary = ' . client4
$tagBinary = $tagBinary . '
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
$rowsPerLoop = 100
$ts = $tsStart
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x , $x ) ( $ts + 2a , $x , $x ) ( $ts + 4a , $x , $x ) ( $ts + 6a , $x , $x ) ( $ts + 8a , $x , $x ) ( $ts + 10a , $x , $x ) ( $ts + 12a , $x , $x ) ( $ts + 14a , $x , $x ) ( $ts + 16a , $x , $x ) ( $ts + 18a , $x , $x ) ( $ts + 20a , $x , $x ) ( $ts + 22a , $x , $x ) ( $ts + 24a , $x , $x ) ( $ts + 26a , $x , $x ) ( $ts + 28a , $x , $x ) ( $ts + 30a , $x , $x ) ( $ts + 32a , $x , $x ) ( $ts + 34a , $x , $x ) ( $ts + 36a , $x , $x ) ( $ts + 38a , $x , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb -x continue_loop
print data00 $data00 totalRows $totalRows
if $data00 != $totalRows then
print ********************** select error **********************
endi
continue_loop:
print ====================== client4 insert data complete once ............
endi
endw
##################### alter column
sql alter table $stb add column c3 double
sql alter table $stb drop column c2
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x , $x ) ( $ts + 2a , $x , $x ) ( $ts + 4a , $x , $x ) ( $ts + 6a , $x , $x ) ( $ts + 8a , $x , $x ) ( $ts + 10a , $x , $x ) ( $ts + 12a , $x , $x ) ( $ts + 14a , $x , $x ) ( $ts + 16a , $x , $x ) ( $ts + 18a , $x , $x ) ( $ts + 20a , $x , $x ) ( $ts + 22a , $x , $x ) ( $ts + 24a , $x , $x ) ( $ts + 26a , $x , $x ) ( $ts + 28a , $x , $x ) ( $ts + 30a , $x , $x ) ( $ts + 32a , $x , $x ) ( $ts + 34a , $x , $x ) ( $ts + 36a , $x , $x ) ( $ts + 38a , $x , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb -x continue_loop
print data00 $data00 totalRows $totalRows
if $data00 != $totalRows then
print ********************** select error **********************
endi
continue_loop:
print ====================== client4 insert data complete once ............
endi
endw
##################### alter tag
sql alter table $stb add tag t3 int
sql alter table $stb drop tag t2
$i = $tblStart
while $i < $tblEnd
$tb = ttb . $i
sql create table if not exists $tb using $stb tags ($i, $i)
$i = $i + 1
endw
$rowsPerLoop = 100
$ts = $tsStart
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x , $x ) ( $ts + 2a , $x , $x ) ( $ts + 4a , $x , $x ) ( $ts + 6a , $x , $x ) ( $ts + 8a , $x , $x ) ( $ts + 10a , $x , $x ) ( $ts + 12a , $x , $x ) ( $ts + 14a , $x , $x ) ( $ts + 16a , $x , $x ) ( $ts + 18a , $x , $x ) ( $ts + 20a , $x , $x ) ( $ts + 22a , $x , $x ) ( $ts + 24a , $x , $x ) ( $ts + 26a , $x , $x ) ( $ts + 28a , $x , $x ) ( $ts + 30a , $x , $x ) ( $ts + 32a , $x , $x ) ( $ts + 34a , $x , $x ) ( $ts + 36a , $x , $x ) ( $ts + 38a , $x , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb -x continue_loop
print data00 $data00 totalRows $totalRows
if $data00 != $totalRows then
print ********************** select error **********************
endi
continue_loop:
print ====================== client4 insert data complete once ............
endi
endw
goto loop_lable
\ No newline at end of file
tests/script/unique/cluster/main2_client1_0.sim
0 → 100644
浏览文件 @
067e32d3
#system sh/stop_dnodes.sh
#system sh/deploy.sh -n dnode1 -i 1
#system sh/cfg.sh -n dnode5 -c maxtablesPerVnode -v 10000
#system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 256
#system sh/exec.sh -n dnode1 -s start
#sql connect
#$db = db1
#sql create database $db
#sql use $db
#$stb = stb1
#sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tblStart = 0
$tblEnd = 1000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client1_0
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client1_0 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lastLossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary
print ====================== client1_0 insert data complete once ............
endi
endw
print ====================== client1_0 success and auto end =====================
\ No newline at end of file
tests/script/unique/cluster/main2_client1_1.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 1000
$tblEnd = 2000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client1_1
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client1_1 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lastLossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary
print ====================== client1_1 insert data complete once ............
endi
endw
print ====================== client1_1 success and auto end =====================
\ No newline at end of file
tests/script/unique/cluster/main2_client1_2.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 2000
$tblEnd = 3000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client1_2
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client1_2 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lastLossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary
print ====================== client1_2 insert data complete once ............
endi
endw
print ====================== client1_2 success and auto end =====================
\ No newline at end of file
tests/script/unique/cluster/main2_client1_3.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 3000
$tblEnd = 4000
$tsStart = 1325347200000 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client1_3
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client1_3 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lastLossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary
print ====================== client1_3 insert data complete once ............
endi
endw
print ====================== client1_3 success and auto end =====================
\ No newline at end of file
tests/script/unique/cluster/main2_client2_0.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 0
$tblEnd = 1000
$tsStart = 1325347200001 # 2012-01-01 00:00:00.001
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client2_0
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client2_0 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lastLossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary
print ====================== client2_0 insert data complete once ............
endi
endw
print ====================== client2_0 success and auto end =====================
\ No newline at end of file
tests/script/unique/cluster/main2_client2_1.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 1000
$tblEnd = 2000
$tsStart = 1325347200001 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client2_1
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client2_1 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary
print ====================== client2_1 insert data complete once ............
endi
endw
print ====================== client2_1 success and auto end =====================
\ No newline at end of file
tests/script/unique/cluster/main2_client2_2.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 2000
$tblEnd = 3000
$tsStart = 1325347200001 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client2_2
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client2_2 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary
print ====================== client2_2 insert data complete once ............
endi
endw
print ====================== client2_2 success and auto end =====================
\ No newline at end of file
tests/script/unique/cluster/main2_client2_3.sim
0 → 100644
浏览文件 @
067e32d3
$tblStart = 3000
$tblEnd = 4000
$tsStart = 1325347200001 # 2012-01-01 00:00:00.000
###############################################################
sql connect
$db = db1
$stb = stb1
sql use $db
######sql create table $stb (ts timestamp, c1 int) tags(t1 int, t2 binary(8))
$tagBinary = ' . client2_3
$tagBinary = $tagBinary . '
#print ======= tag: $tagBinary
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
# print create table if not exists $tb using $stb tags ( $i , $tagBinary )
sql create table if not exists $tb using $stb tags ( $i , $tagBinary )
$i = $i + 1
endw
print ====================== client2_3 create table end, start insert data ............
sql select count(tbname) from $stb
print select count(tbname) from $stb
print data00 $data00
$rowsPerLoop = 100
$ts = $tsStart
$lossRows = 0
$i = $tblStart
while $i < $tblEnd
$tb = tb . $i
$x = 0
while $x < $rowsPerLoop
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 2a , $x ) ( $ts + 4a , $x ) ( $ts + 6a , $x ) ( $ts + 8a , $x ) ( $ts + 10a , $x ) ( $ts + 12a , $x ) ( $ts + 14a , $x ) ( $ts + 16a , $x ) ( $ts + 18a , $x ) ( $ts + 20a , $x ) ( $ts + 22a , $x ) ( $ts + 24a , $x ) ( $ts + 26a , $x ) ( $ts + 28a , $x ) ( $ts + 30a , $x ) ( $ts + 32a , $x ) ( $ts + 34a , $x ) ( $ts + 36a , $x ) ( $ts + 38a , $x )
$x = $x + 20
$ts = $ts + 40a
endw
$totalRows = $totalRows + $x
$i = $i + 1
if $i == $tblEnd then
$i = $tblStart
sql select count(*) from $stb where t2 == $tagBinary
print ====================== client2_3 insert data complete once ............
endi
endw
print ====================== client2_3 success and auto end =====================
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录