Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
6e8f3055
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看板
提交
6e8f3055
编写于
5月 07, 2020
作者:
H
hjxilinx
浏览文件
操作
浏览文件
下载
差异文件
[td-183] merge with develop branch
上级
31029ee2
0c68821a
变更
45
显示空白变更内容
内联
并排
Showing
45 changed file
with
827 addition
and
2398 deletion
+827
-2398
.travis.yml
.travis.yml
+23
-10
README.md
README.md
+245
-0
src/client/src/tscServer.c
src/client/src/tscServer.c
+1
-1
src/client/src/tscSql.c
src/client/src/tscSql.c
+7
-0
src/common/src/tmessage.c
src/common/src/tmessage.c
+2
-118
src/connector/python/linux/python3/taos/cinterface.py
src/connector/python/linux/python3/taos/cinterface.py
+4
-1
src/dnode/src/dnodeRead.c
src/dnode/src/dnodeRead.c
+5
-3
src/dnode/src/dnodeWrite.c
src/dnode/src/dnodeWrite.c
+3
-0
src/inc/taoserror.h
src/inc/taoserror.h
+4
-0
src/inc/taosmsg.h
src/inc/taosmsg.h
+64
-91
src/kit/shell/inc/shell.h
src/kit/shell/inc/shell.h
+1
-0
src/kit/shell/src/shellDarwin.c
src/kit/shell/src/shellDarwin.c
+1
-1
src/kit/shell/src/shellEngine.c
src/kit/shell/src/shellEngine.c
+1
-1
src/kit/shell/src/shellLinux.c
src/kit/shell/src/shellLinux.c
+1
-1
src/kit/shell/src/shellWindows.c
src/kit/shell/src/shellWindows.c
+1
-1
src/mnode/src/mgmtDServer.c
src/mnode/src/mgmtDServer.c
+2
-2
src/mnode/src/mgmtDnode.c
src/mnode/src/mgmtDnode.c
+1
-0
src/mnode/src/mgmtSdb.c
src/mnode/src/mgmtSdb.c
+5
-4
src/mnode/src/mgmtUser.c
src/mnode/src/mgmtUser.c
+3
-3
src/mnode/src/mgmtVgroup.c
src/mnode/src/mgmtVgroup.c
+1
-4
src/rpc/src/rpcMain.c
src/rpc/src/rpcMain.c
+1
-1
src/tsdb/inc/tsdbMain.h
src/tsdb/inc/tsdbMain.h
+11
-4
src/tsdb/src/tsdbCache.c
src/tsdb/src/tsdbCache.c
+68
-7
src/tsdb/src/tsdbFile.c
src/tsdb/src/tsdbFile.c
+28
-41
src/tsdb/src/tsdbMain.c
src/tsdb/src/tsdbMain.c
+68
-13
src/tsdb/src/tsdbRWHelper.c
src/tsdb/src/tsdbRWHelper.c
+1
-0
src/util/inc/ttime.h
src/util/inc/ttime.h
+18
-3
src/util/src/tqueue.c
src/util/src/tqueue.c
+12
-2
src/util/src/ttime.c
src/util/src/ttime.c
+0
-24
src/vnode/src/vnodeMain.c
src/vnode/src/vnodeMain.c
+1
-0
src/vnode/src/vnodeWrite.c
src/vnode/src/vnodeWrite.c
+11
-7
tests/pytest/insert/binary.py
tests/pytest/insert/binary.py
+6
-6
tests/pytest/util/sql.py
tests/pytest/util/sql.py
+3
-0
tests/script/jenkins/basic.txt
tests/script/jenkins/basic.txt
+63
-0
tests/script/jenkins/basic1.txt
tests/script/jenkins/basic1.txt
+0
-11
tests/script/unique/account/authority.sim
tests/script/unique/account/authority.sim
+2
-1
tests/script/unique/account/testSuite.sim
tests/script/unique/account/testSuite.sim
+1
-1
tests/script/unique/big/balance.sim
tests/script/unique/big/balance.sim
+0
-6
tests/script/unique/cluster/balance1.sim
tests/script/unique/cluster/balance1.sim
+21
-11
tests/script/unique/cluster/balance1_bug.sim
tests/script/unique/cluster/balance1_bug.sim
+0
-789
tests/script/unique/cluster/balance1_single.sim
tests/script/unique/cluster/balance1_single.sim
+0
-716
tests/script/unique/cluster/balance2.sim
tests/script/unique/cluster/balance2.sim
+77
-362
tests/script/unique/cluster/balance3.sim
tests/script/unique/cluster/balance3.sim
+60
-145
tests/script/unique/cluster/testSuite.sim
tests/script/unique/cluster/testSuite.sim
+0
-2
tests/script/uniqueSuite.sim
tests/script/uniqueSuite.sim
+0
-5
未找到文件。
.travis.yml
浏览文件 @
6e8f3055
...
@@ -59,17 +59,30 @@ matrix:
...
@@ -59,17 +59,30 @@ matrix:
GREEN_UNDERLINE='\033[4;32m'
GREEN_UNDERLINE='\033[4;32m'
NC='\033[0m'
NC='\033[0m'
tail -10 mem-error-out.txt
grep 'ERROR SUMMARY' mem-error-out.txt | uniq | tee uniq-mem-error-out.txt
defiMemError=`grep -m 1 'definitely lost' mem-error-out.txt | awk '{print $7}'`
memError=`grep -m 1 'ERROR SUMMARY' mem-error-out.txt | awk '{print $4}'`
for memError in `cat uniq-mem-error-out.txt | awk '{print $4}'`
do
if [ -n "$memError" ]; then
if [ -n "$memError" ]; then
if [ "$memError" -gt 16 ] || [ "$defiMemError" -gt 0
]; then
if [ "$memError" -gt 16
]; then
echo -e "${RED} ## Memory errors number valgrind reports is $memError.\
echo -e "${RED} ## Memory errors number valgrind reports is $memError.\
Definitely lost is $defiMemError.
More than our threshold! ## ${NC}"
More than our threshold! ## ${NC}"
travis_terminate $memError
travis_terminate $memError
fi
fi
fi
fi
done
grep 'definitely lost' mem-error-out.txt | uniq | tee uniq-definitely-lost-out.txt
for defiMemError in `cat uniq-definitely-lost-out.txt | awk '{print $7}'`
do
if [ -n "$defiMemError" ]; then
if [ "$defiMemError" -gt 16 ]; then
echo -e "${RED} ## Memory errors number valgrind reports \
Definitely lost is $defiMemError. More than our threshold! ## ${NC}"
travis_terminate $defiMemError
fi
fi
done
;;
;;
esac
esac
...
...
README.md
浏览文件 @
6e8f3055
...
@@ -115,6 +115,251 @@ TDengine provides abundant developing tools for users to develop on TDengine. Fo
...
@@ -115,6 +115,251 @@ TDengine provides abundant developing tools for users to develop on TDengine. Fo
-
[
RESTful API
](
https://www.taosdata.com/en/documentation/connector/#RESTful-Connector
)
-
[
RESTful API
](
https://www.taosdata.com/en/documentation/connector/#RESTful-Connector
)
-
[
Node.js
](
https://www.taosdata.com/en/documentation/connector/#Node.js-Connector
)
-
[
Node.js
](
https://www.taosdata.com/en/documentation/connector/#Node.js-Connector
)
# How to run the test cases and how to add a new test case?
### Prepare development environment
1.
sudo apt install
build-essential cmake net-tools python-pip python-setuptools python3-pip
python3-setuptools valgrind
2.
git clone
<https://github.com/taosdata/TDengine>
; cd TDengine
3.
mkdir debug; cd debug; cmake ..; make ; sudo make install
4.
pip install src/connector/python/linux/python2 ; pip3 install
src/connector/python/linux/python3
### How to run TSIM test suite
1.
cd
\<
TDengine
\>
/tests/script
2.
sudo ./test.sh
### How to run Python test suite
1.
cd
\<
TDengine
\>
/tests/pytest
2.
./smoketest.sh
\#
for smoke test
3.
./smoketest.sh -g
\#
for memory leak detection test with valgrind
4.
./fulltest.sh
\#
for full test
> Note1: TDengine daemon's configuration and data files are stored in
> \<TDengine\>/sim directory. As a historical design, it's same place with
> TSIM script. So after the TSIM script ran with sudo privilege, the directory
> has been used by TSIM then the python script cannot write it by a normal
> user. You need to remove the directory completely first before running the
> Python test case. We should consider using two different locations to store
> for TSIM and Python script.
> Note2: if you need to debug crash problem with a core dump, you need
> manually edit smoketest.sh or fulltest.sh to add "ulimit -c unlimited"
> before the script line. Then you can look for the core file in
> \<TDengine\>/tests/pytest after the program crash.
### How to add a new test case
**1. add a new TSIM test cases:**
TSIM test cases are now included in the new development branch and can be
added to the TDengine/tests/script/test.sh script based on the manual test
methods necessary to add test cases as described above.
**2. add a new Python test cases:**
**
2.1 Please refer to
\<
TDengine
\>
/tests/pytest/insert/basic.py to add a new
test case.
**
The new test case must implement 3 functions, where self.init()
and self.stop() simply copy the contents of insert/basic.py and the test
logic is implemented in self.run(). You can refer to the code in the util
directory for more information.
**2.2 Edit smoketest.sh to add the path and filename of the new test case**
Note: The Python test framework may continue to be improved in the future,
hopefully, to provide more functionality and ease of writing test cases. The
method of writing the test case above does not exclude that it will also be
affected.
**2.3 What test.py does in detail:**
test.py is the entry program for test case execution and monitoring.
test.py has the following functions.
\-
f --file, Specifies the test case file name to be executed
-p --path, Specifies deployment path
\-
m --master, Specifies the master server IP for cluster deployment
-c--cluster, test cluster function
-s--stop, terminates all running nodes
\-
g--valgrind, load valgrind for memory leak detection test
\-
h--help, display help
**2.4 What util/log.py does in detail:**
log.py is quite simple, the main thing is that you can print the output in
different colors as needed. The success() should be called for successful
test case execution and the success() will print green text. The exit() will
print red text and exit the program, exit() should be called for test
failure.
**util/log.py**
...
def info(self, info):
printf("%s %s" % (datetime.datetime.now(), info))
def sleep(self, sec):
printf("%s sleep %d seconds" % (datetime.datetime.now(), sec))
time.sleep(sec)
def debug(self, err):
printf("
\\
033
[
1;36m%s %s\\033[0m" % (datetime.datetime.now(), err))
def success(self, info):
printf("\\033[1;32m%s %s\\033[0m" % (datetime.datetime.now(), info))
def notice(self, err):
printf("\\033[1;33m%s %s\\033[0m" % (datetime.datetime.now(), err))
def exit(self, err):
printf("\\033[1;31m%s %s\\033[0m" % (datetime.datetime.now(), err))
sys.exit(1)
def printNoPrefix(self, info):
printf("\\033[1;36m%s\\033[0m" % (info)
...
**2.5 What util/sql.py does in detail:**
SQL.py is mainly used to execute SQL statements to manipulate the database,
and the code is extracted and commented as follows:
**util/sql.py**
\# prepare() is mainly used to set up the environment for testing table and
data, and to set up the database db for testing. do not call prepare() if you
need to test the database operation command.
def prepare(self):
tdLog.info("prepare database:db")
self.cursor.execute('reset query cache')
self.cursor.execute('drop database if exists db')
self.cursor.execute('create database db')
self.cursor.execute('use db')
...
\# query() is mainly used to execute select statements for normal syntax input
def query(self, sql):
...
\# error() is mainly used to execute the select statement with the wrong syntax
input, the error will be caught as a reasonable behavior, if not caught it will
prove that the test failed
def error()
...
\# checkRows() is used to check the number of returned lines after calling
query(select ...) after calling the query(select ...) to check the number of
rows of returned results.
def checkRows(self, expectRows):
...
\# checkData() is used to check the returned result data after calling
query(select ...) after the query(select ...) is called, failure to meet
expectation is
def checkData(self, row, col, data):
...
\# getData() returns the result data after calling query(select ...) to return
the resulting data after calling query(select ...)
def getData(self, row, col):
...
\# execute() used to execute sql and return the number of affected rows
def execute(self, sql):
...
\# executeTimes() Multiple executions of the same sql statement
def executeTimes(self, sql, times):
...
\# CheckAffectedRows() Check if the number of affected rows is as expected
def checkAffectedRows(self, expectAffectedRows):
...
> Note: Both Python2 and Python3 are currently supported by the Python test
> case. Since Python2 is no longer officially supported by January 1, 2020, it
> is recommended that subsequent test case development be guaranteed to run
> correctly on Python3. For Python2, please consider being compatible if
> appropriate without additional
> burden. <https://nakedsecurity.sophos.com/2020/01/03/python-is-dead-long-live-python/>
### CI Covenant submission adoption principle.
- Every commit / PR compilation must pass. Currently, the warning is treated
as an error, so the warning must also be resolved.
- Test cases that already exist must pass.
- Because CI is very important to support build and automatically test
procedure, it is necessary to manually test the test case before adding it
and do as many iterations as possible to ensure that the test case provides
stable and reliable test results when added.
> Note: In the future, according to the requirements and test development
> progress will add stress testing, performance testing, code style,
> and other features based on functional testing.
### Third Party Connectors
### Third Party Connectors
The TDengine community has also kindly built some of their own connectors! Follow the links below to find the source code for them.
The TDengine community has also kindly built some of their own connectors! Follow the links below to find the source code for them.
...
...
src/client/src/tscServer.c
浏览文件 @
6e8f3055
...
@@ -2262,7 +2262,7 @@ int tscProcessConnectRsp(SSqlObj *pSql) {
...
@@ -2262,7 +2262,7 @@ int tscProcessConnectRsp(SSqlObj *pSql) {
strcpy
(
pObj
->
sversion
,
pConnect
->
serverVersion
);
strcpy
(
pObj
->
sversion
,
pConnect
->
serverVersion
);
pObj
->
writeAuth
=
pConnect
->
writeAuth
;
pObj
->
writeAuth
=
pConnect
->
writeAuth
;
pObj
->
superAuth
=
pConnect
->
superAuth
;
pObj
->
superAuth
=
pConnect
->
superAuth
;
//
taosTmrReset(tscProcessActivityTimer, tsShellActivityTimer * 500, pObj, tscTmr, &pObj->pTimer);
taosTmrReset
(
tscProcessActivityTimer
,
tsShellActivityTimer
*
500
,
pObj
,
tscTmr
,
&
pObj
->
pTimer
);
return
0
;
return
0
;
}
}
...
...
src/client/src/tscSql.c
浏览文件 @
6e8f3055
...
@@ -168,6 +168,13 @@ static void syncConnCallback(void *param, TAOS_RES *tres, int code) {
...
@@ -168,6 +168,13 @@ static void syncConnCallback(void *param, TAOS_RES *tres, int code) {
TAOS
*
taos_connect
(
const
char
*
ip
,
const
char
*
user
,
const
char
*
pass
,
const
char
*
db
,
uint16_t
port
)
{
TAOS
*
taos_connect
(
const
char
*
ip
,
const
char
*
user
,
const
char
*
pass
,
const
char
*
db
,
uint16_t
port
)
{
tscTrace
(
"try to create a connection to %s"
,
ip
);
tscTrace
(
"try to create a connection to %s"
,
ip
);
if
(
port
!=
0
)
{
tsServerPort
=
port
;
tsMnodeShellPort
=
tsServerPort
+
TSDB_PORT_MNODESHELL
;
tsDnodeShellPort
=
tsServerPort
+
TSDB_PORT_DNODESHELL
;
tsMnodeDnodePort
=
tsServerPort
+
TSDB_PORT_MNODEDNODE
;
tsDnodeMnodePort
=
tsServerPort
+
TSDB_PORT_DNODEMNODE
;
}
STscObj
*
pObj
=
taosConnectImpl
(
ip
,
user
,
pass
,
db
,
port
,
NULL
,
NULL
,
NULL
);
STscObj
*
pObj
=
taosConnectImpl
(
ip
,
user
,
pass
,
db
,
port
,
NULL
,
NULL
,
NULL
);
if
(
pObj
!=
NULL
)
{
if
(
pObj
!=
NULL
)
{
...
...
src/common/src/tmessage.c
浏览文件 @
6e8f3055
...
@@ -13,122 +13,6 @@
...
@@ -13,122 +13,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
char
*
taosMsg
[]
=
{
#define TAOS_MESSAGE_C
"null"
,
"registration"
,
"registration-rsp"
,
"submit"
,
"submit-rsp"
,
"query"
,
"query-rsp"
,
"retrieve"
,
"retrieve-rsp"
,
"create-table"
,
"create-table-rsp"
,
//10
"drop-table"
,
"drop-table-rsp"
,
"alter-table"
,
"alter-table-rsp"
,
"create-vnode"
,
"create-vnode-rsp"
,
"drop-vnode"
,
"drop-vnode-rsp"
,
"alter-vnode"
,
"alter-vnode-rsp"
,
//20
"drop-stable"
,
"drop-stable-rsp"
,
"alter-stream"
,
"alter-stream-rsp"
,
"config-dnode"
,
"config-dnode-rsp"
,
""
,
""
,
""
,
""
,
//30
"connect"
,
"connect-rsp"
,
"create-acct"
,
"create-acct-rsp"
,
"alter-acct"
,
"alter-acct-rsp"
,
"drop-acct"
,
"drop-acct-rsp"
,
"create-user"
,
"create-user-rsp"
,
//40
"alter-user"
,
"alter-user-rsp"
,
"drop-user"
,
"drop-user-rsp"
,
"create-dnode"
,
"create-dnode-rsp"
,
"drop-dnode"
,
"drop-dnode-rsp"
,
"create-db"
,
"create-db-rsp"
,
//50
"drop-db"
,
"drop-db-rsp"
,
"use-db"
,
"use-db-rsp"
,
"alter-db"
,
"alter-db-rsp"
,
"create-table"
,
"create-table-rsp"
,
"drop-table"
,
"drop-table-rsp"
,
//60
"alter-table"
,
"alter-table-rsp"
,
"table-meta"
,
"table-meta-rsp"
,
"super-table-meta"
,
"super-stable-meta-rsp"
,
"multi-table-meta"
,
"multi-table-meta-rsp"
,
"alter-stream"
,
"alter-stream-rsp"
,
//70
"show"
,
"show-rsp"
,
"kill-query"
,
"kill-query-rsp"
,
"kill-stream"
,
"kill-stream-rsp"
,
"kill-connection"
,
"kill-connectoin-rsp"
,
"heart-beat"
,
"heart-beat-rsp"
,
//80
""
,
""
,
""
,
""
,
""
,
""
,
""
,
""
,
""
,
""
,
//90
"config-table"
,
"config-table-rsp"
,
"config-vnode"
,
"config-vnode-rsp"
,
"status"
,
"status-rsp"
,
"grant"
,
"grant-rsp"
,
""
,
""
,
//100
"sdb-sync"
,
"sdb-sync-rsp"
,
"sdb-forward"
,
"sdb-forward-rsp"
,
"max"
};
#include "taosmsg.h"
src/connector/python/linux/python3/taos/cinterface.py
浏览文件 @
6e8f3055
...
@@ -146,6 +146,7 @@ class CTaosInterface(object):
...
@@ -146,6 +146,7 @@ class CTaosInterface(object):
libtaos
.
taos_errstr
.
restype
=
ctypes
.
c_char_p
libtaos
.
taos_errstr
.
restype
=
ctypes
.
c_char_p
libtaos
.
taos_subscribe
.
restype
=
ctypes
.
c_void_p
libtaos
.
taos_subscribe
.
restype
=
ctypes
.
c_void_p
libtaos
.
taos_consume
.
restype
=
ctypes
.
c_void_p
libtaos
.
taos_consume
.
restype
=
ctypes
.
c_void_p
libtaos
.
taos_fetch_lengths
.
restype
=
ctypes
.
c_void_p
def
__init__
(
self
,
config
=
None
):
def
__init__
(
self
,
config
=
None
):
'''
'''
...
@@ -314,6 +315,8 @@ class CTaosInterface(object):
...
@@ -314,6 +315,8 @@ class CTaosInterface(object):
isMicro
=
(
CTaosInterface
.
libtaos
.
taos_result_precision
(
result
)
==
FieldType
.
C_TIMESTAMP_MICRO
)
isMicro
=
(
CTaosInterface
.
libtaos
.
taos_result_precision
(
result
)
==
FieldType
.
C_TIMESTAMP_MICRO
)
blocks
=
[
None
]
*
len
(
fields
)
blocks
=
[
None
]
*
len
(
fields
)
fieldL
=
CTaosInterface
.
libtaos
.
taos_fetch_lengths
(
result
)
fieldLen
=
[
ele
for
ele
in
ctypes
.
cast
(
fieldL
,
ctypes
.
POINTER
(
ctypes
.
c_int
))[:
len
(
fields
)]]
for
i
in
range
(
len
(
fields
)):
for
i
in
range
(
len
(
fields
)):
data
=
ctypes
.
cast
(
pblock
,
ctypes
.
POINTER
(
ctypes
.
c_void_p
))[
i
]
data
=
ctypes
.
cast
(
pblock
,
ctypes
.
POINTER
(
ctypes
.
c_void_p
))[
i
]
if
data
==
None
:
if
data
==
None
:
...
@@ -323,7 +326,7 @@ class CTaosInterface(object):
...
@@ -323,7 +326,7 @@ class CTaosInterface(object):
if
fields
[
i
][
'type'
]
not
in
_CONVERT_FUNC
:
if
fields
[
i
][
'type'
]
not
in
_CONVERT_FUNC
:
raise
DatabaseError
(
"Invalid data type returned from database"
)
raise
DatabaseError
(
"Invalid data type returned from database"
)
blocks
[
i
]
=
_CONVERT_FUNC
[
fields
[
i
][
'type'
]](
data
,
num_of_rows
,
field
s
[
i
][
'bytes'
],
isMicro
)
blocks
[
i
]
=
_CONVERT_FUNC
[
fields
[
i
][
'type'
]](
data
,
num_of_rows
,
field
Len
[
i
],
isMicro
)
return
blocks
,
abs
(
num_of_rows
)
return
blocks
,
abs
(
num_of_rows
)
...
...
src/dnode/src/dnodeRead.c
浏览文件 @
6e8f3055
...
@@ -74,9 +74,11 @@ void dnodeCleanupRead() {
...
@@ -74,9 +74,11 @@ void dnodeCleanupRead() {
for
(
int
i
=
0
;
i
<
readPool
.
max
;
++
i
)
{
for
(
int
i
=
0
;
i
<
readPool
.
max
;
++
i
)
{
SReadWorker
*
pWorker
=
readPool
.
readWorker
+
i
;
SReadWorker
*
pWorker
=
readPool
.
readWorker
+
i
;
if
(
pWorker
->
thread
)
if
(
pWorker
->
thread
)
{
pthread_cancel
(
pWorker
->
thread
);
pthread_join
(
pWorker
->
thread
,
NULL
);
pthread_join
(
pWorker
->
thread
,
NULL
);
}
}
}
taosCloseQset
(
readQset
);
taosCloseQset
(
readQset
);
dPrint
(
"dnode read is closed"
);
dPrint
(
"dnode read is closed"
);
...
@@ -114,12 +116,12 @@ void dnodeRead(SRpcMsg *pMsg) {
...
@@ -114,12 +116,12 @@ void dnodeRead(SRpcMsg *pMsg) {
pRead
->
pCont
=
pCont
;
pRead
->
pCont
=
pCont
;
pRead
->
contLen
=
pHead
->
contLen
;
pRead
->
contLen
=
pHead
->
contLen
;
taosWriteQitem
(
queue
,
TAOS_QTYPE_RPC
,
pRead
);
// next vnode
// next vnode
leftLen
-=
pHead
->
contLen
;
leftLen
-=
pHead
->
contLen
;
pCont
-=
pHead
->
contLen
;
pCont
-=
pHead
->
contLen
;
queuedMsgNum
++
;
queuedMsgNum
++
;
taosWriteQitem
(
queue
,
TAOS_QTYPE_RPC
,
pRead
);
}
}
if
(
queuedMsgNum
==
0
)
{
if
(
queuedMsgNum
==
0
)
{
...
...
src/dnode/src/dnodeWrite.c
浏览文件 @
6e8f3055
...
@@ -71,7 +71,10 @@ void dnodeCleanupWrite() {
...
@@ -71,7 +71,10 @@ void dnodeCleanupWrite() {
for
(
int32_t
i
=
0
;
i
<
wWorkerPool
.
max
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
wWorkerPool
.
max
;
++
i
)
{
SWriteWorker
*
pWorker
=
wWorkerPool
.
writeWorker
+
i
;
SWriteWorker
*
pWorker
=
wWorkerPool
.
writeWorker
+
i
;
if
(
pWorker
->
thread
)
{
if
(
pWorker
->
thread
)
{
pthread_cancel
(
pWorker
->
thread
);
pthread_join
(
pWorker
->
thread
,
NULL
);
pthread_join
(
pWorker
->
thread
,
NULL
);
taosFreeQall
(
pWorker
->
qall
);
taosCloseQset
(
pWorker
->
qset
);
}
}
}
}
...
...
src/inc/taoserror.h
浏览文件 @
6e8f3055
...
@@ -115,6 +115,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_QUERY_ID, 0, 255, "invalid query i
...
@@ -115,6 +115,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_QUERY_ID, 0, 255, "invalid query i
TAOS_DEFINE_ERROR
(
TSDB_CODE_INVALID_STREAM_ID
,
0
,
256
,
"invalid stream id"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_INVALID_STREAM_ID
,
0
,
256
,
"invalid stream id"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_INVALID_CONNECTION
,
0
,
257
,
"invalid connection"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_INVALID_CONNECTION
,
0
,
257
,
"invalid connection"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_SDB_ERROR
,
0
,
258
,
"sdb error"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_SDB_ERROR
,
0
,
258
,
"sdb error"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_TIMESTAMP_OUT_OF_RANGE
,
0
,
259
,
"timestamp is out of range"
)
// acct
// acct
TAOS_DEFINE_ERROR
(
TSDB_CODE_ACCT_ALREADY_EXIST
,
0
,
300
,
"accounts already exist"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_ACCT_ALREADY_EXIST
,
0
,
300
,
"accounts already exist"
)
...
@@ -172,6 +173,9 @@ TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_VALUE, 0, 462, "invalid value")
...
@@ -172,6 +173,9 @@ TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_VALUE, 0, 462, "invalid value")
// others
// others
TAOS_DEFINE_ERROR
(
TSDB_CODE_INVALID_FILE_FORMAT
,
0
,
500
,
"invalid file format"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_INVALID_FILE_FORMAT
,
0
,
500
,
"invalid file format"
)
// TSDB
TAOS_DEFINE_ERROR
(
TSDB_CODE_INVALID_CONFIG
,
0
,
550
,
"invalid TSDB configuration"
)
#ifdef TAOS_ERROR_C
#ifdef TAOS_ERROR_C
};
};
...
...
src/inc/taosmsg.h
浏览文件 @
6e8f3055
...
@@ -28,103 +28,76 @@ extern "C" {
...
@@ -28,103 +28,76 @@ extern "C" {
#include "trpc.h"
#include "trpc.h"
// message type
// message type
#define TSDB_MSG_TYPE_REG 1
#define TSDB_MSG_TYPE_REG_RSP 2
#ifdef TAOS_MESSAGE_C
#define TSDB_MSG_TYPE_SUBMIT 3
#define TAOS_DEFINE_MESSAGE_TYPE( name, msg ) msg, msg "-rsp",
#define TSDB_MSG_TYPE_SUBMIT_RSP 4
char
*
taosMsg
[]
=
{
#define TSDB_MSG_TYPE_QUERY 5
"null"
,
#define TSDB_MSG_TYPE_QUERY_RSP 6
#else
#define TSDB_MSG_TYPE_RETRIEVE 7
#define TAOS_DEFINE_MESSAGE_TYPE( name, msg ) name, name##_RSP,
#define TSDB_MSG_TYPE_RETRIEVE_RSP 8
enum
{
TSDB_MESSAGE_NULL
=
0
,
#endif
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_REG
,
"registration"
)
// 1
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_SUBMIT
,
"submit"
)
// 3
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_QUERY
,
"query"
)
// 5
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_RETRIEVE
,
"retrieve"
)
// 7
// message from mnode to dnode
// message from mnode to dnode
#define TSDB_MSG_TYPE_MD_CREATE_TABLE 9
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_MD_CREATE_TABLE
,
"create-table"
)
// 9
#define TSDB_MSG_TYPE_MD_CREATE_TABLE_RSP 10
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_MD_DROP_TABLE
,
"drop-table"
)
// 11
#define TSDB_MSG_TYPE_MD_DROP_TABLE 11
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_MD_ALTER_TABLE
,
"alter-table"
)
// 13
#define TSDB_MSG_TYPE_MD_DROP_TABLE_RSP 12
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_MD_CREATE_VNODE
,
"create-vnode"
)
// 15
#define TSDB_MSG_TYPE_MD_ALTER_TABLE 13
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_MD_DROP_VNODE
,
"drop-vnode"
)
// 17
#define TSDB_MSG_TYPE_MD_ALTER_TABLE_RSP 14
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_MD_DROP_STABLE
,
"drop-stable"
)
// 19
#define TSDB_MSG_TYPE_MD_CREATE_VNODE 15
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_MD_ALTER_STREAM
,
"alter-stream"
)
// 21
#define TSDB_MSG_TYPE_MD_CREATE_VNODE_RSP 16
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_MD_CONFIG_DNODE
,
"config-dnode"
)
// 23
#define TSDB_MSG_TYPE_MD_DROP_VNODE 17
#define TSDB_MSG_TYPE_MD_DROP_VNODE_RSP 18
#define TSDB_MSG_TYPE_MD_DROP_STABLE 19
#define TSDB_MSG_TYPE_MD_DROP_STABLE_RSP 20
#define TSDB_MSG_TYPE_MD_ALTER_STREAM 21
#define TSDB_MSG_TYPE_MD_ALTER_STREAM_RSP 22
#define TSDB_MSG_TYPE_MD_CONFIG_DNODE 23
#define TSDB_MSG_TYPE_MD_CONFIG_DNODE_RSP 24
// message from client to mnode
// message from client to mnode
#define TSDB_MSG_TYPE_CM_CONNECT 31
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_CONNECT
,
"connect"
)
// 31
#define TSDB_MSG_TYPE_CM_CONNECT_RSP 32
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_CREATE_ACCT
,
"create-acct"
)
// 33
#define TSDB_MSG_TYPE_CM_CREATE_ACCT 33
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_ALTER_ACCT
,
"alter-acct"
)
// 35
#define TSDB_MSG_TYPE_CM_CREATE_ACCT_RSP 34
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_DROP_ACCT
,
"drop-acct"
)
// 37
#define TSDB_MSG_TYPE_CM_ALTER_ACCT 35
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_CREATE_USER
,
"create-user"
)
// 39
#define TSDB_MSG_TYPE_CM_ALTER_ACCT_RSP 36
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_ALTER_USER
,
"alter-user"
)
// 41
#define TSDB_MSG_TYPE_CM_DROP_ACCT 37
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_DROP_USER
,
"drop-user"
)
// 43
#define TSDB_MSG_TYPE_CM_DROP_ACCT_RSP 38
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_CREATE_DNODE
,
"create-dnode"
)
// 45
#define TSDB_MSG_TYPE_CM_CREATE_USER 39
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_DROP_DNODE
,
"drop-dnode"
)
// 47
#define TSDB_MSG_TYPE_CM_CREATE_USER_RSP 40
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_CREATE_DB
,
"create-db"
)
// 49
#define TSDB_MSG_TYPE_CM_ALTER_USER 41
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_DROP_DB
,
"drop-db"
)
// 51
#define TSDB_MSG_TYPE_CM_ALTER_USER_RSP 42
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_USE_DB
,
"use-db"
)
// 53
#define TSDB_MSG_TYPE_CM_DROP_USER 43
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_ALTER_DB
,
"alter-db"
)
// 55
#define TSDB_MSG_TYPE_CM_DROP_USER_RSP 44
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_CREATE_TABLE
,
"create-table"
)
// 57
#define TSDB_MSG_TYPE_CM_CREATE_DNODE 45
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_DROP_TABLE
,
"drop-table"
)
// 59
#define TSDB_MSG_TYPE_CM_CREATE_DNODE_RSP 46
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_ALTER_TABLE
,
"alter-table"
)
// 61
#define TSDB_MSG_TYPE_CM_DROP_DNODE 47
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_TABLE_META
,
"table-meta"
)
// 63
#define TSDB_MSG_TYPE_CM_DROP_DNODE_RSP 48
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_STABLE_VGROUP
,
"stable-vgroup"
)
// 65
#define TSDB_MSG_TYPE_CM_CONFIG_DNODE TSDB_MSG_TYPE_MD_CONFIG_DNODE
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_TABLES_META
,
"tables-meta"
)
// 67
#define TSDB_MSG_TYPE_CM_CONFIG_DNODE_RSP TSDB_MSG_TYPE_MD_CONFIG_DNODE_RSP
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_ALTER_STREAM
,
"alter-stream"
)
// 69
#define TSDB_MSG_TYPE_CM_CREATE_DB 49
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_SHOW
,
"show"
)
// 71
#define TSDB_MSG_TYPE_CM_CREATE_DB_RSP 50
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_KILL_QUERY
,
"kill-query"
)
// 73
#define TSDB_MSG_TYPE_CM_DROP_DB 51
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_KILL_STREAM
,
"kill-stream"
)
// 75
#define TSDB_MSG_TYPE_CM_DROP_DB_RSP 52
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_KILL_CONN
,
"kill-conn"
)
// 77
#define TSDB_MSG_TYPE_CM_USE_DB 53
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_HEARTBEAT
,
"heartbeat"
)
// 79
#define TSDB_MSG_TYPE_CM_USE_DB_RSP 54
#define TSDB_MSG_TYPE_CM_ALTER_DB 55
#define TSDB_MSG_TYPE_CM_ALTER_DB_RSP 56
#define TSDB_MSG_TYPE_CM_CREATE_TABLE 57
#define TSDB_MSG_TYPE_CM_CREATE_TABLE_RSP 58
#define TSDB_MSG_TYPE_CM_DROP_TABLE 59
#define TSDB_MSG_TYPE_CM_DROP_TABLE_RSP 60
#define TSDB_MSG_TYPE_CM_ALTER_TABLE 61
#define TSDB_MSG_TYPE_CM_ALTER_TABLE_RSP 62
#define TSDB_MSG_TYPE_CM_TABLE_META 63
#define TSDB_MSG_TYPE_CM_TABLE_META_RSP 64
#define TSDB_MSG_TYPE_CM_STABLE_VGROUP 65
#define TSDB_MSG_TYPE_CM_STABLE_VGROUP_RSP 66
#define TSDB_MSG_TYPE_CM_TABLES_META 67
#define TSDB_MSG_TYPE_CM_TABLES_META_RSP 68
#define TSDB_MSG_TYPE_CM_ALTER_STREAM 69
#define TSDB_MSG_TYPE_CM_ALTER_STREAM_RSP 70
#define TSDB_MSG_TYPE_CM_SHOW 71
#define TSDB_MSG_TYPE_CM_SHOW_RSP 72
#define TSDB_MSG_TYPE_CM_KILL_QUERY 73
#define TSDB_MSG_TYPE_CM_KILL_QUERY_RSP 74
#define TSDB_MSG_TYPE_CM_KILL_STREAM 75
#define TSDB_MSG_TYPE_CM_KILL_STREAM_RSP 76
#define TSDB_MSG_TYPE_CM_KILL_CONN 77
#define TSDB_MSG_TYPE_CM_KILL_CONN_RSP 78
#define TSDB_MSG_TYPE_CM_HEARTBEAT 79
#define TSDB_MSG_TYPE_CM_HEARTBEAT_RSP 80
// message from dnode to mnode
// message from dnode to mnode
#define TSDB_MSG_TYPE_DM_CONFIG_TABLE 91
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_DM_CONFIG_TABLE
,
"config-table"
)
// 91
#define TSDB_MSG_TYPE_DM_CONFIG_TABLE_RSP 92
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_DM_CONFIG_VNODE
,
"config-vnode"
)
// 93
#define TSDB_MSG_TYPE_DM_CONFIG_VNODE 93
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_DM_STATUS
,
"status"
)
// 95
#define TSDB_MSG_TYPE_DM_CONFIG_VNODE_RSP 94
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_DM_GRANT
,
"grant"
)
// 97
#define TSDB_MSG_TYPE_DM_STATUS 95
#define TSDB_MSG_TYPE_DM_STATUS_RSP 96
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_SDB_SYNC
,
"sdb-sync"
)
// 101
#define TSDB_MSG_TYPE_DM_GRANT 97
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_SDB_FORWARD
,
"sdb-forward"
)
// 103
#define TSDB_MSG_TYPE_DM_GRANT_RSP 98
#ifndef TAOS_MESSAGE_C
#define TSDB_MSG_TYPE_SDB_SYNC 101
TSDB_MSG_TYPE_MAX
// 105
#define TSDB_MSG_TYPE_SDB_SYNC_RSP 102
#endif
#define TSDB_MSG_TYPE_SDB_FORWARD 103
#define TSDB_MSG_TYPE_SDB_FORWARD_RSP 104
};
#define TSDB_MSG_TYPE_MAX 105
#define TSDB_MSG_TYPE_CM_CONFIG_DNODE TSDB_MSG_TYPE_MD_CONFIG_DNODE
#define TSDB_MSG_TYPE_CM_CONFIG_DNODE_RSP TSDB_MSG_TYPE_MD_CONFIG_DNODE_RSP
// IE type
// IE type
#define TSDB_IE_TYPE_SEC 1
#define TSDB_IE_TYPE_SEC 1
...
...
src/kit/shell/inc/shell.h
浏览文件 @
6e8f3055
...
@@ -61,6 +61,7 @@ struct arguments {
...
@@ -61,6 +61,7 @@ struct arguments {
int
threadNum
;
int
threadNum
;
char
*
commands
;
char
*
commands
;
int
abort
;
int
abort
;
int
port
;
};
};
/**************** Function declarations ****************/
/**************** Function declarations ****************/
...
...
src/kit/shell/src/shellDarwin.c
浏览文件 @
6e8f3055
...
@@ -81,7 +81,7 @@ void shellParseArgument(int argc, char *argv[], struct arguments *arguments) {
...
@@ -81,7 +81,7 @@ void shellParseArgument(int argc, char *argv[], struct arguments *arguments) {
// for management port
// for management port
else
if
(
strcmp
(
argv
[
i
],
"-P"
)
==
0
)
{
else
if
(
strcmp
(
argv
[
i
],
"-P"
)
==
0
)
{
if
(
i
<
argc
-
1
)
{
if
(
i
<
argc
-
1
)
{
tsMnodeShellP
ort
=
atoi
(
argv
[
++
i
]);
arguments
->
p
ort
=
atoi
(
argv
[
++
i
]);
}
else
{
}
else
{
fprintf
(
stderr
,
"option -P requires an argument
\n
"
);
fprintf
(
stderr
,
"option -P requires an argument
\n
"
);
exit
(
EXIT_FAILURE
);
exit
(
EXIT_FAILURE
);
...
...
src/kit/shell/src/shellEngine.c
浏览文件 @
6e8f3055
...
@@ -66,7 +66,7 @@ TAOS *shellInit(struct arguments *args) {
...
@@ -66,7 +66,7 @@ TAOS *shellInit(struct arguments *args) {
tsTableMetaKeepTimer
=
3000
;
tsTableMetaKeepTimer
=
3000
;
// Connect to the database.
// Connect to the database.
TAOS
*
con
=
taos_connect
(
args
->
host
,
args
->
user
,
args
->
password
,
args
->
database
,
tsMnodeShellP
ort
);
TAOS
*
con
=
taos_connect
(
args
->
host
,
args
->
user
,
args
->
password
,
args
->
database
,
args
->
p
ort
);
if
(
con
==
NULL
)
{
if
(
con
==
NULL
)
{
return
con
;
return
con
;
}
}
...
...
src/kit/shell/src/shellLinux.c
浏览文件 @
6e8f3055
...
@@ -63,7 +63,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
...
@@ -63,7 +63,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
break
;
break
;
case
'P'
:
case
'P'
:
if
(
arg
)
{
if
(
arg
)
{
tsMnodeShellP
ort
=
atoi
(
arg
);
arguments
->
p
ort
=
atoi
(
arg
);
}
else
{
}
else
{
fprintf
(
stderr
,
"Invalid port
\n
"
);
fprintf
(
stderr
,
"Invalid port
\n
"
);
return
-
1
;
return
-
1
;
...
...
src/kit/shell/src/shellWindows.c
浏览文件 @
6e8f3055
...
@@ -61,7 +61,7 @@ void shellParseArgument(int argc, char *argv[], struct arguments *arguments) {
...
@@ -61,7 +61,7 @@ void shellParseArgument(int argc, char *argv[], struct arguments *arguments) {
// for management port
// for management port
else
if
(
strcmp
(
argv
[
i
],
"-P"
)
==
0
)
{
else
if
(
strcmp
(
argv
[
i
],
"-P"
)
==
0
)
{
if
(
i
<
argc
-
1
)
{
if
(
i
<
argc
-
1
)
{
tsMnodeShellP
ort
=
atoi
(
argv
[
++
i
]);
arguments
->
p
ort
=
atoi
(
argv
[
++
i
]);
}
else
{
}
else
{
fprintf
(
stderr
,
"option -P requires an argument
\n
"
);
fprintf
(
stderr
,
"option -P requires an argument
\n
"
);
exit
(
EXIT_FAILURE
);
exit
(
EXIT_FAILURE
);
...
...
src/mnode/src/mgmtDServer.c
浏览文件 @
6e8f3055
...
@@ -52,14 +52,14 @@ int32_t mgmtInitDServer() {
...
@@ -52,14 +52,14 @@ int32_t mgmtInitDServer() {
rpcInit
.
idleTime
=
tsShellActivityTimer
*
1000
;
rpcInit
.
idleTime
=
tsShellActivityTimer
*
1000
;
rpcInit
.
afp
=
mgmtDServerRetrieveAuth
;
rpcInit
.
afp
=
mgmtDServerRetrieveAuth
;
tsMgmtDServerQhandle
=
taosInitScheduler
(
tsMaxShellConns
,
1
,
"MS"
);
tsMgmtDServerRpc
=
rpcOpen
(
&
rpcInit
);
tsMgmtDServerRpc
=
rpcOpen
(
&
rpcInit
);
if
(
tsMgmtDServerRpc
==
NULL
)
{
if
(
tsMgmtDServerRpc
==
NULL
)
{
mError
(
"failed to init server connection to dnode"
);
mError
(
"failed to init server connection to dnode"
);
return
-
1
;
return
-
1
;
}
}
tsMgmtDServerQhandle
=
taosInitScheduler
(
tsMaxShellConns
,
1
,
"MS"
);
mPrint
(
"server connection to dnode is opened"
);
mPrint
(
"server connection to dnode is opened"
);
return
0
;
return
0
;
}
}
...
...
src/mnode/src/mgmtDnode.c
浏览文件 @
6e8f3055
...
@@ -426,6 +426,7 @@ static int32_t mgmtDropDnodeByEp(char *ep) {
...
@@ -426,6 +426,7 @@ static int32_t mgmtDropDnodeByEp(char *ep) {
return
TSDB_CODE_NO_REMOVE_MASTER
;
return
TSDB_CODE_NO_REMOVE_MASTER
;
}
}
mPrint
(
"dnode:%d, start to drop it"
,
pDnode
->
dnodeId
);
#ifndef _SYNC
#ifndef _SYNC
return
mgmtDropDnode
(
pDnode
);
return
mgmtDropDnode
(
pDnode
);
#else
#else
...
...
src/mnode/src/mgmtSdb.c
浏览文件 @
6e8f3055
...
@@ -143,7 +143,9 @@ static void *sdbGetTableFromId(int32_t tableId) {
...
@@ -143,7 +143,9 @@ static void *sdbGetTableFromId(int32_t tableId) {
static
int32_t
sdbInitWal
()
{
static
int32_t
sdbInitWal
()
{
SWalCfg
walCfg
=
{.
walLevel
=
2
,
.
wals
=
2
,
.
keep
=
1
};
SWalCfg
walCfg
=
{.
walLevel
=
2
,
.
wals
=
2
,
.
keep
=
1
};
tsSdbObj
.
wal
=
walOpen
(
tsMnodeDir
,
&
walCfg
);
char
temp
[
TSDB_FILENAME_LEN
];
sprintf
(
temp
,
"%s/wal"
,
tsMnodeDir
);
tsSdbObj
.
wal
=
walOpen
(
temp
,
&
walCfg
);
if
(
tsSdbObj
.
wal
==
NULL
)
{
if
(
tsSdbObj
.
wal
==
NULL
)
{
sdbError
(
"failed to open sdb wal in %s"
,
tsMnodeDir
);
sdbError
(
"failed to open sdb wal in %s"
,
tsMnodeDir
);
return
-
1
;
return
-
1
;
...
@@ -196,8 +198,7 @@ static uint32_t sdbGetFileInfo(void *ahandle, char *name, uint32_t *index, int32
...
@@ -196,8 +198,7 @@ static uint32_t sdbGetFileInfo(void *ahandle, char *name, uint32_t *index, int32
}
}
static
int
sdbGetWalInfo
(
void
*
ahandle
,
char
*
name
,
uint32_t
*
index
)
{
static
int
sdbGetWalInfo
(
void
*
ahandle
,
char
*
name
,
uint32_t
*
index
)
{
strcpy
(
name
,
"wal0"
);
return
walGetWalFile
(
tsSdbObj
.
wal
,
name
,
index
);
return
0
;
}
}
static
void
sdbNotifyRole
(
void
*
ahandle
,
int8_t
role
)
{
static
void
sdbNotifyRole
(
void
*
ahandle
,
int8_t
role
)
{
...
@@ -281,7 +282,7 @@ void sdbUpdateSync() {
...
@@ -281,7 +282,7 @@ void sdbUpdateSync() {
syncInfo
.
vgId
=
1
;
syncInfo
.
vgId
=
1
;
syncInfo
.
version
=
sdbGetVersion
();
syncInfo
.
version
=
sdbGetVersion
();
syncInfo
.
syncCfg
=
syncCfg
;
syncInfo
.
syncCfg
=
syncCfg
;
sprintf
(
syncInfo
.
path
,
"%s
/
"
,
tsMnodeDir
);
sprintf
(
syncInfo
.
path
,
"%s"
,
tsMnodeDir
);
syncInfo
.
ahandle
=
NULL
;
syncInfo
.
ahandle
=
NULL
;
syncInfo
.
getWalInfo
=
sdbGetWalInfo
;
syncInfo
.
getWalInfo
=
sdbGetWalInfo
;
syncInfo
.
getFileInfo
=
sdbGetFileInfo
;
syncInfo
.
getFileInfo
=
sdbGetFileInfo
;
...
...
src/mnode/src/mgmtUser.c
浏览文件 @
6e8f3055
...
@@ -396,7 +396,7 @@ static void mgmtProcessAlterUserMsg(SQueuedMsg *pMsg) {
...
@@ -396,7 +396,7 @@ static void mgmtProcessAlterUserMsg(SQueuedMsg *pMsg) {
code
=
mgmtUpdateUser
(
pUser
);
code
=
mgmtUpdateUser
(
pUser
);
mLPrint
(
"user:%s, password is altered by %s, result:%s"
,
pUser
->
user
,
pOperUser
->
user
,
tstrerror
(
code
));
mLPrint
(
"user:%s, password is altered by %s, result:%s"
,
pUser
->
user
,
pOperUser
->
user
,
tstrerror
(
code
));
}
else
{
}
else
{
mError
(
"user:%s, no rights to ater user"
,
pOperUser
->
user
);
mError
(
"user:%s, no rights to a
l
ter user"
,
pOperUser
->
user
);
code
=
TSDB_CODE_NO_RIGHTS
;
code
=
TSDB_CODE_NO_RIGHTS
;
}
}
...
@@ -439,13 +439,13 @@ static void mgmtProcessAlterUserMsg(SQueuedMsg *pMsg) {
...
@@ -439,13 +439,13 @@ static void mgmtProcessAlterUserMsg(SQueuedMsg *pMsg) {
code
=
mgmtUpdateUser
(
pUser
);
code
=
mgmtUpdateUser
(
pUser
);
mLPrint
(
"user:%s, privilege is altered by %s, result:%s"
,
pUser
->
user
,
pOperUser
->
user
,
tstrerror
(
code
));
mLPrint
(
"user:%s, privilege is altered by %s, result:%s"
,
pUser
->
user
,
pOperUser
->
user
,
tstrerror
(
code
));
}
else
{
}
else
{
mError
(
"user:%s, no rights to ater user"
,
pOperUser
->
user
);
mError
(
"user:%s, no rights to a
l
ter user"
,
pOperUser
->
user
);
code
=
TSDB_CODE_NO_RIGHTS
;
code
=
TSDB_CODE_NO_RIGHTS
;
}
}
mgmtSendSimpleResp
(
pMsg
->
thandle
,
code
);
mgmtSendSimpleResp
(
pMsg
->
thandle
,
code
);
}
else
{
}
else
{
mError
(
"user:%s, no rights to ater user"
,
pOperUser
->
user
);
mError
(
"user:%s, no rights to a
l
ter user"
,
pOperUser
->
user
);
mgmtSendSimpleResp
(
pMsg
->
thandle
,
TSDB_CODE_NO_RIGHTS
);
mgmtSendSimpleResp
(
pMsg
->
thandle
,
TSDB_CODE_NO_RIGHTS
);
}
}
...
...
src/mnode/src/mgmtVgroup.c
浏览文件 @
6e8f3055
...
@@ -160,10 +160,7 @@ static int32_t mgmtVgroupActionUpdate(SSdbOper *pOper) {
...
@@ -160,10 +160,7 @@ static int32_t mgmtVgroupActionUpdate(SSdbOper *pOper) {
mgmtDecVgroupRef
(
pVgroup
);
mgmtDecVgroupRef
(
pVgroup
);
mTrace
(
"vgId:%d, is updated, numOfVnode:%d"
,
pVgroup
->
vgId
,
pVgroup
->
numOfVnodes
);
mTrace
(
"vgId:%d, is updated, numOfVnode:%d tables:%d"
,
pVgroup
->
vgId
,
pVgroup
->
numOfVnodes
,
pDb
==
NULL
?
0
:
pDb
->
cfg
.
maxTables
);
if
(
pDb
)
{
mTrace
(
"tables:%d"
,
pDb
->
cfg
.
maxTables
);
}
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
...
...
src/rpc/src/rpcMain.c
浏览文件 @
6e8f3055
...
@@ -1364,7 +1364,7 @@ static int rpcCheckAuthentication(SRpcConn *pConn, char *msg, int msgLen) {
...
@@ -1364,7 +1364,7 @@ static int rpcCheckAuthentication(SRpcConn *pConn, char *msg, int msgLen) {
}
}
}
}
}
else
{
}
else
{
tTrace
(
"%s %p, auth spi
not matched, msg discarded"
,
pRpc
->
label
,
pConn
);
tTrace
(
"%s %p, auth spi
:%d not matched with received:%d"
,
pRpc
->
label
,
pConn
,
pConn
->
spi
,
pHead
->
spi
);
code
=
TSDB_CODE_AUTH_FAILURE
;
code
=
TSDB_CODE_AUTH_FAILURE
;
}
}
...
...
src/tsdb/inc/tsdbMain.h
浏览文件 @
6e8f3055
...
@@ -160,6 +160,7 @@ typedef struct {
...
@@ -160,6 +160,7 @@ typedef struct {
typedef
struct
{
typedef
struct
{
int64_t
index
;
int64_t
index
;
int
numOfCacheBlocks
;
SList
*
memPool
;
SList
*
memPool
;
}
STsdbCachePool
;
}
STsdbCachePool
;
...
@@ -227,13 +228,13 @@ typedef struct {
...
@@ -227,13 +228,13 @@ typedef struct {
int
maxFGroups
;
int
maxFGroups
;
int
numOfFGroups
;
int
numOfFGroups
;
SFileGroup
fGroup
[]
;
SFileGroup
*
fGroup
;
}
STsdbFileH
;
}
STsdbFileH
;
#define TSDB_MIN_FILE_ID(fh) (fh)->fGroup[0].fileId
#define TSDB_MIN_FILE_ID(fh) (fh)->fGroup[0].fileId
#define TSDB_MAX_FILE_ID(fh) (fh)->fGroup[(fh)->numOfFGroups - 1].fileId
#define TSDB_MAX_FILE_ID(fh) (fh)->fGroup[(fh)->numOfFGroups - 1].fileId
STsdbFileH
*
tsdbInitFileH
(
char
*
dataDir
,
int
maxFiles
);
STsdbFileH
*
tsdbInitFileH
(
char
*
dataDir
,
STsdbCfg
*
pCfg
);
void
tsdbCloseFileH
(
STsdbFileH
*
pFileH
);
void
tsdbCloseFileH
(
STsdbFileH
*
pFileH
);
int
tsdbCreateFile
(
char
*
dataDir
,
int
fileId
,
const
char
*
suffix
,
int
maxTables
,
SFile
*
pFile
,
int
writeHeader
,
int
tsdbCreateFile
(
char
*
dataDir
,
int
fileId
,
const
char
*
suffix
,
int
maxTables
,
SFile
*
pFile
,
int
writeHeader
,
int
toClose
);
int
toClose
);
...
@@ -261,11 +262,12 @@ SFileGroup *tsdbGetFileGroupNext(SFileGroupIter *pIter);
...
@@ -261,11 +262,12 @@ SFileGroup *tsdbGetFileGroupNext(SFileGroupIter *pIter);
typedef
struct
{
typedef
struct
{
int32_t
len
;
int32_t
len
;
int32_t
offset
;
int32_t
offset
;
int32_t
padding
;
// For padding purpose
int32_t
hasLast
:
1
;
int32_t
hasLast
:
1
;
int32_t
numOfBlocks
:
31
;
int32_t
numOfBlocks
:
31
;
int
32_t
checksum
;
int
64_t
uid
;
TSKEY
maxKey
;
TSKEY
maxKey
;
}
SCompIdx
;
/* sizeof(SCompIdx) = 2
4
*/
}
SCompIdx
;
/* sizeof(SCompIdx) = 2
8
*/
/**
/**
* if numOfSubBlocks == 0, then the SCompBlock is a sub-block
* if numOfSubBlocks == 0, then the SCompBlock is a sub-block
...
@@ -485,6 +487,11 @@ int tsdbMoveLastBlockIfNeccessary(SRWHelper *pHelper);
...
@@ -485,6 +487,11 @@ int tsdbMoveLastBlockIfNeccessary(SRWHelper *pHelper);
int
tsdbWriteCompInfo
(
SRWHelper
*
pHelper
);
int
tsdbWriteCompInfo
(
SRWHelper
*
pHelper
);
int
tsdbWriteCompIdx
(
SRWHelper
*
pHelper
);
int
tsdbWriteCompIdx
(
SRWHelper
*
pHelper
);
// --------- Other functions need to further organize
void
tsdbFitRetention
(
STsdbRepo
*
pRepo
);
int
tsdbAlterCacheTotalBlocks
(
STsdbRepo
*
pRepo
,
int
totalBlocks
);
void
tsdbAdjustCacheBlocks
(
STsdbCache
*
pCache
);
#ifdef __cplusplus
#ifdef __cplusplus
}
}
#endif
#endif
...
...
src/tsdb/src/tsdbCache.c
浏览文件 @
6e8f3055
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
static
int
tsdbAllocBlockFromPool
(
STsdbCache
*
pCache
);
static
int
tsdbAllocBlockFromPool
(
STsdbCache
*
pCache
);
static
void
tsdbFreeBlockList
(
SList
*
list
);
static
void
tsdbFreeBlockList
(
SList
*
list
);
static
void
tsdbFreeCacheMem
(
SCacheMem
*
mem
);
static
void
tsdbFreeCacheMem
(
SCacheMem
*
mem
);
static
int
tsdbAddCacheBlockToPool
(
STsdbCache
*
pCache
);
STsdbCache
*
tsdbInitCache
(
int
cacheBlockSize
,
int
totalBlocks
,
TsdbRepoT
*
pRepo
)
{
STsdbCache
*
tsdbInitCache
(
int
cacheBlockSize
,
int
totalBlocks
,
TsdbRepoT
*
pRepo
)
{
STsdbCache
*
pCache
=
(
STsdbCache
*
)
calloc
(
1
,
sizeof
(
STsdbCache
));
STsdbCache
*
pCache
=
(
STsdbCache
*
)
calloc
(
1
,
sizeof
(
STsdbCache
));
...
@@ -40,13 +41,7 @@ STsdbCache *tsdbInitCache(int cacheBlockSize, int totalBlocks, TsdbRepoT *pRepo)
...
@@ -40,13 +41,7 @@ STsdbCache *tsdbInitCache(int cacheBlockSize, int totalBlocks, TsdbRepoT *pRepo)
if
(
pPool
->
memPool
==
NULL
)
goto
_err
;
if
(
pPool
->
memPool
==
NULL
)
goto
_err
;
for
(
int
i
=
0
;
i
<
totalBlocks
;
i
++
)
{
for
(
int
i
=
0
;
i
<
totalBlocks
;
i
++
)
{
STsdbCacheBlock
*
pBlock
=
(
STsdbCacheBlock
*
)
malloc
(
sizeof
(
STsdbCacheBlock
)
+
cacheBlockSize
);
if
(
tsdbAddCacheBlockToPool
(
pCache
)
<
0
)
goto
_err
;
if
(
pBlock
==
NULL
)
{
goto
_err
;
}
pBlock
->
offset
=
0
;
pBlock
->
remain
=
cacheBlockSize
;
tdListAppend
(
pPool
->
memPool
,
(
void
*
)(
&
pBlock
));
}
}
pCache
->
mem
=
NULL
;
pCache
->
mem
=
NULL
;
...
@@ -143,3 +138,69 @@ static int tsdbAllocBlockFromPool(STsdbCache *pCache) {
...
@@ -143,3 +138,69 @@ static int tsdbAllocBlockFromPool(STsdbCache *pCache) {
return
0
;
return
0
;
}
}
int
tsdbAlterCacheTotalBlocks
(
STsdbRepo
*
pRepo
,
int
totalBlocks
)
{
STsdbCache
*
pCache
=
pRepo
->
tsdbCache
;
int
oldNumOfBlocks
=
pCache
->
totalCacheBlocks
;
tsdbLockRepo
((
TsdbRepoT
*
)
pRepo
);
ASSERT
(
pCache
->
totalCacheBlocks
!=
totalBlocks
);
if
(
pCache
->
totalCacheBlocks
<
totalBlocks
)
{
ASSERT
(
pCache
->
totalCacheBlocks
==
pCache
->
pool
.
numOfCacheBlocks
);
int
blocksToAdd
=
pCache
->
totalCacheBlocks
-
totalBlocks
;
pCache
->
totalCacheBlocks
=
totalBlocks
;
for
(
int
i
=
0
;
i
<
blocksToAdd
;
i
++
)
{
if
(
tsdbAddCacheBlockToPool
(
pCache
)
<
0
)
{
tsdbUnLockRepo
((
TsdbRepoT
*
)
pRepo
);
tsdbError
(
"tsdbId %d: failed to add cache block to cache pool"
,
pRepo
->
config
.
tsdbId
);
return
-
1
;
}
}
}
else
{
pCache
->
totalCacheBlocks
=
totalBlocks
;
tsdbAdjustCacheBlocks
(
pCache
);
}
tsdbUnLockRepo
((
TsdbRepoT
*
)
pRepo
);
tsdbTrace
(
"tsdbId %d: tsdb total cache blocks changed from %d to %d"
,
pRepo
->
config
.
tsdbId
,
oldNumOfBlocks
,
totalBlocks
);
return
0
;
}
static
int
tsdbAddCacheBlockToPool
(
STsdbCache
*
pCache
)
{
STsdbCachePool
*
pPool
=
&
pCache
->
pool
;
STsdbCacheBlock
*
pBlock
=
malloc
(
sizeof
(
STsdbCacheBlock
)
+
pCache
->
cacheBlockSize
);
if
(
pBlock
==
NULL
)
return
-
1
;
pBlock
->
offset
=
0
;
pBlock
->
remain
=
pCache
->
cacheBlockSize
;
tdListAppend
(
pPool
->
memPool
,
(
void
*
)(
&
pBlock
));
pPool
->
numOfCacheBlocks
++
;
return
0
;
}
static
int
tsdbRemoveCacheBlockFromPool
(
STsdbCache
*
pCache
)
{
STsdbCachePool
*
pPool
=
&
pCache
->
pool
;
STsdbCacheBlock
*
pBlock
=
NULL
;
ASSERT
(
pCache
->
totalCacheBlocks
>=
0
);
SListNode
*
node
=
tdListPopHead
(
pPool
->
memPool
);
if
(
node
==
NULL
)
return
-
1
;
tdListNodeGetData
(
pPool
->
memPool
,
node
,
&
pBlock
);
free
(
pBlock
);
listNodeFree
(
node
);
pPool
->
numOfCacheBlocks
--
;
return
0
;
}
void
tsdbAdjustCacheBlocks
(
STsdbCache
*
pCache
)
{
while
(
pCache
->
totalCacheBlocks
<
pCache
->
pool
.
numOfCacheBlocks
)
{
if
(
tsdbRemoveCacheBlockFromPool
(
pCache
)
<
0
)
break
;
}
}
\ No newline at end of file
src/tsdb/src/tsdbFile.c
浏览文件 @
6e8f3055
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include "tchecksum.h"
#include "tchecksum.h"
#include "tsdbMain.h"
#include "tsdbMain.h"
#include "tutil.h"
#include "tutil.h"
#include "ttime.h"
const
char
*
tsdbFileSuffix
[]
=
{
const
char
*
tsdbFileSuffix
[]
=
{
".head"
,
// TSDB_FILE_TYPE_HEAD
".head"
,
// TSDB_FILE_TYPE_HEAD
...
@@ -40,13 +41,19 @@ static int tsdbWriteFileHead(SFile *pFile);
...
@@ -40,13 +41,19 @@ static int tsdbWriteFileHead(SFile *pFile);
static
int
tsdbWriteHeadFileIdx
(
SFile
*
pFile
,
int
maxTables
);
static
int
tsdbWriteHeadFileIdx
(
SFile
*
pFile
,
int
maxTables
);
static
int
tsdbOpenFGroup
(
STsdbFileH
*
pFileH
,
char
*
dataDir
,
int
fid
);
static
int
tsdbOpenFGroup
(
STsdbFileH
*
pFileH
,
char
*
dataDir
,
int
fid
);
STsdbFileH
*
tsdbInitFileH
(
char
*
dataDir
,
int
maxFiles
)
{
STsdbFileH
*
tsdbInitFileH
(
char
*
dataDir
,
STsdbCfg
*
pCfg
)
{
STsdbFileH
*
pFileH
=
(
STsdbFileH
*
)
calloc
(
1
,
sizeof
(
STsdbFileH
)
+
sizeof
(
SFileGroup
)
*
maxFiles
);
STsdbFileH
*
pFileH
=
(
STsdbFileH
*
)
calloc
(
1
,
sizeof
(
STsdbFileH
));
if
(
pFileH
==
NULL
)
{
// TODO: deal with ERROR here
if
(
pFileH
==
NULL
)
{
// TODO: deal with ERROR here
return
NULL
;
return
NULL
;
}
}
pFileH
->
maxFGroups
=
maxFiles
;
pFileH
->
maxFGroups
=
pCfg
->
keep
/
pCfg
->
daysPerFile
+
3
;
pFileH
->
fGroup
=
(
SFileGroup
*
)
calloc
(
pFileH
->
maxFGroups
,
sizeof
(
SFileGroup
));
if
(
pFileH
->
fGroup
==
NULL
)
{
free
(
pFileH
);
return
NULL
;
}
DIR
*
dir
=
opendir
(
dataDir
);
DIR
*
dir
=
opendir
(
dataDir
);
if
(
dir
==
NULL
)
{
if
(
dir
==
NULL
)
{
...
@@ -69,7 +76,12 @@ STsdbFileH *tsdbInitFileH(char *dataDir, int maxFiles) {
...
@@ -69,7 +76,12 @@ STsdbFileH *tsdbInitFileH(char *dataDir, int maxFiles) {
return
pFileH
;
return
pFileH
;
}
}
void
tsdbCloseFileH
(
STsdbFileH
*
pFileH
)
{
free
(
pFileH
);
}
void
tsdbCloseFileH
(
STsdbFileH
*
pFileH
)
{
if
(
pFileH
)
{
tfree
(
pFileH
->
fGroup
);
free
(
pFileH
);
}
}
static
int
tsdbInitFile
(
char
*
dataDir
,
int
fid
,
const
char
*
suffix
,
SFile
*
pFile
)
{
static
int
tsdbInitFile
(
char
*
dataDir
,
int
fid
,
const
char
*
suffix
,
SFile
*
pFile
)
{
tsdbGetFileName
(
dataDir
,
fid
,
suffix
,
pFile
->
fname
);
tsdbGetFileName
(
dataDir
,
fid
,
suffix
,
pFile
->
fname
);
...
@@ -161,6 +173,18 @@ void tsdbInitFileGroupIter(STsdbFileH *pFileH, SFileGroupIter *pIter, int direct
...
@@ -161,6 +173,18 @@ void tsdbInitFileGroupIter(STsdbFileH *pFileH, SFileGroupIter *pIter, int direct
}
}
}
}
void
tsdbFitRetention
(
STsdbRepo
*
pRepo
)
{
STsdbFileH
*
pFileH
=
pRepo
->
tsdbFileH
;
SFileGroup
*
pGroup
=
pFileH
->
fGroup
;
int
mfid
=
tsdbGetKeyFileId
(
taosGetTimestamp
(
pRepo
->
config
.
precision
),
pRepo
->
config
.
daysPerFile
,
pRepo
->
config
.
precision
);
while
(
pFileH
->
numOfFGroups
>
0
&&
pGroup
[
0
].
fileId
<
mfid
)
{
tsdbRemoveFileGroup
(
pFileH
,
pGroup
[
0
].
fileId
);
}
}
void
tsdbSeekFileGroupIter
(
SFileGroupIter
*
pIter
,
int
fid
)
{
void
tsdbSeekFileGroupIter
(
SFileGroupIter
*
pIter
,
int
fid
)
{
if
(
pIter
->
numOfFGroups
==
0
)
{
if
(
pIter
->
numOfFGroups
==
0
)
{
assert
(
pIter
->
pFileGroup
==
NULL
);
assert
(
pIter
->
pFileGroup
==
NULL
);
...
@@ -252,43 +276,6 @@ int tsdbCopyBlockDataInFile(SFile *pOutFile, SFile *pInFile, SCompInfo *pCompInf
...
@@ -252,43 +276,6 @@ int tsdbCopyBlockDataInFile(SFile *pOutFile, SFile *pInFile, SCompInfo *pCompInf
return
0
;
return
0
;
}
}
// int tsdbLoadCompIdx(SFileGroup *pGroup, void *buf, int maxTables) {
// SFile *pFile = &(pGroup->files[TSDB_FILE_TYPE_HEAD]);
// if (lseek(pFile->fd, TSDB_FILE_HEAD_SIZE, SEEK_SET) < 0) return -1;
// if (read(pFile->fd, buf, sizeof(SCompIdx) * maxTables) < 0) return -1;
// // TODO: need to check the correctness
// return 0;
// }
// int tsdbLoadCompBlocks(SFileGroup *pGroup, SCompIdx *pIdx, void *buf) {
// SFile *pFile = &(pGroup->files[TSDB_FILE_TYPE_HEAD]);
// if (lseek(pFile->fd, pIdx->offset, SEEK_SET) < 0) return -1;
// if (read(pFile->fd, buf, pIdx->len) < 0) return -1;
// // TODO: need to check the correctness
// return 0;
// }
// int tsdbLoadCompCols(SFile *pFile, SCompBlock *pBlock, void *buf) {
// // assert(pBlock->numOfSubBlocks == 0 || pBlock->numOfSubBlocks == 1);
// if (lseek(pFile->fd, pBlock->offset, SEEK_SET) < 0) return -1;
// size_t size = sizeof(SCompData) + sizeof(SCompCol) * pBlock->numOfCols;
// if (read(pFile->fd, buf, size) < 0) return -1;
// return 0;
// }
// int tsdbLoadColData(SFile *pFile, SCompCol *pCol, int64_t blockBaseOffset, void *buf) {
// if (lseek(pFile->fd, blockBaseOffset + pCol->offset, SEEK_SET) < 0) return -1;
// if (read(pFile->fd, buf, pCol->len) < 0) return -1;
// return 0;
// }
static
int
compFGroupKey
(
const
void
*
key
,
const
void
*
fgroup
)
{
static
int
compFGroupKey
(
const
void
*
key
,
const
void
*
fgroup
)
{
int
fid
=
*
(
int
*
)
key
;
int
fid
=
*
(
int
*
)
key
;
SFileGroup
*
pFGroup
=
(
SFileGroup
*
)
fgroup
;
SFileGroup
*
pFGroup
=
(
SFileGroup
*
)
fgroup
;
...
...
src/tsdb/src/tsdbMain.c
浏览文件 @
6e8f3055
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
#include "tsdbMain.h"
#include "tsdbMain.h"
#include "tscompression.h"
#include "tscompression.h"
#include "tchecksum.h"
#include "tchecksum.h"
#include "ttime.h"
int
tsdbDebugFlag
=
135
;
int
tsdbDebugFlag
=
135
;
...
@@ -27,7 +28,7 @@ static int32_t tsdbCheckAndSetDefaultCfg(STsdbCfg *pCfg);
...
@@ -27,7 +28,7 @@ static int32_t tsdbCheckAndSetDefaultCfg(STsdbCfg *pCfg);
static
int32_t
tsdbSetRepoEnv
(
STsdbRepo
*
pRepo
);
static
int32_t
tsdbSetRepoEnv
(
STsdbRepo
*
pRepo
);
static
int32_t
tsdbDestroyRepoEnv
(
STsdbRepo
*
pRepo
);
static
int32_t
tsdbDestroyRepoEnv
(
STsdbRepo
*
pRepo
);
// static int tsdbOpenMetaFile(char *tsdbDir);
// static int tsdbOpenMetaFile(char *tsdbDir);
static
int32_t
tsdbInsertDataToTable
(
TsdbRepoT
*
repo
,
SSubmitBlk
*
pBlock
);
static
int32_t
tsdbInsertDataToTable
(
TsdbRepoT
*
repo
,
SSubmitBlk
*
pBlock
,
TSKEY
now
);
static
int32_t
tsdbRestoreCfg
(
STsdbRepo
*
pRepo
,
STsdbCfg
*
pCfg
);
static
int32_t
tsdbRestoreCfg
(
STsdbRepo
*
pRepo
,
STsdbCfg
*
pCfg
);
static
int32_t
tsdbGetDataDirName
(
STsdbRepo
*
pRepo
,
char
*
fname
);
static
int32_t
tsdbGetDataDirName
(
STsdbRepo
*
pRepo
,
char
*
fname
);
static
void
*
tsdbCommitData
(
void
*
arg
);
static
void
*
tsdbCommitData
(
void
*
arg
);
...
@@ -35,8 +36,9 @@ static int tsdbCommitToFile(STsdbRepo *pRepo, int fid, SSkipListIterator **i
...
@@ -35,8 +36,9 @@ static int tsdbCommitToFile(STsdbRepo *pRepo, int fid, SSkipListIterator **i
SDataCols
*
pDataCols
);
SDataCols
*
pDataCols
);
static
TSKEY
tsdbNextIterKey
(
SSkipListIterator
*
pIter
);
static
TSKEY
tsdbNextIterKey
(
SSkipListIterator
*
pIter
);
static
int
tsdbHasDataToCommit
(
SSkipListIterator
**
iters
,
int
nIters
,
TSKEY
minKey
,
TSKEY
maxKey
);
static
int
tsdbHasDataToCommit
(
SSkipListIterator
**
iters
,
int
nIters
,
TSKEY
minKey
,
TSKEY
maxKey
);
// static int tsdbWriteBlockToFileImpl(SFile *pFile, SDataCols *pCols, int pointsToWrite, int64_t *offset, int32_t *len,
static
void
tsdbAlterCompression
(
STsdbRepo
*
pRepo
,
int8_t
compression
);
// int64_t uid);
static
void
tsdbAlterKeep
(
STsdbRepo
*
pRepo
,
int32_t
keep
);
static
void
tsdbAlterMaxTables
(
STsdbRepo
*
pRepo
,
int32_t
maxTables
);
#define TSDB_GET_TABLE_BY_ID(pRepo, sid) (((STSDBRepo *)pRepo)->pTableList)[sid]
#define TSDB_GET_TABLE_BY_ID(pRepo, sid) (((STSDBRepo *)pRepo)->pTableList)[sid]
#define TSDB_GET_TABLE_BY_NAME(pRepo, name)
#define TSDB_GET_TABLE_BY_NAME(pRepo, name)
...
@@ -214,7 +216,7 @@ TsdbRepoT *tsdbOpenRepo(char *tsdbDir, STsdbAppH *pAppH) {
...
@@ -214,7 +216,7 @@ TsdbRepoT *tsdbOpenRepo(char *tsdbDir, STsdbAppH *pAppH) {
}
}
tsdbGetDataDirName
(
pRepo
,
dataDir
);
tsdbGetDataDirName
(
pRepo
,
dataDir
);
pRepo
->
tsdbFileH
=
tsdbInitFileH
(
dataDir
,
pRepo
->
config
.
maxTables
);
pRepo
->
tsdbFileH
=
tsdbInitFileH
(
dataDir
,
&
(
pRepo
->
config
)
);
if
(
pRepo
->
tsdbFileH
==
NULL
)
{
if
(
pRepo
->
tsdbFileH
==
NULL
)
{
tsdbFreeCache
(
pRepo
->
tsdbCache
);
tsdbFreeCache
(
pRepo
->
tsdbCache
);
tsdbFreeMeta
(
pRepo
->
tsdbMeta
);
tsdbFreeMeta
(
pRepo
->
tsdbMeta
);
...
@@ -297,10 +299,23 @@ int32_t tsdbCloseRepo(TsdbRepoT *repo) {
...
@@ -297,10 +299,23 @@ int32_t tsdbCloseRepo(TsdbRepoT *repo) {
*/
*/
int32_t
tsdbConfigRepo
(
TsdbRepoT
*
repo
,
STsdbCfg
*
pCfg
)
{
int32_t
tsdbConfigRepo
(
TsdbRepoT
*
repo
,
STsdbCfg
*
pCfg
)
{
STsdbRepo
*
pRepo
=
(
STsdbRepo
*
)
repo
;
STsdbRepo
*
pRepo
=
(
STsdbRepo
*
)
repo
;
STsdbCfg
*
pRCfg
=
&
pRepo
->
config
;
pRepo
->
config
=
*
pCfg
;
if
(
tsdbCheckAndSetDefaultCfg
(
pCfg
)
<
0
)
return
TSDB_CODE_INVALID_CONFIG
;
// TODO
return
0
;
ASSERT
(
pRCfg
->
tsdbId
==
pCfg
->
tsdbId
);
ASSERT
(
pRCfg
->
cacheBlockSize
==
pCfg
->
cacheBlockSize
);
ASSERT
(
pRCfg
->
daysPerFile
==
pCfg
->
daysPerFile
);
ASSERT
(
pRCfg
->
minRowsPerFileBlock
==
pCfg
->
minRowsPerFileBlock
);
ASSERT
(
pRCfg
->
maxRowsPerFileBlock
==
pCfg
->
maxRowsPerFileBlock
);
ASSERT
(
pRCfg
->
precision
==
pCfg
->
precision
);
if
(
pRCfg
->
compression
!=
pCfg
->
compression
)
tsdbAlterCompression
(
pRepo
,
pCfg
->
compression
);
if
(
pRCfg
->
keep
!=
pCfg
->
keep
)
tsdbAlterKeep
(
pRepo
,
pCfg
->
keep
);
if
(
pRCfg
->
totalBlocks
!=
pCfg
->
totalBlocks
)
tsdbAlterCacheTotalBlocks
(
pRepo
,
pCfg
->
totalBlocks
);
if
(
pRCfg
->
maxTables
!=
pCfg
->
maxTables
)
tsdbAlterMaxTables
(
pRepo
,
pCfg
->
maxTables
);
return
TSDB_CODE_SUCCESS
;
}
}
int32_t
tsdbTriggerCommit
(
TsdbRepoT
*
repo
)
{
int32_t
tsdbTriggerCommit
(
TsdbRepoT
*
repo
)
{
...
@@ -394,13 +409,16 @@ STableInfo *tsdbGetTableInfo(TsdbRepoT *pRepo, STableId tableId) {
...
@@ -394,13 +409,16 @@ STableInfo *tsdbGetTableInfo(TsdbRepoT *pRepo, STableId tableId) {
// TODO: need to return the number of data inserted
// TODO: need to return the number of data inserted
int32_t
tsdbInsertData
(
TsdbRepoT
*
repo
,
SSubmitMsg
*
pMsg
)
{
int32_t
tsdbInsertData
(
TsdbRepoT
*
repo
,
SSubmitMsg
*
pMsg
)
{
SSubmitMsgIter
msgIter
;
SSubmitMsgIter
msgIter
;
STsdbRepo
*
pRepo
=
(
STsdbRepo
*
)
repo
;
tsdbInitSubmitMsgIter
(
pMsg
,
&
msgIter
);
tsdbInitSubmitMsgIter
(
pMsg
,
&
msgIter
);
SSubmitBlk
*
pBlock
=
NULL
;
SSubmitBlk
*
pBlock
=
NULL
;
int32_t
code
=
TSDB_CODE_SUCCESS
;
int32_t
code
=
TSDB_CODE_SUCCESS
;
TSKEY
now
=
taosGetTimestamp
(
pRepo
->
config
.
precision
);
while
((
pBlock
=
tsdbGetSubmitMsgNext
(
&
msgIter
))
!=
NULL
)
{
while
((
pBlock
=
tsdbGetSubmitMsgNext
(
&
msgIter
))
!=
NULL
)
{
if
((
code
=
tsdbInsertDataToTable
(
repo
,
pBlock
))
!=
TSDB_CODE_SUCCESS
)
{
if
((
code
=
tsdbInsertDataToTable
(
repo
,
pBlock
,
now
))
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
return
code
;
}
}
}
}
...
@@ -787,21 +805,31 @@ static int32_t tdInsertRowToTable(STsdbRepo *pRepo, SDataRow row, STable *pTable
...
@@ -787,21 +805,31 @@ static int32_t tdInsertRowToTable(STsdbRepo *pRepo, SDataRow row, STable *pTable
return
0
;
return
0
;
}
}
static
int32_t
tsdbInsertDataToTable
(
TsdbRepoT
*
repo
,
SSubmitBlk
*
pBlock
)
{
static
int32_t
tsdbInsertDataToTable
(
TsdbRepoT
*
repo
,
SSubmitBlk
*
pBlock
,
TSKEY
now
)
{
STsdbRepo
*
pRepo
=
(
STsdbRepo
*
)
repo
;
STsdbRepo
*
pRepo
=
(
STsdbRepo
*
)
repo
;
STableId
tableId
=
{.
uid
=
pBlock
->
uid
,
.
tid
=
pBlock
->
tid
};
STableId
tableId
=
{.
uid
=
pBlock
->
uid
,
.
tid
=
pBlock
->
tid
};
STable
*
pTable
=
tsdbIsValidTableToInsert
(
pRepo
->
tsdbMeta
,
tableId
);
STable
*
pTable
=
tsdbIsValidTableToInsert
(
pRepo
->
tsdbMeta
,
tableId
);
if
(
pTable
==
NULL
)
{
if
(
pTable
==
NULL
)
{
u
Error
(
"failed to get table for insert, uid:%"
PRIu64
", tid:%d"
,
tableId
.
uid
,
tableId
.
tid
);
tsdb
Error
(
"failed to get table for insert, uid:%"
PRIu64
", tid:%d"
,
tableId
.
uid
,
tableId
.
tid
);
return
TSDB_CODE_INVALID_TABLE_ID
;
return
TSDB_CODE_INVALID_TABLE_ID
;
}
}
SSubmitBlkIter
blkIter
;
SSubmitBlkIter
blkIter
=
{
0
};
SDataRow
row
;
SDataRow
row
=
NULL
;
TSKEY
minKey
=
now
-
tsMsPerDay
[
pRepo
->
config
.
precision
]
*
pRepo
->
config
.
keep
;
TSKEY
maxKey
=
now
+
tsMsPerDay
[
pRepo
->
config
.
precision
]
*
pRepo
->
config
.
daysPerFile
;
tsdbInitSubmitBlkIter
(
pBlock
,
&
blkIter
);
tsdbInitSubmitBlkIter
(
pBlock
,
&
blkIter
);
while
((
row
=
tsdbGetSubmitBlkNext
(
&
blkIter
))
!=
NULL
)
{
while
((
row
=
tsdbGetSubmitBlkNext
(
&
blkIter
))
!=
NULL
)
{
if
(
dataRowKey
(
row
)
<
minKey
||
dataRowKey
(
row
)
>
maxKey
)
{
tsdbError
(
"tsdbId: %d, table tid: %d, talbe uid: %ld timestamp is out of range. now: %ld maxKey: %ld, minKey: %ld"
,
pRepo
->
config
.
tsdbId
,
pTable
->
tableId
.
tid
,
pTable
->
tableId
.
uid
,
now
,
minKey
,
maxKey
);
return
TSDB_CODE_TIMESTAMP_OUT_OF_RANGE
;
}
if
(
tdInsertRowToTable
(
pRepo
,
row
,
pTable
)
<
0
)
{
if
(
tdInsertRowToTable
(
pRepo
,
row
,
pTable
)
<
0
)
{
return
-
1
;
return
-
1
;
}
}
...
@@ -903,6 +931,9 @@ static void *tsdbCommitData(void *arg) {
...
@@ -903,6 +931,9 @@ static void *tsdbCommitData(void *arg) {
}
}
}
}
// Do retention actions
tsdbFitRetention
(
pRepo
);
_exit:
_exit:
tdFreeDataCols
(
pDataCols
);
tdFreeDataCols
(
pDataCols
);
tsdbDestroyTableIters
(
iters
,
pCfg
->
maxTables
);
tsdbDestroyTableIters
(
iters
,
pCfg
->
maxTables
);
...
@@ -910,6 +941,7 @@ _exit:
...
@@ -910,6 +941,7 @@ _exit:
tsdbLockRepo
(
arg
);
tsdbLockRepo
(
arg
);
tdListMove
(
pCache
->
imem
->
list
,
pCache
->
pool
.
memPool
);
tdListMove
(
pCache
->
imem
->
list
,
pCache
->
pool
.
memPool
);
tsdbAdjustCacheBlocks
(
pCache
);
tdListFree
(
pCache
->
imem
->
list
);
tdListFree
(
pCache
->
imem
->
list
);
free
(
pCache
->
imem
);
free
(
pCache
->
imem
);
pCache
->
imem
=
NULL
;
pCache
->
imem
=
NULL
;
...
@@ -1029,3 +1061,26 @@ static int tsdbHasDataToCommit(SSkipListIterator **iters, int nIters, TSKEY minK
...
@@ -1029,3 +1061,26 @@ static int tsdbHasDataToCommit(SSkipListIterator **iters, int nIters, TSKEY minK
}
}
return
0
;
return
0
;
}
}
static
void
tsdbAlterCompression
(
STsdbRepo
*
pRepo
,
int8_t
compression
)
{
pRepo
->
config
.
compression
=
compression
;
}
static
void
tsdbAlterKeep
(
STsdbRepo
*
pRepo
,
int32_t
keep
)
{
STsdbCfg
*
pCfg
=
&
pRepo
->
config
;
int
maxFiles
=
keep
/
pCfg
->
maxTables
+
3
;
if
(
pRepo
->
config
.
keep
>
keep
)
{
pRepo
->
tsdbFileH
->
maxFGroups
=
maxFiles
;
}
else
{
pRepo
->
tsdbFileH
->
fGroup
=
realloc
(
pRepo
->
tsdbFileH
->
fGroup
,
sizeof
(
SFileGroup
));
if
(
pRepo
->
tsdbFileH
->
fGroup
==
NULL
)
{
// TODO: deal with the error
}
pRepo
->
tsdbFileH
->
maxFGroups
=
maxFiles
;
}
}
static
void
tsdbAlterMaxTables
(
STsdbRepo
*
pRepo
,
int32_t
maxTables
)
{
// TODO
}
\ No newline at end of file
src/tsdb/src/tsdbRWHelper.c
浏览文件 @
6e8f3055
...
@@ -414,6 +414,7 @@ int tsdbWriteCompInfo(SRWHelper *pHelper) {
...
@@ -414,6 +414,7 @@ int tsdbWriteCompInfo(SRWHelper *pHelper) {
ASSERT
((
pIdx
->
len
-
sizeof
(
SCompInfo
)
-
sizeof
(
TSCKSUM
))
%
sizeof
(
SCompBlock
)
==
0
);
ASSERT
((
pIdx
->
len
-
sizeof
(
SCompInfo
)
-
sizeof
(
TSCKSUM
))
%
sizeof
(
SCompBlock
)
==
0
);
taosCalcChecksumAppend
(
0
,
(
uint8_t
*
)
pHelper
->
pCompInfo
,
pIdx
->
len
);
taosCalcChecksumAppend
(
0
,
(
uint8_t
*
)
pHelper
->
pCompInfo
,
pIdx
->
len
);
pIdx
->
offset
=
lseek
(
pHelper
->
files
.
nHeadF
.
fd
,
0
,
SEEK_END
);
pIdx
->
offset
=
lseek
(
pHelper
->
files
.
nHeadF
.
fd
,
0
,
SEEK_END
);
pIdx
->
uid
=
pHelper
->
tableInfo
.
uid
;
if
(
pIdx
->
offset
<
0
)
return
-
1
;
if
(
pIdx
->
offset
<
0
)
return
-
1
;
ASSERT
(
pIdx
->
offset
>=
tsizeof
(
pHelper
->
pCompIdx
));
ASSERT
(
pIdx
->
offset
>=
tsizeof
(
pHelper
->
pCompIdx
));
...
...
src/util/inc/ttime.h
浏览文件 @
6e8f3055
...
@@ -22,22 +22,37 @@ extern "C" {
...
@@ -22,22 +22,37 @@ extern "C" {
#include <stdint.h>
#include <stdint.h>
#include <time.h>
#include <time.h>
#include "tutil.h"
//@return timestamp in second
//@return timestamp in second
int32_t
taosGetTimestampSec
();
int32_t
taosGetTimestampSec
();
//@return timestamp in millisecond
//@return timestamp in millisecond
int64_t
taosGetTimestampMs
();
static
FORCE_INLINE
int64_t
taosGetTimestampMs
()
{
struct
timeval
systemTime
;
gettimeofday
(
&
systemTime
,
NULL
);
return
(
int64_t
)
systemTime
.
tv_sec
*
1000L
+
(
uint64_t
)
systemTime
.
tv_usec
/
1000
;
}
//@return timestamp in microsecond
//@return timestamp in microsecond
int64_t
taosGetTimestampUs
();
static
FORCE_INLINE
int64_t
taosGetTimestampUs
()
{
struct
timeval
systemTime
;
gettimeofday
(
&
systemTime
,
NULL
);
return
(
int64_t
)
systemTime
.
tv_sec
*
1000000L
+
(
uint64_t
)
systemTime
.
tv_usec
;
}
/*
/*
* @return timestamp decided by global conf variable, tsTimePrecision
* @return timestamp decided by global conf variable, tsTimePrecision
* if precision == TSDB_TIME_PRECISION_MICRO, it returns timestamp in microsecond.
* if precision == TSDB_TIME_PRECISION_MICRO, it returns timestamp in microsecond.
* precision == TSDB_TIME_PRECISION_MILLI, it returns timestamp in millisecond.
* precision == TSDB_TIME_PRECISION_MILLI, it returns timestamp in millisecond.
*/
*/
int64_t
taosGetTimestamp
(
int32_t
precision
);
static
FORCE_INLINE
int64_t
taosGetTimestamp
(
int32_t
precision
)
{
if
(
precision
==
TSDB_TIME_PRECISION_MICRO
)
{
return
taosGetTimestampUs
();
}
else
{
return
taosGetTimestampMs
();
}
}
int32_t
getTimestampInUsFromStr
(
char
*
token
,
int32_t
tokenlen
,
int64_t
*
ts
);
int32_t
getTimestampInUsFromStr
(
char
*
token
,
int32_t
tokenlen
,
int64_t
*
ts
);
...
...
src/util/src/tqueue.c
浏览文件 @
6e8f3055
...
@@ -41,6 +41,7 @@ typedef struct _taos_qset {
...
@@ -41,6 +41,7 @@ typedef struct _taos_qset {
pthread_mutex_t
mutex
;
pthread_mutex_t
mutex
;
int32_t
numOfQueues
;
int32_t
numOfQueues
;
int32_t
numOfItems
;
int32_t
numOfItems
;
tsem_t
sem
;
}
STaosQset
;
}
STaosQset
;
typedef
struct
_taos_qall
{
typedef
struct
_taos_qall
{
...
@@ -59,6 +60,7 @@ taos_queue taosOpenQueue() {
...
@@ -59,6 +60,7 @@ taos_queue taosOpenQueue() {
}
}
pthread_mutex_init
(
&
queue
->
mutex
,
NULL
);
pthread_mutex_init
(
&
queue
->
mutex
,
NULL
);
return
queue
;
return
queue
;
}
}
...
@@ -79,7 +81,7 @@ void taosCloseQueue(taos_queue param) {
...
@@ -79,7 +81,7 @@ void taosCloseQueue(taos_queue param) {
}
}
pthread_mutex_unlock
(
&
queue
->
mutex
);
pthread_mutex_unlock
(
&
queue
->
mutex
);
pthread_mutex_destroy
(
&
queue
->
mutex
);
free
(
queue
);
free
(
queue
);
}
}
...
@@ -116,11 +118,12 @@ int taosWriteQitem(taos_queue param, int type, void *item) {
...
@@ -116,11 +118,12 @@ int taosWriteQitem(taos_queue param, int type, void *item) {
queue
->
numOfItems
++
;
queue
->
numOfItems
++
;
if
(
queue
->
qset
)
atomic_add_fetch_32
(
&
queue
->
qset
->
numOfItems
,
1
);
if
(
queue
->
qset
)
atomic_add_fetch_32
(
&
queue
->
qset
->
numOfItems
,
1
);
uTrace
(
"item:%p is put into queue:%p, type:%d items:%d"
,
item
,
queue
,
type
,
queue
->
numOfItems
);
uTrace
(
"item:%p is put into queue:%p, type:%d items:%d"
,
item
,
queue
,
type
,
queue
->
numOfItems
);
pthread_mutex_unlock
(
&
queue
->
mutex
);
pthread_mutex_unlock
(
&
queue
->
mutex
);
if
(
queue
->
qset
)
tsem_post
(
&
queue
->
qset
->
sem
);
return
0
;
return
0
;
}
}
...
@@ -217,12 +220,15 @@ taos_qset taosOpenQset() {
...
@@ -217,12 +220,15 @@ taos_qset taosOpenQset() {
}
}
pthread_mutex_init
(
&
qset
->
mutex
,
NULL
);
pthread_mutex_init
(
&
qset
->
mutex
,
NULL
);
tsem_init
(
&
qset
->
sem
,
0
,
0
);
return
qset
;
return
qset
;
}
}
void
taosCloseQset
(
taos_qset
param
)
{
void
taosCloseQset
(
taos_qset
param
)
{
STaosQset
*
qset
=
(
STaosQset
*
)
param
;
STaosQset
*
qset
=
(
STaosQset
*
)
param
;
pthread_mutex_destroy
(
&
qset
->
mutex
);
tsem_destroy
(
&
qset
->
sem
);
free
(
qset
);
free
(
qset
);
}
}
...
@@ -298,6 +304,8 @@ int taosReadQitemFromQset(taos_qset param, int *type, void **pitem, void **phand
...
@@ -298,6 +304,8 @@ int taosReadQitemFromQset(taos_qset param, int *type, void **pitem, void **phand
STaosQnode
*
pNode
=
NULL
;
STaosQnode
*
pNode
=
NULL
;
int
code
=
0
;
int
code
=
0
;
tsem_wait
(
&
qset
->
sem
);
pthread_mutex_lock
(
&
qset
->
mutex
);
pthread_mutex_lock
(
&
qset
->
mutex
);
for
(
int
i
=
0
;
i
<
qset
->
numOfQueues
;
++
i
)
{
for
(
int
i
=
0
;
i
<
qset
->
numOfQueues
;
++
i
)
{
...
@@ -339,6 +347,7 @@ int taosReadAllQitemsFromQset(taos_qset param, taos_qall p2, void **phandle) {
...
@@ -339,6 +347,7 @@ int taosReadAllQitemsFromQset(taos_qset param, taos_qall p2, void **phandle) {
STaosQall
*
qall
=
(
STaosQall
*
)
p2
;
STaosQall
*
qall
=
(
STaosQall
*
)
p2
;
int
code
=
0
;
int
code
=
0
;
tsem_wait
(
&
qset
->
sem
);
pthread_mutex_lock
(
&
qset
->
mutex
);
pthread_mutex_lock
(
&
qset
->
mutex
);
for
(
int
i
=
0
;
i
<
qset
->
numOfQueues
;
++
i
)
{
for
(
int
i
=
0
;
i
<
qset
->
numOfQueues
;
++
i
)
{
...
@@ -364,6 +373,7 @@ int taosReadAllQitemsFromQset(taos_qset param, taos_qall p2, void **phandle) {
...
@@ -364,6 +373,7 @@ int taosReadAllQitemsFromQset(taos_qset param, taos_qall p2, void **phandle) {
queue
->
tail
=
NULL
;
queue
->
tail
=
NULL
;
queue
->
numOfItems
=
0
;
queue
->
numOfItems
=
0
;
atomic_sub_fetch_32
(
&
qset
->
numOfItems
,
qall
->
numOfItems
);
atomic_sub_fetch_32
(
&
qset
->
numOfItems
,
qall
->
numOfItems
);
for
(
int
j
=
1
;
j
<
qall
->
numOfItems
;
++
j
)
tsem_wait
(
&
qset
->
sem
);
}
}
pthread_mutex_unlock
(
&
queue
->
mutex
);
pthread_mutex_unlock
(
&
queue
->
mutex
);
...
...
src/util/src/ttime.c
浏览文件 @
6e8f3055
...
@@ -121,30 +121,6 @@ static int32_t parseLocaltime(char* timestr, int64_t* time, int32_t timePrec);
...
@@ -121,30 +121,6 @@ static int32_t parseLocaltime(char* timestr, int64_t* time, int32_t timePrec);
int32_t
taosGetTimestampSec
()
{
return
(
int32_t
)
time
(
NULL
);
}
int32_t
taosGetTimestampSec
()
{
return
(
int32_t
)
time
(
NULL
);
}
int64_t
taosGetTimestampMs
()
{
struct
timeval
systemTime
;
gettimeofday
(
&
systemTime
,
NULL
);
return
(
int64_t
)
systemTime
.
tv_sec
*
1000L
+
(
uint64_t
)
systemTime
.
tv_usec
/
1000
;
}
int64_t
taosGetTimestampUs
()
{
struct
timeval
systemTime
;
gettimeofday
(
&
systemTime
,
NULL
);
return
(
int64_t
)
systemTime
.
tv_sec
*
1000000L
+
(
uint64_t
)
systemTime
.
tv_usec
;
}
/*
* If tsTimePrecision == 1, taosGetTimestamp will return timestamp in microsecond.
* Otherwise, it will return timestamp in millisecond.
*/
int64_t
taosGetTimestamp
(
int32_t
precision
)
{
if
(
precision
==
TSDB_TIME_PRECISION_MICRO
)
{
return
taosGetTimestampUs
();
}
else
{
return
taosGetTimestampMs
();
}
}
int32_t
taosParseTime
(
char
*
timestr
,
int64_t
*
time
,
int32_t
len
,
int32_t
timePrec
)
{
int32_t
taosParseTime
(
char
*
timestr
,
int64_t
*
time
,
int32_t
len
,
int32_t
timePrec
)
{
/* parse datatime string in with tz */
/* parse datatime string in with tz */
if
(
strnchr
(
timestr
,
'T'
,
len
,
false
)
!=
NULL
)
{
if
(
strnchr
(
timestr
,
'T'
,
len
,
false
)
!=
NULL
)
{
...
...
src/vnode/src/vnodeMain.c
浏览文件 @
6e8f3055
...
@@ -184,6 +184,7 @@ int32_t vnodeOpen(int32_t vnode, char *rootDir) {
...
@@ -184,6 +184,7 @@ int32_t vnodeOpen(int32_t vnode, char *rootDir) {
pVnode
->
status
=
TAOS_VN_STATUS_INIT
;
pVnode
->
status
=
TAOS_VN_STATUS_INIT
;
pVnode
->
refCount
=
1
;
pVnode
->
refCount
=
1
;
pVnode
->
version
=
0
;
pVnode
->
version
=
0
;
pVnode
->
tsdbCfg
.
tsdbId
=
pVnode
->
vgId
;
taosAddIntHash
(
tsDnodeVnodesHash
,
pVnode
->
vgId
,
(
char
*
)(
&
pVnode
));
taosAddIntHash
(
tsDnodeVnodesHash
,
pVnode
->
vgId
,
(
char
*
)(
&
pVnode
));
int32_t
code
=
vnodeReadCfg
(
pVnode
);
int32_t
code
=
vnodeReadCfg
(
pVnode
);
...
...
src/vnode/src/vnodeWrite.c
浏览文件 @
6e8f3055
...
@@ -115,7 +115,9 @@ static int32_t vnodeProcessCreateTableMsg(SVnodeObj *pVnode, void *pCont, SRspRe
...
@@ -115,7 +115,9 @@ static int32_t vnodeProcessCreateTableMsg(SVnodeObj *pVnode, void *pCont, SRspRe
int16_t
numOfTags
=
htons
(
pTable
->
numOfTags
);
int16_t
numOfTags
=
htons
(
pTable
->
numOfTags
);
int32_t
sid
=
htonl
(
pTable
->
sid
);
int32_t
sid
=
htonl
(
pTable
->
sid
);
uint64_t
uid
=
htobe64
(
pTable
->
uid
);
uint64_t
uid
=
htobe64
(
pTable
->
uid
);
SSchema
*
pSchema
=
(
SSchema
*
)
pTable
->
data
;
SSchema
*
pSchema
=
(
SSchema
*
)
pTable
->
data
;
STSchema
*
pDestTagSchema
=
NULL
;
SDataRow
dataRow
=
NULL
;
int32_t
totalCols
=
numOfColumns
+
numOfTags
;
int32_t
totalCols
=
numOfColumns
+
numOfTags
;
...
@@ -130,7 +132,7 @@ static int32_t vnodeProcessCreateTableMsg(SVnodeObj *pVnode, void *pCont, SRspRe
...
@@ -130,7 +132,7 @@ static int32_t vnodeProcessCreateTableMsg(SVnodeObj *pVnode, void *pCont, SRspRe
tsdbTableSetName
(
&
tCfg
,
pTable
->
tableId
,
false
);
tsdbTableSetName
(
&
tCfg
,
pTable
->
tableId
,
false
);
if
(
numOfTags
!=
0
)
{
if
(
numOfTags
!=
0
)
{
STSchema
*
pDestTagSchema
=
tdNewSchema
(
numOfTags
);
pDestTagSchema
=
tdNewSchema
(
numOfTags
);
for
(
int
i
=
numOfColumns
;
i
<
totalCols
;
i
++
)
{
for
(
int
i
=
numOfColumns
;
i
<
totalCols
;
i
++
)
{
tdSchemaAddCol
(
pDestTagSchema
,
pSchema
[
i
].
type
,
htons
(
pSchema
[
i
].
colId
),
htons
(
pSchema
[
i
].
bytes
));
tdSchemaAddCol
(
pDestTagSchema
,
pSchema
[
i
].
type
,
htons
(
pSchema
[
i
].
colId
),
htons
(
pSchema
[
i
].
bytes
));
}
}
...
@@ -140,7 +142,7 @@ static int32_t vnodeProcessCreateTableMsg(SVnodeObj *pVnode, void *pCont, SRspRe
...
@@ -140,7 +142,7 @@ static int32_t vnodeProcessCreateTableMsg(SVnodeObj *pVnode, void *pCont, SRspRe
char
*
pTagData
=
pTable
->
data
+
totalCols
*
sizeof
(
SSchema
);
char
*
pTagData
=
pTable
->
data
+
totalCols
*
sizeof
(
SSchema
);
int
accumBytes
=
0
;
int
accumBytes
=
0
;
SDataRow
dataRow
=
tdNewDataRowFromSchema
(
pDestTagSchema
);
dataRow
=
tdNewDataRowFromSchema
(
pDestTagSchema
);
for
(
int
i
=
0
;
i
<
numOfTags
;
i
++
)
{
for
(
int
i
=
0
;
i
<
numOfTags
;
i
++
)
{
STColumn
*
pTCol
=
schemaColAt
(
pDestTagSchema
,
i
);
STColumn
*
pTCol
=
schemaColAt
(
pDestTagSchema
,
i
);
...
@@ -151,6 +153,8 @@ static int32_t vnodeProcessCreateTableMsg(SVnodeObj *pVnode, void *pCont, SRspRe
...
@@ -151,6 +153,8 @@ static int32_t vnodeProcessCreateTableMsg(SVnodeObj *pVnode, void *pCont, SRspRe
}
}
code
=
tsdbCreateTable
(
pVnode
->
tsdb
,
&
tCfg
);
code
=
tsdbCreateTable
(
pVnode
->
tsdb
,
&
tCfg
);
tdFreeDataRow
(
dataRow
);
tfree
(
pDestTagSchema
);
tfree
(
pDestSchema
);
tfree
(
pDestSchema
);
dTrace
(
"pVnode:%p vgId:%d, table:%s is created, result:%x"
,
pVnode
,
pVnode
->
vgId
,
pTable
->
tableId
,
code
);
dTrace
(
"pVnode:%p vgId:%d, table:%s is created, result:%x"
,
pVnode
,
pVnode
->
vgId
,
pTable
->
tableId
,
code
);
...
...
tests/pytest/insert/binary.py
浏览文件 @
6e8f3055
...
@@ -27,8 +27,8 @@ class TDTestCase:
...
@@ -27,8 +27,8 @@ class TDTestCase:
tdSql
.
query
(
'select speed from tb order by ts desc'
)
tdSql
.
query
(
'select speed from tb order by ts desc'
)
tdLog
.
info
(
'tdSql.checkRow(1)'
)
tdLog
.
info
(
'tdSql.checkRow(1)'
)
tdSql
.
checkRows
(
1
)
tdSql
.
checkRows
(
1
)
tdLog
.
info
(
'tdSql.checkData(0, 0, 1234)'
)
tdLog
.
info
(
"tdSql.checkData(0, 0, '1234')"
)
tdSql
.
checkData
(
0
,
0
,
1234
)
tdSql
.
checkData
(
0
,
0
,
'1234'
)
tdLog
.
info
(
'=============== step3'
)
tdLog
.
info
(
'=============== step3'
)
tdLog
.
info
(
"insert into tb values (now+2a, '23456')"
)
tdLog
.
info
(
"insert into tb values (now+2a, '23456')"
)
tdSql
.
execute
(
"insert into tb values (now+2a, '23456')"
)
tdSql
.
execute
(
"insert into tb values (now+2a, '23456')"
)
...
@@ -37,8 +37,8 @@ class TDTestCase:
...
@@ -37,8 +37,8 @@ class TDTestCase:
tdLog
.
info
(
'tdSql.checkRow(2)'
)
tdLog
.
info
(
'tdSql.checkRow(2)'
)
tdSql
.
checkRows
(
2
)
tdSql
.
checkRows
(
2
)
tdLog
.
info
(
'==> $data00'
)
tdLog
.
info
(
'==> $data00'
)
tdLog
.
info
(
'tdSql.checkData(0, 0, 23456)'
)
tdLog
.
info
(
"tdSql.checkData(0, 0, '23456')"
)
tdSql
.
checkData
(
0
,
0
,
23456
)
tdSql
.
checkData
(
0
,
0
,
'23456'
)
tdLog
.
info
(
'=============== step4'
)
tdLog
.
info
(
'=============== step4'
)
tdLog
.
info
(
"insert into tb values (now+3a, '345678')"
)
tdLog
.
info
(
"insert into tb values (now+3a, '345678')"
)
tdSql
.
error
(
"insert into tb values (now+3a, '345678')"
)
tdSql
.
error
(
"insert into tb values (now+3a, '345678')"
)
...
@@ -49,8 +49,8 @@ class TDTestCase:
...
@@ -49,8 +49,8 @@ class TDTestCase:
tdLog
.
info
(
'tdSql.checkRow(3)'
)
tdLog
.
info
(
'tdSql.checkRow(3)'
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
tdLog
.
info
(
'==> $data00'
)
tdLog
.
info
(
'==> $data00'
)
tdLog
.
info
(
'tdSql.checkData(0, 0, 34567)'
)
tdLog
.
info
(
"tdSql.checkData(0, 0, '34567')"
)
tdSql
.
checkData
(
0
,
0
,
34567
)
tdSql
.
checkData
(
0
,
0
,
'34567'
)
tdLog
.
info
(
'drop database db'
)
tdLog
.
info
(
'drop database db'
)
tdSql
.
execute
(
'drop database db'
)
tdSql
.
execute
(
'drop database db'
)
tdLog
.
info
(
'show databases'
)
tdLog
.
info
(
'show databases'
)
...
...
tests/pytest/util/sql.py
浏览文件 @
6e8f3055
...
@@ -93,6 +93,9 @@ class TDSql:
...
@@ -93,6 +93,9 @@ class TDSql:
if
data
is
None
:
if
data
is
None
:
tdLog
.
info
(
"sql:%.40s, row:%d col:%d data:%s == expect:%s"
%
tdLog
.
info
(
"sql:%.40s, row:%d col:%d data:%s == expect:%s"
%
(
self
.
sql
,
row
,
col
,
self
.
queryResult
[
row
][
col
],
data
))
(
self
.
sql
,
row
,
col
,
self
.
queryResult
[
row
][
col
],
data
))
elif
isinstance
(
data
,
str
):
tdLog
.
info
(
"sql:%.40s, row:%d col:%d data:%s == expect:%s"
%
(
self
.
sql
,
row
,
col
,
self
.
queryResult
[
row
][
col
],
data
))
elif
isinstance
(
data
,
datetime
.
date
):
elif
isinstance
(
data
,
datetime
.
date
):
tdLog
.
info
(
"sql:%.40s, row:%d col:%d data:%s == expect:%s"
%
tdLog
.
info
(
"sql:%.40s, row:%d col:%d data:%s == expect:%s"
%
(
self
.
sql
,
row
,
col
,
self
.
queryResult
[
row
][
col
],
data
))
(
self
.
sql
,
row
,
col
,
self
.
queryResult
[
row
][
col
],
data
))
...
...
tests/script/jenkins/basic.txt
0 → 100644
浏览文件 @
6e8f3055
cd ../../debug; cmake ..
#cd ../../debug; make clean
cd ../../debug; make
cd ../../../debug; cmake ..
#cd ../../../debug; make clean
cd ../../../debug; make
./test.sh -u -f unique/account/account_create.sim
./test.sh -u -f unique/account/account_delete.sim
./test.sh -u -f unique/account/account_len.sim
./test.sh -u -f unique/account/authority.sim
./test.sh -u -f unique/account/basic.sim
./test.sh -u -f unique/account/paras.sim
./test.sh -u -f unique/account/pass_alter.sim
./test.sh -u -f unique/account/pass_len.sim
./test.sh -u -f unique/account/usage.sim
./test.sh -u -f unique/account/user_create.sim
./test.sh -u -f unique/account/user_len.sim
#big
./test.sh -u -f unique/cluster/balance1.sim
./test.sh -u -f unique/cluster/balance2.sim
./test.sh -u -f unique/cluster/balance3.sim
./test.sh -u -f unique/column/replica3.sim
./test.sh -u -f unique/db/replica_add12.sim
./test.sh -u -f unique/db/replica_add13.sim
./test.sh -u -f unique/db/replica_add23.sim
./test.sh -u -f unique/db/replica_reduce21.sim
./test.sh -u -f unique/db/replica_reduce32.sim
./test.sh -u -f unique/db/replica_reduce31.sim
./test.sh -u -f unique/db/replica_part.sim
./test.sh -u -f unique/dnode/balance1.sim
./test.sh -u -f unique/dnode/balance2.sim
./test.sh -u -f unique/dnode/balance3.sim
./test.sh -u -f unique/dnode/balancex.sim
./test.sh -u -f unique/dnode/offline1.sim
./test.sh -u -f unique/dnode/offline2.sim
./test.sh -u -f unique/http/admin.sim
#import
#metrics
./test.sh -u -f unique/mnode/mgmt22.sim
./test.sh -u -f unique/mnode/mgmt23.sim
./test.sh -u -f unique/mnode/mgmt24.sim
./test.sh -u -f unique/mnode/mgmt25.sim
./test.sh -u -f unique/mnode/mgmt26.sim
./test.sh -u -f unique/mnode/mgmt33.sim
./test.sh -u -f unique/mnode/mgmt34.sim
#stream
#table
./test.sh -u -f unique/vnode/replica2_basic2.sim
./test.sh -u -f unique/vnode/replica3_basic.sim
\ No newline at end of file
tests/script/jenkins/basic1.txt
已删除
100644 → 0
浏览文件 @
31029ee2
./test.sh -f general/user/basic1.sim
./test.sh -f general/db/basic1.sim
./test.sh -f general/db/basic2.sim
./test.sh -f general/db/basic3.sim
./test.sh -f general/db/basic4.sim
./test.sh -f general/db/basic5.sim
./test.sh -f general/table/basic1.sim
./test.sh -f general/table/basic2.sim
./test.sh -f general/table/basic3.sim
\ No newline at end of file
tests/script/unique/account/authority.sim
浏览文件 @
6e8f3055
...
@@ -227,7 +227,8 @@ print ============= step6
...
@@ -227,7 +227,8 @@ print ============= step6
sql close
sql close
sql connect owrite
sql connect owrite
sleep 2000
sleep 2000
sql reset query cache
sleep 1000
sql create database d1
sql create database d1
sql create database d3
sql create database d3
sql create table d1.t1 (ts timestamp, i int)
sql create table d1.t1 (ts timestamp, i int)
...
...
tests/script/unique/account/testSuite.sim
浏览文件 @
6e8f3055
...
@@ -4,7 +4,7 @@ run unique/account/account_len.sim
...
@@ -4,7 +4,7 @@ run unique/account/account_len.sim
run unique/account/authority.sim
run unique/account/authority.sim
run unique/account/basic.sim
run unique/account/basic.sim
run unique/account/paras.sim
run unique/account/paras.sim
#
run unique/account/pass_alter.sim
run unique/account/pass_alter.sim
run unique/account/pass_len.sim
run unique/account/pass_len.sim
run unique/account/usage.sim
run unique/account/usage.sim
run unique/account/user_create.sim
run unique/account/user_create.sim
...
...
tests/script/unique/big/balance.sim
浏览文件 @
6e8f3055
system sh/stop_dnodes.sh
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
...
...
tests/script/unique/cluster/balance1.sim
浏览文件 @
6e8f3055
...
@@ -92,7 +92,7 @@ $x = 0
...
@@ -92,7 +92,7 @@ $x = 0
show2:
show2:
$x = $x + 1
$x = $x + 1
sleep 2000
sleep 2000
if $x ==
3
0 then
if $x ==
2
0 then
return -1
return -1
endi
endi
sql show dnodes -x show2
sql show dnodes -x show2
...
@@ -134,7 +134,7 @@ $x = 0
...
@@ -134,7 +134,7 @@ $x = 0
show4:
show4:
$x = $x + 1
$x = $x + 1
sleep 2000
sleep 2000
if $x ==
3
0 then
if $x ==
2
0 then
return -1
return -1
endi
endi
sql show dnodes -x show4
sql show dnodes -x show4
...
@@ -442,19 +442,24 @@ sql reset query cache
...
@@ -442,19 +442,24 @@ sql reset query cache
sleep 1000
sleep 1000
sql use c_b1_d1
sql use c_b1_d1
sql select * from c_b1_t1
sql select * from c_b1_d1.c_b1_t1
print $rows
print $data01 $data11 $data21 $data31 $data41
if $rows != 5 then
if $rows != 5 then
return -1
return -1
endi
endi
sql use c_b1_d2
sql use c_b1_d2
sql select * from c_b1_t2
sql select * from c_b1_d2.c_b1_t2
if $rows == 6 then
print $rows
print $data01 $data11 $data21 $data31 $data41
if $rows != 6 then
return -1
return -1
endi
endi
sql use c_b1_d3
sql use c_b1_d3
sql select * from c_b1_t3 order by t desc
sql select * from c_b1_d3.c_b1_t3 order by t desc
print $rows
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $rows != 6 then
if $rows != 6 then
return -1
return -1
...
@@ -464,11 +469,13 @@ if $data01 != 36 then
...
@@ -464,11 +469,13 @@ if $data01 != 36 then
endi
endi
sql use c_b1_d4
sql use c_b1_d4
sql select * from c_b1_t4 order by t desc
sql select * from c_b1_d4.c_b1_t4 order by t desc
print $rows
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
sql use c_b1_d5
sql use c_b1_d5
sql select * from c_b1_t5 order by t desc
sql select * from c_b1_d5.c_b1_t5 order by t desc
print $rows
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 51 then
if $data01 != 51 then
return -1
return -1
...
@@ -487,7 +494,8 @@ if $data41 != 55 then
...
@@ -487,7 +494,8 @@ if $data41 != 55 then
endi
endi
sql use c_b1_d6
sql use c_b1_d6
sql select * from c_b1_t6 order by t desc
sql select * from c_b1_d6.c_b1_t6 order by t desc
print $rows
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 61 then
if $data01 != 61 then
return -1
return -1
...
@@ -506,7 +514,8 @@ if $data41 != 65 then
...
@@ -506,7 +514,8 @@ if $data41 != 65 then
endi
endi
sql use c_b1_d7
sql use c_b1_d7
sql select * from c_b1_t7 order by t desc
sql select * from c_b1_d7.c_b1_t7 order by t desc
print $rows
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 71 then
if $data01 != 71 then
return -1
return -1
...
@@ -525,7 +534,8 @@ if $data41 != 75 then
...
@@ -525,7 +534,8 @@ if $data41 != 75 then
endi
endi
sql use c_b1_d8
sql use c_b1_d8
sql select * from c_b1_t8 order by t desc
sql select * from c_b1_d8.c_b1_t8 order by t desc
print $rows
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 81 then
if $data01 != 81 then
return -1
return -1
...
...
tests/script/unique/cluster/balance1_bug.sim
已删除
100644 → 0
浏览文件 @
31029ee2
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/cfg.sh -n dnode1 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode1 -c clog -v 1
system sh/cfg.sh -n dnode2 -c clog -v 1
system sh/cfg.sh -n dnode3 -c clog -v 1
system sh/cfg.sh -n dnode4 -c clog -v 1
system sh/cfg.sh -n dnode1 -c mgmtEqualVnodeNum -v 0
system sh/cfg.sh -n dnode2 -c mgmtEqualVnodeNum -v 0
system sh/cfg.sh -n dnode3 -c mgmtEqualVnodeNum -v 0
system sh/cfg.sh -n dnode4 -c mgmtEqualVnodeNum -v 0
print ============== step1
print ========= start dnode1
system sh/exec_up.sh -n dnode1 -s start
sql connect
sql create database c_b1_d1 tables 4
sql use c_b1_d1
sql create table c_b1_t1 (t timestamp, i int)
sql insert into c_b1_t1 values(now+1s, 15)
sql insert into c_b1_t1 values(now+2s, 14)
sql insert into c_b1_t1 values(now+2s, 13)
sql insert into c_b1_t1 values(now+3s, 12)
sql insert into c_b1_t1 values(now+4s, 11)
sql create database c_b1_d2 tables 4
sql use c_b1_d2
sql create table c_b1_t2 (t timestamp, i int)
sql insert into c_b1_t2 values(now+1s, 25)
sql insert into c_b1_t2 values(now+2s, 24)
sql insert into c_b1_t2 values(now+3s, 23)
sql insert into c_b1_t2 values(now+4s, 22)
sql insert into c_b1_t2 values(now+5s, 21)
sql show dnodes
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
if $dnode1Vnodes != 2 then
return -1
endi
if $dnode2Vnodes != null then
return -1
endi
print ============================== step2
print ========= start dnode2
sleep 2000
sql create dnode $hostname2
system sh/exec_up.sh -n dnode2 -s start
sleep 5000
$x = 0
show2:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show2
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
if $dnode1Vnodes != 3 then
goto show2
endi
if $dnode2Vnodes != 3 then
goto show2
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print ============================== step3
print ========= add db3
sql create database c_b1_d3 tables 4
sql use c_b1_d3
sql create table c_b1_t3 (t timestamp, i int)
sql insert into c_b1_t3 values(now+1s, 35)
sql insert into c_b1_t3 values(now+2s, 34)
sql insert into c_b1_t3 values(now+3s, 33)
sql insert into c_b1_t3 values(now+4s, 32)
sql insert into c_b1_t3 values(now+5s, 31)
print ============================== step4
print ========= drop dnode2
sql drop dnode $hostname2
sleep 9000
$x = 0
show4:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show4
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
if $dnode1Vnodes != 1 then
goto show4
endi
if $dnode2Vnodes != null then
goto show4
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print ============================== step5
print ========= add dnode2
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
sleep 5000
system sh/exec_up.sh -n dnode2 -s start
sql create dnode $hostname2
sleep 9000
$x = 0
show5:
$x = $x + 1
sleep 2000
if $x == 20 then
return -1
endi
sql show dnodes -x show5
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
if $dnode1Vnodes != 2 then
goto show5
endi
if $dnode2Vnodes != 3 then
goto show5
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print ============================== step6
print ========= drop dnode1
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
print stop dnode1 and sleep 10000
sleep 10000
sql drop dnode $hostname1
print drop dnode1 and sleep 9000
sleep 9000
$x = 0
show6:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show6
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
if $dnode1Vnodes != null then
goto show6
endi
if $dnode2Vnodes != 1 then
goto show6
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print ============================== step7
print ========= add dnode1
sql create dnode $hostname1
sleep 23000
system sh/exec_up.sh -n dnode1 -s start
sleep 14000
$x = 0
show7:
$x = $x + 1
sleep 2000
if $x == 20 then
return -1
endi
sql show dnodes -x show7
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
if $dnode1Vnodes != 3 then
goto show7
endi
if $dnode2Vnodes != 2 then
goto show7
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print ============================== step8
print ========= drop dnode2
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
print stop dnode2 and sleep 10000
sleep 20000
sql drop dnode $hostname2
print drop dnode2 and sleep 9000
sleep 19000
$x = 0
show8:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show8
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
if $dnode1Vnodes != 1 then
goto show8
endi
if $dnode2Vnodes != null then
goto show8
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
if $dnode1Role != master then
return -1
endi
print ============================== step9
print ========= add dnode2
sql create dnode $hostname2
system sh/exec_up.sh -n dnode2 -s start
sleep 9000
$x = 0
show9:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show9
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
if $dnode1Vnodes != 2 then
goto show9
endi
if $dnode2Vnodes != 3 then
goto show9
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print ============================== step10
print ========= add db4
sql create database c_b1_d4 tables 4
sql use c_b1_d4
sql create table c_b1_t4 (t timestamp, i int)
sql insert into c_b1_t4 values(now+1s, 45)
sql insert into c_b1_t4 values(now+2s, 44)
sql insert into c_b1_t4 values(now+3s, 43)
sql insert into c_b1_t4 values(now+4s, 42)
sql insert into c_b1_t4 values(now+5s, 41)
$x = 0
show10:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show10
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
if $dnode1Vnodes != 2 then
goto show10
endi
if $dnode2Vnodes != 2 then
goto show10
endi
sql use c_b1_d3
sql insert into c_b1_t3 values(now+1s, 35)
sql use c_b1_d2
sql insert into c_b1_t2 values(now+1s, 25)
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
if $dnode1Role != master then
return -1
endi
print ============================== step11
print ========= drop dnode2
sleep 2000
sql drop dnode $hostname2
sleep 9000
$x = 0
show11:
$x = $x + 1
sleep 2000
if $x == 20 then
return -1
endi
sql show dnodes -x show11
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
if $dnode1Vnodes != 0 then
goto show11
endi
if $dnode2Vnodes != null then
goto show11
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
print ============================== step12
print ========= add db5
sql create database c_b1_d5 tables 4
sql use c_b1_d5
sql create table c_b1_t5 (t timestamp, i int) -x error3
print no enough vnodes, but create success
return -1
error3:
print ============================== step13
print ========= add dnode2
sql create dnode $hostname2
system sh/exec_up.sh -n dnode2 -s start
sleep 9000
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
sql use c_b1_d5;
$x = 0
create5:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql create table c_b1_t5 (t timestamp, i int) -x create5
sql insert into c_b1_t5 values(now+1s, 55)
sql insert into c_b1_t5 values(now+2s, 54)
sql insert into c_b1_t5 values(now+3s, 53)
sql insert into c_b1_t5 values(now+4s, 52)
sql insert into c_b1_t5 values(now+5s, 51)
sql create database c_b1_d6
sql use c_b1_d6
$x = 0
create6:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql create table c_b1_t6 (t timestamp, i int) -x create6
sql insert into c_b1_t6 values(now+1s, 65)
sql insert into c_b1_t6 values(now+2s, 64)
sql insert into c_b1_t6 values(now+3s, 63)
sql insert into c_b1_t6 values(now+4s, 62)
sql insert into c_b1_t6 values(now+5s, 61)
sql show dnodes
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
#if $dnode1Vnodes != 1 then
# return -1
#endi
#if $dnode2Vnodes != 1 then
# return -1
#endi
print ============================== step14
print ========= add dnode3
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
sleep 2000
sql create dnode $hostname3
system sh/exec_up.sh -n dnode3 -s start
sleep 15000
$x = 0
show14:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show14
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode1Vnodes != 2 then
goto show14
endi
if $dnode2Vnodes != 2 then
goto show14
endi
if $dnode3Vnodes != 2 then
goto show14
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print ============================== step15
print ========= create db7 db8
sql create database c_b1_d7 tables 4
sql use c_b1_d7
sql create table c_b1_t7 (t timestamp, i int)
sql insert into c_b1_t7 values(now+1s, 75)
sql insert into c_b1_t7 values(now+2s, 74)
sql insert into c_b1_t7 values(now+3s, 73)
sql insert into c_b1_t7 values(now+4s, 72)
sql insert into c_b1_t7 values(now+5s, 71)
sql create database c_b1_d8
sql use c_b1_d8
sql create table c_b1_t8 (t timestamp, i int)
sql insert into c_b1_t8 values(now+1s, 85)
sql insert into c_b1_t8 values(now+2s, 84)
sql insert into c_b1_t8 values(now+3s, 83)
sql insert into c_b1_t8 values(now+4s, 82)
sql insert into c_b1_t8 values(now+5s, 81)
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print ========== add dnode4
sleep 2000
sql create dnode $hostname4
print sql create dnode $hostname4 over
system sh/exec_up.sh -n dnode4 -s start
print sleep 12000
sleep 12000
print sleep 12000 over
$x = 0
show15:
$x = $x + 1
sleep 2000
if $x == 15 then
return -1
endi
sql show dnodes -x show15
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
if $dnode1Vnodes != 2 then
goto show15
endi
if $dnode2Vnodes != 2 then
goto show15
endi
if $dnode3Vnodes != 2 then
goto show15
endi
if $dnode4Vnodes != 2 then
goto show15
endi
print ============================== step16
print ========= drop dnode4, create db9
sql drop dnode $hostname4
sleep 10000
sql create database c_b1_d9 tables 4
sql use c_b1_d9
sql create table c_b1_t9 (t timestamp, i int)
sql insert into c_b1_t9 values(now+1s, 95)
sql insert into c_b1_t9 values(now+2s, 94)
sql insert into c_b1_t9 values(now+3s, 93)
sql insert into c_b1_t9 values(now+4s, 92)
sql insert into c_b1_t9 values(now+5s, 91)
system sh/exec_up.sh -n dnode4 -s stop -x SIGINT
$x = 0
show16:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show16
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode1Vnodes != 1 then
goto show16
endi
if $dnode2Vnodes != 1 then
goto show16
endi
if $dnode3Vnodes != 1 then
goto show16
endi
print ============================== step17
print ========= check data
sleep 2000
sql use c_b1_d1
sql select * from c_b1_t1 order by t desc -x s1
s1:
sql use c_b1_d2
sql select * from c_b1_t2 order by t desc -x s2
print $data01 $data11 $data21 $data31 $data41
if $data01 != 25 then
return -1
endi
if $data11 != 21 then
return -1
endi
if $data21 != 22 then
return -1
endi
if $data31 != 23 then
return -1
endi
if $data41 != 24 then
return -1
endi
s2:
sql use c_b1_d3
sql select * from c_b1_t3 order by t desc -x s3
print $data01 $data11 $data21 $data31 $data41
if $data01 != 35 then
return -1
endi
s3:
sql use c_b1_d4
sql select * from c_b1_d4.c_b1_t4 order by t desc -x s4
print $data01 $data11 $data21 $data31 $data41
s4:
sql use c_b1_d5
sql select * from c_b1_d5.c_b1_t5 order by t desc -x s5
print $data01 $data11 $data21 $data31 $data41
if $data01 != 51 then
return -1
endi
if $data11 != 52 then
return -1
endi
if $data21 != 53 then
return -1
endi
if $data31 != 54 then
return -1
endi
if $data41 != 55 then
return -1
endi
s5:
sql use c_b1_d6
sql select * from c_b1_d6.c_b1_t6 order by t desc -x s6
print $data01 $data11 $data21 $data31 $data41
if $data01 != 61 then
return -1
endi
if $data11 != 62 then
return -1
endi
if $data21 != 63 then
return -1
endi
if $data31 != 64 then
return -1
endi
if $data41 != 65 then
return -1
endi
s6:
sql use c_b1_d7
sql select * from c_b1_d7.c_b1_t7 order by t desc -x s7
print $data01 $data11 $data21 $data31 $data41
if $data01 != 71 then
return -1
endi
if $data11 != 72 then
return -1
endi
if $data21 != 73 then
return -1
endi
if $data31 != 74 then
return -1
endi
if $data41 != 75 then
return -1
endi
s7:
sql use c_b1_d9
sql select * from c_b1_t9 order by t desc -x s8
print $data01 $data11 $data21 $data31 $data41
if $data01 != 91 then
return -1
endi
if $data11 != 92 then
return -1
endi
if $data21 != 93 then
return -1
endi
if $data31 != 94 then
return -1
endi
if $data41 != 95 then
return -1
endi
s8:
print ============================================ over
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
system sh/exec_up.sh -n dnode3 -s stop -x SIGINT
system sh/exec_up.sh -n dnode4 -s stop -x SIGINT
tests/script/unique/cluster/balance1_single.sim
已删除
100644 → 0
浏览文件 @
31029ee2
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 numOfMPeers -v 1
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
system sh/cfg.sh -n dnode5 -c numOfMPeers -v 1
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode5 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode1 -c clog -v 1
system sh/cfg.sh -n dnode2 -c clog -v 1
system sh/cfg.sh -n dnode3 -c clog -v 1
system sh/cfg.sh -n dnode4 -c clog -v 1
system sh/cfg.sh -n dnode5 -c clog -v 1
system sh/cfg.sh -n dnode1 -c mgmtEqualVnodeNum -v 4
system sh/cfg.sh -n dnode2 -c mgmtEqualVnodeNum -v 4
system sh/cfg.sh -n dnode3 -c mgmtEqualVnodeNum -v 4
system sh/cfg.sh -n dnode4 -c mgmtEqualVnodeNum -v 4
system sh/cfg.sh -n dnode5 -c mgmtEqualVnodeNum -v 4
print ============== step1
print ========= start dnode1
system sh/exec_up.sh -n dnode1 -s start
sleep 3000
sql connect
sql create dnode $hostname2
system sh/exec_up.sh -n dnode2 -s start
$x = 0
show1:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql show dnodes -x show1
$dnode1Vnodes = $data2_1
print dnode1 $dnode2Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode3Vnodes
if $dnode1Vnodes != 4 then
goto show1
endi
if $dnode2Vnodes != 4 then
goto show1
endi
sleep 1000
sql create database c_b1_d1 tables 4
sql use c_b1_d1
sql create table c_b1_t1 (t timestamp, i int)
sql insert into c_b1_t1 values(now+1s, 15)
sql insert into c_b1_t1 values(now+2s, 14)
sql insert into c_b1_t1 values(now+2s, 13)
sql insert into c_b1_t1 values(now+3s, 12)
sql insert into c_b1_t1 values(now+4s, 11)
sql create database c_b1_d2 tables 4
sql use c_b1_d2
sql create table c_b1_t2 (t timestamp, i int)
sql insert into c_b1_t2 values(now+1s, 25)
sql insert into c_b1_t2 values(now+2s, 24)
sql insert into c_b1_t2 values(now+3s, 23)
sql insert into c_b1_t2 values(now+4s, 22)
sql insert into c_b1_t2 values(now+5s, 21)
sql show dnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode2Vnodes != 2 then
return -1
endi
if $dnode3Vnodes != null then
return -1
endi
print ============================== step2
print ========= start dnode3
sleep 3000
sql create dnode $hostname3
system sh/exec_up.sh -n dnode3 -s start
sleep 8000
$x = 0
show2:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql show dnodes -x show2
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode2Vnodes != 3 then
goto show2
endi
if $dnode3Vnodes != 3 then
goto show2
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print ============================== step3
print ========= add db3
sql create database c_b1_d3 tables 4
sql use c_b1_d3
sql create table c_b1_t3 (t timestamp, i int)
sql insert into c_b1_t3 values(now+1s, 35)
sql insert into c_b1_t3 values(now+2s, 34)
sql insert into c_b1_t3 values(now+3s, 33)
sql insert into c_b1_t3 values(now+4s, 32)
sql insert into c_b1_t3 values(now+5s, 31)
print ============================== step4
print ========= drop dnode3
sql drop dnode $hostname3
sleep 9000
$x = 0
show4:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql show dnodes -x show4
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode2Vnodes != 1 then
goto show4
endi
if $dnode3Vnodes != null then
goto show4
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print ============================== step5
print ========= add dnode3
system sh/exec_up.sh -n dnode3 -s stop -x SIGINT
sleep 5000
system sh/exec_up.sh -n dnode3 -s start
sql create dnode $hostname3
sleep 9000
$x = 0
show5:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql show dnodes -x show5
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode2Vnodes != 2 then
goto show5
endi
if $dnode3Vnodes != 3 then
goto show5
endi
print ============================== step6
print ========= drop dnode2
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
print stop dnode2 and sleep 10000
sleep 10000
sql drop dnode $hostname2
print drop dnode2 and sleep 9000
sleep 9000
$x = 0
show6:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show6
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode2Vnodes != null then
goto show6
endi
if $dnode3Vnodes != 1 then
goto show6
endi
#only c_b2_d2 has data, c_b1_d1 and c_b1_d3 is null
print ============================== step7
print ========= add dnode2
sql create dnode $hostname2
system sh/exec_up.sh -n dnode2 -s start
sleep 9000
$x = 0
show7:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql show dnodes -x show7
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode2Vnodes != 3 then
goto show7
endi
if $dnode3Vnodes != 2 then
goto show7
endi
print ============================== step8
print ========= drop dnode3
system sh/exec_up.sh -n dnode3 -s stop -x SIGINT
print stop dnode3 and sleep 10000
sleep 10000
sql drop dnode $hostname3
print drop dnode3 and sleep 9000
sleep 9000
$x = 0
show8:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql show dnodes -x show8
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode2Vnodes != 1 then
goto show8
endi
if $dnode3Vnodes != null then
goto show8
endi
print ============================== step9
print ========= add dnode3
sql create dnode $hostname3
system sh/exec_up.sh -n dnode3 -s start
sleep 9000
$x = 0
show9:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql show dnodes -x show9
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode2Vnodes != 2 then
goto show9
endi
if $dnode3Vnodes != 3 then
goto show9
endi
print ============================== step10
print ========= add db4
sql create database c_b1_d4 tables 4
sql use c_b1_d4
sql create table c_b1_t4 (t timestamp, i int)
sql insert into c_b1_t4 values(now+1s, 45)
sql insert into c_b1_t4 values(now+2s, 44)
sql insert into c_b1_t4 values(now+3s, 43)
sql insert into c_b1_t4 values(now+4s, 42)
sql insert into c_b1_t4 values(now+5s, 41)
$x = 0
show10:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql show dnodes -x show10
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode2Vnodes != 2 then
goto show10
endi
if $dnode3Vnodes != 2 then
goto show10
endi
sql use c_b1_d3
sql insert into c_b1_t3 values(now+1s, 35)
sql use c_b1_d2
sql insert into c_b1_t2 values(now+1s, 25)
print ============================== step11
print ========= drop dnode3
sql drop dnode $hostname3
sleep 9000
$x = 0
show11:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql show dnodes -x show11
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode2Vnodes != 0 then
goto show11
endi
if $dnode3Vnodes != null then
goto show11
endi
system sh/exec_up.sh -n dnode3 -s stop -x SIGINT
print ============================== step12
print ========= add db5
sql create database c_b1_d5 tables 4
sql use c_b1_d5
print ============================== step13
print ========= add dnode3
sql create dnode $hostname3
system sh/exec_up.sh -n dnode3 -s start
sleep 9000
sql use c_b1_d5;
$x = 0
create5:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql create table c_b1_t5 (t timestamp, i int) -x create5
sql insert into c_b1_t5 values(now+1s, 55)
sql insert into c_b1_t5 values(now+2s, 54)
sql insert into c_b1_t5 values(now+3s, 53)
sql insert into c_b1_t5 values(now+4s, 52)
sql insert into c_b1_t5 values(now+5s, 51)
sql create database c_b1_d6 tables 4
sql use c_b1_d6
$x = 0
create6:
$x = $x + 1
sleep 1000
if $x == 20 then
return -1
endi
sql create table c_b1_t6 (t timestamp, i int) -x create6
sql insert into c_b1_t6 values(now+1s, 65)
sql insert into c_b1_t6 values(now+2s, 64)
sql insert into c_b1_t6 values(now+3s, 63)
sql insert into c_b1_t6 values(now+4s, 62)
sql insert into c_b1_t6 values(now+5s, 61)
sql show dnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
#if $dnode2Vnodes != 1 then
# return -1
#endi
#if $dnode3Vnodes != 1 then
# return -1
#endi
print ============================== step14
print ========= add dnode4
sql create dnode $hostname4
system sh/exec_up.sh -n dnode4 -s start
sleep 10000
$x = 0
show14:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql show dnodes -x show14
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
if $dnode2Vnodes != 2 then
goto show14
endi
if $dnode3Vnodes != 2 then
goto show14
endi
if $dnode4Vnodes != 2 then
goto show14
endi
print ============================== step15
print ========= create db7 db8
sql create database c_b1_d7 tables 4
sql use c_b1_d7
sql create table c_b1_t7 (t timestamp, i int)
sql insert into c_b1_t7 values(now+1s, 75)
sql insert into c_b1_t7 values(now+2s, 74)
sql insert into c_b1_t7 values(now+3s, 73)
sql insert into c_b1_t7 values(now+4s, 72)
sql insert into c_b1_t7 values(now+5s, 71)
sql create database c_b1_d8 tables 4
sql use c_b1_d8
sql create table c_b1_t8 (t timestamp, i int)
sql insert into c_b1_t8 values(now+1s, 85)
sql insert into c_b1_t8 values(now+2s, 84)
sql insert into c_b1_t8 values(now+3s, 83)
sql insert into c_b1_t8 values(now+4s, 82)
sql insert into c_b1_t8 values(now+5s, 81)
print ========== add dnode5
sql create dnode $hostname5
print sql create dnode $hostname5 over
system sh/exec_up.sh -n dnode5 -s start
print sleep 12000
sleep 12000
print sleep 12000 over
$x = 0
show15:
$x = $x + 1
sleep 1000
if $x == 30 then
return -1
endi
sql show dnodes -x show15
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
$dnode5Vnodes = $data2_5
print dnode5 $dnode5Vnodes
if $dnode2Vnodes != 2 then
goto show15
endi
if $dnode3Vnodes != 2 then
goto show15
endi
if $dnode4Vnodes != 2 then
goto show15
endi
if $dnode5Vnodes != 2 then
goto show15
endi
print ============================== step16
print ========= drop dnode5, create db9
sql drop dnode $hostname5
sleep 10000
sql create database c_b1_d9 tables 4
sql use c_b1_d9
sql create table c_b1_t9 (t timestamp, i int)
sql insert into c_b1_t9 values(now+1s, 95)
sql insert into c_b1_t9 values(now+2s, 94)
sql insert into c_b1_t9 values(now+3s, 93)
sql insert into c_b1_t9 values(now+4s, 92)
sql insert into c_b1_t9 values(now+5s, 91)
system sh/exec_up.sh -n dnode5 -s stop -x SIGINT
$x = 0
show16:
$x = $x + 1
sleep 1000
if $x == 50 then
return -1
endi
sql show dnodes -x show16
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
if $dnode2Vnodes != 1 then
goto show16
endi
if $dnode3Vnodes != 1 then
goto show16
endi
if $dnode4Vnodes != 1 then
goto show16
endi
print ============================== step17
print ========= check data
sql use c_b1_d1
sql select * from c_b1_t1
if $rows != 0 then
return -1
endi
sql use c_b1_d2
sql select * from c_b1_t2
if $rows != 6 then
return -1
endi
sql use c_b1_d3
sql select * from c_b1_t3 order by t desc
print $data01 $data11 $data21 $data31 $data41
if $rows != 1 then
return -1
endi
if $data01 != 35 then
return -1
endi
sql use c_b1_d4
sql select * from c_b1_t4 order by t desc
print $data01 $data11 $data21 $data31 $data41
if $data01 != 41 then
return -1
endi
if $data11 != 42 then
return -1
endi
if $data21 != 43 then
return -1
endi
if $data31 != 44 then
return -1
endi
if $data41 != 45 then
return -1
endi
sql use c_b1_d5
sql select * from c_b1_t5 order by t desc
print $data01 $data11 $data21 $data31 $data41
if $data01 != 51 then
return -1
endi
if $data11 != 52 then
return -1
endi
if $data21 != 53 then
return -1
endi
if $data31 != 54 then
return -1
endi
if $data41 != 55 then
return -1
endi
sql use c_b1_d6
sql select * from c_b1_t6 order by t desc
print $data01 $data11 $data21 $data31 $data41
if $data01 != 61 then
return -1
endi
if $data11 != 62 then
return -1
endi
if $data21 != 63 then
return -1
endi
if $data31 != 64 then
return -1
endi
if $data41 != 65 then
return -1
endi
sql use c_b1_d7
sql select * from c_b1_t7 order by t desc
print $data01 $data11 $data21 $data31 $data41
if $data01 != 71 then
return -1
endi
if $data11 != 72 then
return -1
endi
if $data21 != 73 then
return -1
endi
if $data31 != 74 then
return -1
endi
if $data41 != 75 then
return -1
endi
sql use c_b1_d8
sql select * from c_b1_t8 order by t desc
print $data01 $data11 $data21 $data31 $data41
if $data01 != 81 then
return -1
endi
if $data11 != 82 then
return -1
endi
if $data21 != 83 then
return -1
endi
if $data31 != 84 then
return -1
endi
if $data41 != 85 then
return -1
endi
sql use c_b1_d9
sql select * from c_b1_t9 order by t desc
print $data01 $data11 $data21 $data31 $data41
if $data01 != 91 then
return -1
endi
if $data11 != 92 then
return -1
endi
if $data21 != 93 then
return -1
endi
if $data31 != 94 then
return -1
endi
if $data41 != 95 then
return -1
endi
print ============================================ over
#system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
#system sh/exec_up.sh -n dnode3 -s stop -x SIGINT
#system sh/exec_up.sh -n dnode4 -s stop -x SIGINT
#system sh/exec_up.sh -n dnode5 -s stop -x SIGINT
tests/script/unique/cluster/balance2.sim
浏览文件 @
6e8f3055
...
@@ -128,13 +128,13 @@ print dnode2 $dnode2Vnodes
...
@@ -128,13 +128,13 @@ print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
print dnode3 $dnode3Vnodes
if $dnode1Vnodes !=
1
then
if $dnode1Vnodes !=
3
then
goto show2
goto show2
endi
endi
if $dnode2Vnodes != null then
if $dnode2Vnodes != null then
goto show2
goto show2
endi
endi
if $dnode3Vnodes !=
1
then
if $dnode3Vnodes !=
3
then
goto show2
goto show2
endi
endi
...
@@ -151,18 +151,9 @@ print dnode4 ==> $dnode4Role
...
@@ -151,18 +151,9 @@ print dnode4 ==> $dnode4Role
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
print ============================== step3
print ============================== step3
print ========= start dnode2
print ========= start dnode4
sql create dnode $hostname2
sql create dnode $hostname4
system sh/exec_up.sh -n dnode4 -s start
sleep 3000
system sh/deploy.sh -n dnode2 -i 2
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode2 -c clog -v 1
system sh/cfg.sh -n dnode2 -c mgmtEqualVnodeNum -v 0
sleep 3000
system sh/exec_up.sh -n dnode2 -s start
sleep 10000
sleep 10000
$x = 0
$x = 0
...
@@ -175,15 +166,15 @@ show3:
...
@@ -175,15 +166,15 @@ show3:
sql show dnodes -x show3
sql show dnodes -x show3
$dnode1Vnodes = $data2_1
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
print dnode1 $dnode1Vnodes
$dnode
2Vnodes = $data2_2
$dnode
4Vnodes = $data2_4
print dnode
2 $dnode2
Vnodes
print dnode
4 $dnode4
Vnodes
$dnode3Vnodes = $data2_3
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
print dnode3 $dnode3Vnodes
if $dnode1Vnodes != 2 then
if $dnode1Vnodes != 2 then
goto show3
goto show3
endi
endi
if $dnode
2
Vnodes != 2 then
if $dnode
4
Vnodes != 2 then
goto show3
goto show3
endi
endi
if $dnode3Vnodes != 2 then
if $dnode3Vnodes != 2 then
...
@@ -200,6 +191,20 @@ print dnode2 ==> $dnode2Role
...
@@ -200,6 +191,20 @@ print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print dnode4 ==> $dnode4Role
if $dnode1Role != master then
return -1
endi
if $dnode2Role != null then
return -1
endi
if $dnode3Role != slave then
return -1
endi
if $dnode4Role != slave then
return -1
endi
print ============================== step4
print ============================== step4
print ========= drop dnode3
print ========= drop dnode3
sql drop dnode $hostname3
sql drop dnode $hostname3
...
@@ -215,15 +220,15 @@ show4:
...
@@ -215,15 +220,15 @@ show4:
sql show dnodes -x show4
sql show dnodes -x show4
$dnode1Vnodes = $data2_1
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
print dnode1 $dnode1Vnodes
$dnode
2Vnodes = $data2_2
$dnode
4Vnodes = $data2_4
print dnode
2 $dnode2
Vnodes
print dnode
4 $dnode4
Vnodes
$dnode3Vnodes = $data2_3
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
print dnode3 $dnode3Vnodes
if $dnode1Vnodes !=
1
then
if $dnode1Vnodes !=
3
then
goto show4
goto show4
endi
endi
if $dnode
2Vnodes != 1
then
if $dnode
4Vnodes != 3
then
goto show4
goto show4
endi
endi
if $dnode3Vnodes != null then
if $dnode3Vnodes != null then
...
@@ -240,21 +245,26 @@ print dnode2 ==> $dnode2Role
...
@@ -240,21 +245,26 @@ print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print dnode4 ==> $dnode4Role
if $dnode1Role != master then
return -1
endi
if $dnode2Role != null then
return -1
endi
if $dnode3Role != null then
return -1
endi
if $dnode4Role != slave then
return -1
endi
system sh/exec_up.sh -n dnode3 -s stop -x SIGINT
system sh/exec_up.sh -n dnode3 -s stop -x SIGINT
print ============================== step5
print ============================== step5
print ========= start dnode3
print ========= start dnode3
sql create dnode $hostname3
sql create dnode $hostname5
system sh/exec_up.sh -n dnode5 -s start
sleep 3000
system sh/deploy.sh -n dnode3 -i 3
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode3 -c clog -v 1
system sh/cfg.sh -n dnode3 -c mgmtEqualVnodeNum -v 0
sleep 3000
system sh/exec_up.sh -n dnode3 -s start
sleep 9000
sleep 9000
$x = 0
$x = 0
...
@@ -267,33 +277,30 @@ show5:
...
@@ -267,33 +277,30 @@ show5:
sql show dnodes -x show5
sql show dnodes -x show5
$dnode1Vnodes = $data2_1
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
print dnode1 $dnode1Vnodes
$dnode
2Vnodes = $data2_2
$dnode
4Vnodes = $data2_4
print dnode
2 $dnode2
Vnodes
print dnode
4 $dnode4
Vnodes
$dnode
3Vnodes = $data2_3
$dnode
5Vnodes = $data2_5
print dnode
3 $dnode3
Vnodes
print dnode
5 $dnode5
Vnodes
if $dnode1Vnodes != 2 then
if $dnode1Vnodes != 2 then
goto show5
goto show5
endi
endi
if $dnode
2
Vnodes != 2 then
if $dnode
4
Vnodes != 2 then
goto show5
goto show5
endi
endi
if $dnode
3
Vnodes != 2 then
if $dnode
5
Vnodes != 2 then
goto show5
goto show5
endi
endi
sql show mnodes
sql show mnodes
$dnode1Role = $data2_1
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
$dnode4Role = $data2_4
$dnode5Role = $data2_5
print dnode1 ==> $dnode1Role
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print dnode4 ==> $dnode4Role
print dnode5 ==> $dnode5Role
print ============================== step6
print ============================== step6
print ========= drop dnode1
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
print stop dnode1 and sleep 10000
print stop dnode1 and sleep 10000
sleep 10000
sleep 10000
...
@@ -302,347 +309,63 @@ sql drop dnode $hostname1
...
@@ -302,347 +309,63 @@ sql drop dnode $hostname1
print drop dnode1 and sleep 9000
print drop dnode1 and sleep 9000
sleep 9000
sleep 9000
$x = 0
show6:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show6
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode1Vnodes != null then
goto show6
endi
if $dnode2Vnodes != 1 then
goto show6
endi
if $dnode3Vnodes != 1 then
goto show6
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print ============================== step7
print ========= start dnode1
sql create dnode $hostname1
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
sleep 3000
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode1 -c clog -v 1
system sh/cfg.sh -n dnode1 -c mgmtEqualVnodeNum -v 0
sleep 3000
system sh/exec_up.sh -n dnode1 -s start
sleep 9000
$x = 0
show7:
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show7
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
if $dnode1Vnodes != 2 then
goto show7
endi
if $dnode2Vnodes != 2 then
goto show7
endi
if $dnode3Vnodes != 2 then
goto show7
endi
print ============================== step8
print ========= add db4
sql create database c_b2_d4 replica 2 tables 4
sql use c_b2_d4
sql create table c_b2_t4 (t timestamp, i int)
sql insert into c_b2_t4 values(1520000020045, 45)
sql insert into c_b2_t4 values(1520000021044, 44)
sql insert into c_b2_t4 values(1520000022043, 43)
sql insert into c_b2_t4 values(1520000023042, 42)
sql insert into c_b2_t4 values(1520000024041, 41)
sql create dnode $hostname4
system sh/exec_up.sh -n dnode4 -s start
sleep 9000
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
$x = 0
show8:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show8
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
if $dnode1Vnodes != 2 then
goto show8
endi
if $dnode2Vnodes != 2 then
goto show8
endi
if $dnode3Vnodes != 2 then
goto show8
endi
if $dnode4Vnodes != 2 then
goto show8
endi
print ============================== step9
print ========= drop dnode1.4
sql drop dnode $hostname1
sql drop dnode $hostname4
sleep 10000
sql show mnodes
sql show mnodes
$dnode1Role = $data2_1
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
$dnode4Role = $data2_4
$dnode5Role = $data2_5
print dnode1 ==> $dnode1Role
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print dnode4 ==> $dnode4Role
print dnode5 ==> $dnode5Role
$x = 0
if $dnode1Role != offline then
show9:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
return -1
endi
sql show dnodes -x show9
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
if $dnode1Vnodes != null then
goto show9
endi
if $dnode2Vnodes != 0 then
goto show9
endi
endi
if $dnode3Vnodes != 0 then
goto show9
endi
if $dnode4Vnodes != null then
goto show9
endi
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
system sh/exec_up.sh -n dnode4 -s stop -x SIGINT
print ============================== step10
print ========= start dnode1.4
sql create dnode $hostname1
sql create dnode $hostname4
sleep 3000
system sh/deploy.sh -n dnode1 -i 1
ssystem sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode1 -c clog -v 1
system sh/cfg.sh -n dnode1 -c mgmtEqualVnodeNum -v 0
sleep 3000
sleep 3000
system sh/deploy.sh -n dnode4 -i 4
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode4 -c clog -v 1
system sh/cfg.sh -n dnode4 -c mgmtEqualVnodeNum -v 0
sleep 3000
print ============================== step6.1
system sh/exec_up.sh -n dnode1 -s start
system sh/exec_up.sh -n dnode1 -s start
system sh/exec_up.sh -n dnode4 -s start
sleep 10000
$x = 0
$x = 0
show10:
show6:
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
$x = $x + 1
$x = $x + 1
sleep 2000
sleep 2000
if $x == 30 then
if $x == 30 then
return -1
return -1
endi
endi
sql show dnodes -x show
10
sql show dnodes -x show
6
$dnode1Vnodes = $data2_1
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
print dnode4 $dnode4Vnodes
$dnode5Vnodes = $data2_5
print dnode5 $dnode5Vnodes
if $dnode1Vnodes != 2 then
if $dnode1Vnodes != null then
goto show10
goto show6
endi
if $dnode2Vnodes != 2 then
goto show10
endi
endi
if $dnode
3Vnodes != 2
then
if $dnode
4Vnodes != 3
then
goto show
10
goto show
6
endi
endi
if $dnode
4Vnodes != 2
then
if $dnode
5Vnodes != 3
then
goto show
10
goto show
6
endi
endi
print ============================== step11
sql show mnodes
sql show mnodes
$dnode1Role = $data2_1
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
$dnode4Role = $data2_4
$dnode5Role = $data2_5
print dnode1 ==> $dnode1Role
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print dnode4 ==> $dnode4Role
print dnode5 ==> $dnode5Role
sql create database c_b2_d5 replica 2 tables 4
#system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
sql use c_b2_d5;
sql create table c_b2_t5 (t timestamp, i int)
sql insert into c_b2_t5 values(1520000020055, 55)
sql insert into c_b2_t5 values(1520000021054, 54)
sql insert into c_b2_t5 values(1520000022053, 53)
sql insert into c_b2_t5 values(1520000023052, 52)
sql insert into c_b2_t5 values(1520000024051, 51)
sql create database c_b2_d6 replica 2 tables 4
sql use c_b2_d6
sql create table c_b2_t6 (t timestamp, i int)
sql insert into c_b2_t6 values(1520000020065, 65)
sql insert into c_b2_t6 values(1520000021064, 64)
sql insert into c_b2_t6 values(1520000022063, 63)
sql insert into c_b2_t6 values(1520000023062, 62)
sql insert into c_b2_t6 values(1520000024061, 61)
$x = 0
show11:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show11
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
if $dnode1Vnodes != 1 then
goto show11
endi
if $dnode2Vnodes != 1 then
goto show11
endi
if $dnode3Vnodes != 1 then
goto show11
endi
if $dnode4Vnodes != 1 then
goto show11
endi
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data2_2
$dnode3Role = $data2_3
$dnode4Role = $data2_4
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
print ============================== step12
print ============================== step12
print ========= check data
print ========= check data
sql use c_b2_d1
sql reset query cache
sql select * from c_b2_t1 order by t desc
sleep 1000
sql select * from c_b2_d1.c_b2_t1 order by t desc
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 11 then
if $data01 != 11 then
return -1
return -1
...
@@ -660,8 +383,7 @@ if $data41 != 15 then
...
@@ -660,8 +383,7 @@ if $data41 != 15 then
return -1
return -1
endi
endi
sql use c_b2_d2
sql select * from c_b2_d2.c_b2_t2 order by t desc
sql select * from c_b2_t2 order by t desc
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
#if $data01 != 21 then
#if $data01 != 21 then
...
@@ -680,8 +402,7 @@ print $data01 $data11 $data21 $data31 $data41
...
@@ -680,8 +402,7 @@ print $data01 $data11 $data21 $data31 $data41
# return -1
# return -1
#endi
#endi
sql use c_b2_d3
sql select * from c_b2_d3.c_b2_t3 order by t desc
sql select * from c_b2_t3 order by t desc
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 31 then
if $data01 != 31 then
return -1
return -1
...
@@ -699,8 +420,7 @@ if $data41 != 35 then
...
@@ -699,8 +420,7 @@ if $data41 != 35 then
return -1
return -1
endi
endi
sql use c_b2_d4
sql select * from c_b2_d4.c_b2_t4 order by t desc
sql select * from c_b2_t4 order by t desc
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 41 then
if $data01 != 41 then
return -1
return -1
...
@@ -718,8 +438,7 @@ if $data41 != 45 then
...
@@ -718,8 +438,7 @@ if $data41 != 45 then
return -1
return -1
endi
endi
sql use c_b2_d5
sql select * from c_b2_d5.c_b2_t5 order by t desc
sql select * from c_b2_t5 order by t desc
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 51 then
if $data01 != 51 then
return -1
return -1
...
@@ -737,8 +456,7 @@ if $data41 != 55 then
...
@@ -737,8 +456,7 @@ if $data41 != 55 then
return -1
return -1
endi
endi
sql use c_b2_d6
sql select * from c_b2_d6.c_b2_t6 order by t desc
sql select * from c_b2_t6 order by t desc
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 61 then
if $data01 != 61 then
return -1
return -1
...
@@ -756,7 +474,6 @@ if $data41 != 65 then
...
@@ -756,7 +474,6 @@ if $data41 != 65 then
return -1
return -1
endi
endi
print ============================================ over
print ============================================ over
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
...
@@ -766,5 +483,3 @@ system sh/exec_up.sh -n dnode5 -s stop -x SIGINT
...
@@ -766,5 +483,3 @@ system sh/exec_up.sh -n dnode5 -s stop -x SIGINT
system sh/exec_up.sh -n dnode6 -s stop -x SIGINT
system sh/exec_up.sh -n dnode6 -s stop -x SIGINT
system sh/exec_up.sh -n dnode7 -s stop -x SIGINT
system sh/exec_up.sh -n dnode7 -s stop -x SIGINT
system sh/exec_up.sh -n dnode8 -s stop -x SIGINT
system sh/exec_up.sh -n dnode8 -s stop -x SIGINT
tests/script/unique/cluster/balance3.sim
浏览文件 @
6e8f3055
system sh/stop_dnodes.sh
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/deploy.sh -n dnode1 -i 1
system sh/deploy.sh -n dnode2 -i 2
system sh/deploy.sh -n dnode2 -i 2
system sh/deploy.sh -n dnode3 -i 3
system sh/deploy.sh -n dnode3 -i 3
...
@@ -188,16 +179,8 @@ endi
...
@@ -188,16 +179,8 @@ endi
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
print ============================== step4
print ============================== step4
print ========= start dnode2
sql create dnode $hostname5
sleep 3000
system sh/exec_up.sh -n dnode5 -s start
system sh/deploy.sh -n dnode2 -i 2
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode2 -c clog -v 1
system sh/cfg.sh -n dnode2 -c mgmtEqualVnodeNum -v 0
sleep 3000
sql create dnode $hostname2
system sh/exec_up.sh -n dnode2 -s start
sleep 10000
sleep 10000
$x = 0
$x = 0
...
@@ -210,14 +193,14 @@ show4:
...
@@ -210,14 +193,14 @@ show4:
sql show dnodes -x show4
sql show dnodes -x show4
$dnode1Vnodes = $data2_1
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
print dnode1 $dnode1Vnodes
$dnode
2Vnodes = $data2_2
$dnode
5Vnodes = $data2_5
print dnode
2 $dnode2
Vnodes
print dnode
5 $dnode5
Vnodes
$dnode3Vnodes = $data2_3
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
print dnode4 $dnode4Vnodes
if $dnode
2
Vnodes != 2 then
if $dnode
5
Vnodes != 2 then
goto show4
goto show4
endi
endi
...
@@ -236,8 +219,8 @@ show5:
...
@@ -236,8 +219,8 @@ show5:
sql show dnodes -x show5
sql show dnodes -x show5
$dnode1Vnodes = $data2_1
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
print dnode1 $dnode1Vnodes
$dnode
2Vnodes = $data2_2
$dnode
5Vnodes = $data2_5
print dnode
2 $dnode2
Vnodes
print dnode
5 $dnode5
Vnodes
$dnode3Vnodes = $data2_3
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
$dnode4Vnodes = $data2_4
...
@@ -246,7 +229,7 @@ print dnode4 $dnode4Vnodes
...
@@ -246,7 +229,7 @@ print dnode4 $dnode4Vnodes
if $dnode1Vnodes != 1 then
if $dnode1Vnodes != 1 then
goto show5
goto show5
endi
endi
if $dnode
2
Vnodes != 1 then
if $dnode
5
Vnodes != 1 then
goto show5
goto show5
endi
endi
if $dnode3Vnodes != null then
if $dnode3Vnodes != null then
...
@@ -256,20 +239,11 @@ if $dnode4Vnodes != 1 then
...
@@ -256,20 +239,11 @@ if $dnode4Vnodes != 1 then
goto show5
goto show5
endi
endi
system sh/exec_up.sh -n dnode3 -s stop -x SIGINT
system sh/exec_up.sh -n dnode3 -s stop -x SIGINT
print ============================== step6
print ============================== step6
print ========= start dnode3
sql create dnode $hostname6
sleep 3000
system sh/exec_up.sh -n dnode6 -s start
system sh/deploy.sh -n dnode3 -i 3
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode3 -c clog -v 1
system sh/cfg.sh -n dnode3 -c mgmtEqualVnodeNum -v 0
sleep 3000
sql create dnode $hostname3
system sh/exec_up.sh -n dnode3 -s start
sleep 9000
sleep 9000
$x = 0
$x = 0
...
@@ -282,14 +256,14 @@ show6:
...
@@ -282,14 +256,14 @@ show6:
sql show dnodes -x show6
sql show dnodes -x show6
$dnode1Vnodes = $data2_1
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
print dnode4 $dnode4Vnodes
$dnode5Vnodes = $data2_5
print dnode5 $dnode5Vnodes
$dnode6Vnodes = $data2_6
print dnode6 $dnode6Vnodes
if $dnode
3
Vnodes != 2 then
if $dnode
6
Vnodes != 2 then
goto show6
goto show6
endi
endi
...
@@ -308,20 +282,20 @@ show7:
...
@@ -308,20 +282,20 @@ show7:
sql show dnodes -x show7
sql show dnodes -x show7
$dnode1Vnodes = $data2_1
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
print dnode4 $dnode4Vnodes
$dnode5Vnodes = $data2_5
print dnode5 $dnode5Vnodes
$dnode6Vnodes = $data2_6
print dnode6 $dnode6Vnodes
if $dnode1Vnodes != 1 then
if $dnode1Vnodes != 1 then
goto show7
goto show7
endi
endi
if $dnode
2
Vnodes != 1 then
if $dnode
5
Vnodes != 1 then
goto show7
goto show7
endi
endi
if $dnode
3
Vnodes != 1 then
if $dnode
6
Vnodes != 1 then
goto show7
goto show7
endi
endi
if $dnode4Vnodes != null then
if $dnode4Vnodes != null then
...
@@ -331,16 +305,8 @@ endi
...
@@ -331,16 +305,8 @@ endi
system sh/exec_up.sh -n dnode4 -s stop -x SIGINT
system sh/exec_up.sh -n dnode4 -s stop -x SIGINT
print ============================== step8
print ============================== step8
print ========= start dnode4
sql create dnode $hostname7
sleep 3000
system sh/exec_up.sh -n dnode7 -s start
system sh/deploy.sh -n dnode4 -i 4
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode4 -c clog -v 1
system sh/cfg.sh -n dnode4 -c mgmtEqualVnodeNum -v 0
sleep 3000
sql create dnode $hostname4
system sh/exec_up.sh -n dnode4 -s start
sleep 9000
sleep 9000
$x = 0
$x = 0
...
@@ -353,14 +319,14 @@ show8:
...
@@ -353,14 +319,14 @@ show8:
sql show dnodes -x show8
sql show dnodes -x show8
$dnode1Vnodes = $data2_1
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
print dnode1 $dnode1Vnodes
$dnode
2Vnodes = $data2_2
$dnode
5Vnodes = $data2_5
print dnode
2 $dnode2
Vnodes
print dnode
5 $dnode5
Vnodes
$dnode
3Vnodes = $data2_3
$dnode
6Vnodes = $data2_6
print dnode
3 $dnode3
Vnodes
print dnode
6 $dnode6
Vnodes
$dnode
4Vnodes = $data2_4
$dnode
7Vnodes = $data2_7
print dnode
4 $dnode4
Vnodes
print dnode
7 $dnode7
Vnodes
if $dnode
4
Vnodes != 2 then
if $dnode
7
Vnodes != 2 then
goto show8
goto show8
endi
endi
...
@@ -382,39 +348,26 @@ show9:
...
@@ -382,39 +348,26 @@ show9:
return -1
return -1
endi
endi
sql show dnodes -x show9
sql show dnodes -x show9
$dnode1Vnodes = $data2_1
$dnode5Vnodes = $data2_5
print dnode1 $dnode1Vnodes
print dnode5 $dnode5Vnodes
$dnode2Vnodes = $data2_2
$dnode6Vnodes = $data2_6
print dnode2 $dnode2Vnodes
print dnode6 $dnode6Vnodes
$dnode3Vnodes = $data2_3
$dnode7Vnodes = $data2_7
print dnode3 $dnode3Vnodes
print dnode7 $dnode7Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
if $dnode5Vnodes != 1 then
if $dnode1Vnodes != null then
goto show9
endi
if $dnode2Vnodes != 1 then
goto show9
goto show9
endi
endi
if $dnode
3
Vnodes != 1 then
if $dnode
6
Vnodes != 1 then
goto show9
goto show9
endi
endi
if $dnode
4
Vnodes != 1 then
if $dnode
7
Vnodes != 1 then
goto show9
goto show9
endi
endi
print ============================== step10
print ============================== step10
print ========= start dnode1
sql create dnode $hostname8
sleep 3000
system sh/exec_up.sh -n dnode8 -s start
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode1 -c clog -v 1
system sh/cfg.sh -n dnode1 -c mgmtEqualVnodeNum -v 0
sleep 3000
sql create dnode $hostname1
system sh/exec_up.sh -n dnode1 -s start
sleep 9000
sleep 9000
$x = 0
$x = 0
...
@@ -425,16 +378,16 @@ show10:
...
@@ -425,16 +378,16 @@ show10:
return -1
return -1
endi
endi
sql show dnodes -x show10
sql show dnodes -x show10
$dnode
1Vnodes = $data2_1
$dnode
5Vnodes = $data2_5
print dnode
1 $dnode1
Vnodes
print dnode
5 $dnode5
Vnodes
$dnode
2Vnodes = $data2_2
$dnode
6Vnodes = $data2_6
print dnode
2 $dnode2
Vnodes
print dnode
6 $dnode6
Vnodes
$dnode
3Vnodes = $data2_3
$dnode
7Vnodes = $data2_7
print dnode
3 $dnode3
Vnodes
print dnode
7 $dnode7
Vnodes
$dnode
4Vnodes = $data2_4
$dnode
8Vnodes = $data2_8
print dnode
4 $dnode4
Vnodes
print dnode
8 $dnode8
Vnodes
if $dnode
1
Vnodes != 2 then
if $dnode
8
Vnodes != 2 then
goto show10
goto show10
endi
endi
...
@@ -488,48 +441,15 @@ endi
...
@@ -488,48 +441,15 @@ endi
# goto show11
# goto show11
#endi
#endi
print ============================== step12
print ========= drop dnode1
sql drop dnode $hostname1
sleep 10000
$x = 0
show12:
$x = $x + 1
sleep 2000
if $x == 30 then
return -1
endi
sql show dnodes -x show12
$dnode1Vnodes = $data2_1
print dnode1 $dnode1Vnodes
$dnode2Vnodes = $data2_2
print dnode2 $dnode2Vnodes
$dnode3Vnodes = $data2_3
print dnode3 $dnode3Vnodes
$dnode4Vnodes = $data2_4
print dnode4 $dnode4Vnodes
if $dnode1Vnodes != null then
goto show12
endi
if $dnode2Vnodes != 0 then
goto show12
endi
if $dnode3Vnodes != 0 then
goto show12
endi
if $dnode4Vnodes != 0 then
goto show12
endi
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
print ============================== step13
print ============================== step13
sql reset query cache
sleep 1000
print ========= check data
print ========= check data
sql use c_b3_d1
sql select * from c_b3_d1.c_b3_t1 order by t desc
sql select * from c_b3_t1 order by t desc
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 11 then
if $data01 != 11 then
return -1
return -1
...
@@ -547,8 +467,7 @@ if $data41 != 15 then
...
@@ -547,8 +467,7 @@ if $data41 != 15 then
return -1
return -1
endi
endi
sql use c_b3_d2
sql select * from c_b3_d2.c_b3_t2 order by t desc
sql select * from c_b3_t2 order by t desc
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 21 then
if $data01 != 21 then
...
@@ -567,8 +486,7 @@ if $data41 != 25 then
...
@@ -567,8 +486,7 @@ if $data41 != 25 then
return -1
return -1
endi
endi
sql use c_b3_d3
sql select * from c_b3_d3.c_b3_t3 order by t desc
sql select * from c_b3_t3 order by t desc
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 31 then
if $data01 != 31 then
return -1
return -1
...
@@ -586,8 +504,7 @@ if $data41 != 35 then
...
@@ -586,8 +504,7 @@ if $data41 != 35 then
return -1
return -1
endi
endi
sql use c_b3_d4
sql select * from c_b3_d4.c_b3_t4 order by t desc
sql select * from c_b3_t4 order by t desc
print $data01 $data11 $data21 $data31 $data41
print $data01 $data11 $data21 $data31 $data41
if $data01 != 41 then
if $data01 != 41 then
return -1
return -1
...
@@ -615,5 +532,3 @@ system sh/exec_up.sh -n dnode5 -s stop -x SIGINT
...
@@ -615,5 +532,3 @@ system sh/exec_up.sh -n dnode5 -s stop -x SIGINT
system sh/exec_up.sh -n dnode6 -s stop -x SIGINT
system sh/exec_up.sh -n dnode6 -s stop -x SIGINT
system sh/exec_up.sh -n dnode7 -s stop -x SIGINT
system sh/exec_up.sh -n dnode7 -s stop -x SIGINT
system sh/exec_up.sh -n dnode8 -s stop -x SIGINT
system sh/exec_up.sh -n dnode8 -s stop -x SIGINT
tests/script/unique/cluster/testSuite.sim
浏览文件 @
6e8f3055
run unique/cluster/balance1.sim
run unique/cluster/balance1.sim
run unique/cluster/balance2.sim
run unique/cluster/balance2.sim
run unique/cluster/balance3.sim
run unique/cluster/balance3.sim
run unique/cluster/balance1_bug.sim
run unique/cluster/balance1_single.sim
\ No newline at end of file
tests/script/uniqueSuite.sim
已删除
100644 → 0
浏览文件 @
31029ee2
#################################
run unique/mnode/testSuite.sim
##################################
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录