Merge branch 'fix/tsim' into fix/mnode
This commit is contained in:
commit
080c596d91
|
@ -108,7 +108,7 @@ if (async) {
|
|||
}
|
||||
```
|
||||
|
||||
In the above sample code in the else condition, there is an infinite loop. Each time carriage return is entered `taos_consume` is invoked. The return value of `taos_consume` is the selected result set. In the above sample, `print_result` is used to simplify the printing of the result set. Below is the implementation of `print_result`.
|
||||
In the above sample code in the else condition, there is an infinite loop. Each time carriage return is entered `taos_consume` is invoked. The return value of `taos_consume` is the selected result set. In the above sample, `print_result` is used to simplify the printing of the result set. It is similar to `taos_use_result`. Below is the implementation of `print_result`.
|
||||
|
||||
```c
|
||||
void print_result(TAOS_RES* res, int blockFetch) {
|
||||
|
|
|
@ -4,15 +4,15 @@ title: Cache
|
|||
description: "The latest row of each table is kept in cache to provide high performance query of latest state."
|
||||
---
|
||||
|
||||
The cache management policy in TDengine is First-In-First-Out (FIFO), which is also known as insert driven cache management policy and different from read driven cache management, i.e. Least-Recent-Used (LRU). It simply stores the latest data in cache and flushes the oldest data in cache to disk when the cache usage reaches a threshold. In IoT use cases, the most cared about data is the latest data, i.e. current state. The cache policy in TDengine is based the nature of IoT data.
|
||||
The cache management policy in TDengine is First-In-First-Out (FIFO). FIFO is also known as insert driven cache management policy and it is different from read driven cache management, which is more commonly known as Least-Recently-Used (LRU). FIFO simply stores the latest data in cache and flushes the oldest data in cache to disk, when the cache usage reaches a threshold. In IoT use cases, it is the current state i.e. the latest or most recent data that is important. The cache policy in TDengine, like much of the design and architecture of TDengine, is based on the nature of IoT data.
|
||||
|
||||
Caching the latest data provides the capability of retrieving data in milliseconds. With this capability, TDengine can be configured properly to be used as caching system without deploying another separate caching system to simplify the system architecture and minimize the operation cost. The cache will be emptied after TDengine is restarted, TDengine doesn't reload data from disk into cache like a real key-value caching system.
|
||||
Caching the latest data provides the capability of retrieving data in milliseconds. With this capability, TDengine can be configured properly to be used as a caching system without deploying another separate caching system. This simplifies the system architecture and minimizes operational costs. The cache is emptied after TDengine is restarted. TDengine does not reload data from disk into cache, like a key-value caching system.
|
||||
|
||||
The memory space used by TDengine cache is fixed in size, according to the configuration based on application requirement and system resources. Independent memory pool is allocated for and managed by each vnode (virtual node) in TDengine, there is no sharing of memory pools between vnodes. All the tables belonging to a vnode share all the cache memory of the vnode.
|
||||
The memory space used by the TDengine cache is fixed in size and configurable. It should be allocated based on application requirements and system resources. An independent memory pool is allocated for and managed by each vnode (virtual node) in TDengine. There is no sharing of memory pools between vnodes. All the tables belonging to a vnode share all the cache memory of the vnode.
|
||||
|
||||
Memory pool is divided into blocks and data is stored in row format in memory and each block follows FIFO policy. The size of each block is determined by configuration parameter `cache`, the number of blocks for each vnode is determined by `blocks`. For each vnode, the total cache size is `cache * blocks`. A cache block needs to ensure that each table can store at least dozens of records to be efficient.
|
||||
The memory pool is divided into blocks and data is stored in row format in memory and each block follows FIFO policy. The size of each block is determined by configuration parameter `cache` and the number of blocks for each vnode is determined by the parameter `blocks`. For each vnode, the total cache size is `cache * blocks`. A cache block needs to ensure that each table can store at least dozens of records, to be efficient.
|
||||
|
||||
`last_row` function can be used to retrieve the last row of a table or a STable to quickly show the current state of devices on monitoring screen. For example the below SQL statement retrieves the latest voltage of all meters in San Francisco of California.
|
||||
`last_row` function can be used to retrieve the last row of a table or a STable to quickly show the current state of devices on monitoring screen. For example the below SQL statement retrieves the latest voltage of all meters in San Francisco, California.
|
||||
|
||||
```sql
|
||||
select last_row(voltage) from meters where location='California.SanFrancisco';
|
||||
|
|
|
@ -1664,6 +1664,10 @@ typedef struct {
|
|||
int32_t tSerializeSMDropCgroupReq(void* buf, int32_t bufLen, SMDropCgroupReq* pReq);
|
||||
int32_t tDeserializeSMDropCgroupReq(void* buf, int32_t bufLen, SMDropCgroupReq* pReq);
|
||||
|
||||
typedef struct {
|
||||
int8_t reserved;
|
||||
} SMDropCgroupRsp;
|
||||
|
||||
typedef struct {
|
||||
char name[TSDB_TABLE_FNAME_LEN];
|
||||
int8_t alterType;
|
||||
|
|
|
@ -151,6 +151,7 @@ enum {
|
|||
TD_DEF_MSG_TYPE(TDMT_MND_MQ_CONSUMER_LOST, "mnode-mq-consumer-lost", SMqConsumerLostMsg, NULL)
|
||||
TD_DEF_MSG_TYPE(TDMT_MND_MQ_CONSUMER_RECOVER, "mnode-mq-consumer-recover", SMqConsumerRecoverMsg, NULL)
|
||||
TD_DEF_MSG_TYPE(TDMT_MND_MQ_DO_REBALANCE, "mnode-mq-do-rebalance", SMqDoRebalanceMsg, NULL)
|
||||
TD_DEF_MSG_TYPE(TDMT_MND_MQ_DROP_CGROUP, "mnode-mq-drop-cgroup", SMqDropCGroupReq, SMqDropCGroupRsp)
|
||||
TD_DEF_MSG_TYPE(TDMT_MND_MQ_COMMIT_OFFSET, "mnode-mq-commit-offset", SMqCMCommitOffsetReq, SMqCMCommitOffsetRsp)
|
||||
TD_DEF_MSG_TYPE(TDMT_MND_CREATE_STREAM, "mnode-create-stream", SCMCreateStreamReq, SCMCreateStreamRsp)
|
||||
TD_DEF_MSG_TYPE(TDMT_MND_ALTER_STREAM, "mnode-alter-stream", NULL, NULL)
|
||||
|
|
|
@ -268,6 +268,7 @@ int32_t* taosGetErrno();
|
|||
#define TSDB_CODE_MND_OFFSET_NOT_EXIST TAOS_DEF_ERROR_CODE(0, 0x03E9)
|
||||
#define TSDB_CODE_MND_CONSUMER_NOT_READY TAOS_DEF_ERROR_CODE(0, 0x03EA)
|
||||
#define TSDB_CODE_MND_TOPIC_SUBSCRIBED TAOS_DEF_ERROR_CODE(0, 0x03EB)
|
||||
#define TSDB_CODE_MND_CGROUP_USED TAOS_DEF_ERROR_CODE(0, 0x03EC)
|
||||
|
||||
// mnode-stream
|
||||
#define TSDB_CODE_MND_STREAM_ALREADY_EXIST TAOS_DEF_ERROR_CODE(0, 0x03F0)
|
||||
|
|
|
@ -94,6 +94,7 @@ typedef enum {
|
|||
TRN_TYPE_ALTER_STREAM = 1027,
|
||||
TRN_TYPE_CONSUMER_LOST = 1028,
|
||||
TRN_TYPE_CONSUMER_RECOVER = 1029,
|
||||
TRN_TYPE_DROP_CGROUP = 1030,
|
||||
TRN_TYPE_BASIC_SCOPE_END,
|
||||
|
||||
TRN_TYPE_GLOBAL_SCOPE = 2000,
|
||||
|
|
|
@ -39,6 +39,7 @@ static FORCE_INLINE int32_t mndMakePartitionKey(char *key, const char *cgroup, c
|
|||
|
||||
int32_t mndDropOffsetByDB(SMnode *pMnode, STrans *pTrans, SDbObj *pDb);
|
||||
int32_t mndDropOffsetByTopic(SMnode *pMnode, STrans *pTrans, const char *topic);
|
||||
int32_t mndDropOffsetBySubKey(SMnode *pMnode, STrans *pTrans, const char *subKey);
|
||||
|
||||
bool mndOffsetFromTopic(SMqOffsetObj *pOffset, const char *topic);
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ int32_t mndMakeSubscribeKey(char *key, const char *cgroup, const char *topicName
|
|||
|
||||
int32_t mndDropSubByDB(SMnode *pMnode, STrans *pTrans, SDbObj *pDb);
|
||||
int32_t mndDropSubByTopic(SMnode *pMnode, STrans *pTrans, const char *topic);
|
||||
int32_t mndSetDropSubCommitLogs(SMnode *pMnode, STrans *pTrans, SMqSubscribeObj *pSub);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -58,6 +58,12 @@ bool mndOffsetFromTopic(SMqOffsetObj *pOffset, const char *topic) {
|
|||
return false;
|
||||
}
|
||||
|
||||
bool mndOffsetFromSubKey(SMqOffsetObj *pOffset, const char *subKey) {
|
||||
int32_t i = 0;
|
||||
while (pOffset->key[i] != ':') i++;
|
||||
if (strcmp(&pOffset->key[i + 1], subKey) == 0) return true;
|
||||
return false;
|
||||
}
|
||||
SSdbRaw *mndOffsetActionEncode(SMqOffsetObj *pOffset) {
|
||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
||||
void *buf = NULL;
|
||||
|
@ -303,7 +309,35 @@ int32_t mndDropOffsetByTopic(SMnode *pMnode, STrans *pTrans, const char *topic)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (mndSetDropOffsetRedoLogs(pMnode, pTrans, pOffset) < 0) {
|
||||
if (mndSetDropOffsetCommitLogs(pMnode, pTrans, pOffset) < 0) {
|
||||
sdbRelease(pSdb, pOffset);
|
||||
goto END;
|
||||
}
|
||||
|
||||
sdbRelease(pSdb, pOffset);
|
||||
}
|
||||
|
||||
code = 0;
|
||||
END:
|
||||
return code;
|
||||
}
|
||||
|
||||
int32_t mndDropOffsetBySubKey(SMnode *pMnode, STrans *pTrans, const char *subKey) {
|
||||
int32_t code = -1;
|
||||
SSdb *pSdb = pMnode->pSdb;
|
||||
|
||||
void *pIter = NULL;
|
||||
SMqOffsetObj *pOffset = NULL;
|
||||
while (1) {
|
||||
pIter = sdbFetch(pSdb, SDB_OFFSET, pIter, (void **)&pOffset);
|
||||
if (pIter == NULL) break;
|
||||
|
||||
if (!mndOffsetFromSubKey(pOffset, subKey)) {
|
||||
sdbRelease(pSdb, pOffset);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (mndSetDropOffsetCommitLogs(pMnode, pTrans, pOffset) < 0) {
|
||||
sdbRelease(pSdb, pOffset);
|
||||
goto END;
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ static int32_t mndSubActionDelete(SSdb *pSdb, SMqSubscribeObj *);
|
|||
static int32_t mndSubActionUpdate(SSdb *pSdb, SMqSubscribeObj *pOldSub, SMqSubscribeObj *pNewSub);
|
||||
|
||||
static int32_t mndProcessRebalanceReq(SRpcMsg *pMsg);
|
||||
static int32_t mndProcessDropCgroupReq(SRpcMsg *pMsg);
|
||||
static int32_t mndProcessSubscribeInternalRsp(SRpcMsg *pMsg);
|
||||
|
||||
static int32_t mndRetrieveSubscribe(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBlock, int32_t rows);
|
||||
|
@ -75,6 +76,8 @@ int32_t mndInitSubscribe(SMnode *pMnode) {
|
|||
mndSetMsgHandle(pMnode, TDMT_VND_MQ_VG_CHANGE_RSP, mndProcessSubscribeInternalRsp);
|
||||
mndSetMsgHandle(pMnode, TDMT_VND_MQ_VG_DELETE_RSP, mndProcessSubscribeInternalRsp);
|
||||
mndSetMsgHandle(pMnode, TDMT_MND_MQ_DO_REBALANCE, mndProcessRebalanceReq);
|
||||
mndSetMsgHandle(pMnode, TDMT_MND_MQ_DO_REBALANCE, mndProcessRebalanceReq);
|
||||
mndSetMsgHandle(pMnode, TDMT_MND_MQ_DROP_CGROUP, mndProcessDropCgroupReq);
|
||||
|
||||
mndAddShowRetrieveHandle(pMnode, TSDB_MGMT_TABLE_SUBSCRIPTIONS, mndRetrieveSubscribe);
|
||||
mndAddShowFreeIterHandle(pMnode, TSDB_MGMT_TABLE_TOPICS, mndCancelGetNextSubscribe);
|
||||
|
@ -581,6 +584,57 @@ static int32_t mndProcessRebalanceReq(SRpcMsg *pMsg) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int32_t mndProcessDropCgroupReq(SRpcMsg *pReq) {
|
||||
SMnode *pMnode = pReq->info.node;
|
||||
/*SSdb *pSdb = pMnode->pSdb;*/
|
||||
SMDropCgroupReq dropReq = {0};
|
||||
|
||||
if (tDeserializeSMDropCgroupReq(pReq->pCont, pReq->contLen, &dropReq) != 0) {
|
||||
terrno = TSDB_CODE_INVALID_MSG;
|
||||
return -1;
|
||||
}
|
||||
|
||||
SMqSubscribeObj *pSub = mndAcquireSubscribe(pMnode, dropReq.cgroup, dropReq.topic);
|
||||
if (pSub == NULL) {
|
||||
if (dropReq.igNotExists) {
|
||||
mDebug("cgroup:%s on topic:%s, not exist, ignore not exist is set", dropReq.cgroup, dropReq.topic);
|
||||
return 0;
|
||||
} else {
|
||||
terrno = TSDB_CODE_MND_SUBSCRIBE_NOT_EXIST;
|
||||
mError("topic:%s, cgroup:%s, failed to drop since %s", dropReq.topic, dropReq.cgroup, terrstr());
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (taosHashGetSize(pSub->consumerHash) == 0) {
|
||||
terrno = TSDB_CODE_MND_CGROUP_USED;
|
||||
mError("cgroup:%s on topic:%s, failed to drop since %s", dropReq.cgroup, dropReq.topic, terrstr());
|
||||
return -1;
|
||||
}
|
||||
|
||||
STrans *pTrans = mndTransCreate(pMnode, TRN_POLICY_ROLLBACK, TRN_TYPE_DROP_CGROUP, pReq);
|
||||
if (pTrans == NULL) {
|
||||
mError("cgroup: %s on topic:%s, failed to drop since %s", dropReq.cgroup, dropReq.topic, terrstr());
|
||||
return -1;
|
||||
}
|
||||
|
||||
mDebug("trans:%d, used to drop cgroup:%s on topic %s", pTrans->id, dropReq.cgroup, dropReq.topic);
|
||||
|
||||
if (mndDropOffsetBySubKey(pMnode, pTrans, pSub->key) < 0) {
|
||||
ASSERT(0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mndSetDropSubCommitLogs(pMnode, pTrans, pSub) < 0) {
|
||||
mError("cgroup %s on topic:%s, failed to drop since %s", dropReq.cgroup, dropReq.topic, terrstr());
|
||||
return -1;
|
||||
}
|
||||
|
||||
mndReleaseSubscribe(pMnode, pSub);
|
||||
|
||||
return TSDB_CODE_ACTION_IN_PROGRESS;
|
||||
}
|
||||
|
||||
void mndCleanupSubscribe(SMnode *pMnode) {}
|
||||
|
||||
static SSdbRaw *mndSubActionEncode(SMqSubscribeObj *pSub) {
|
||||
|
@ -735,7 +789,7 @@ static int32_t mndSetDropSubRedoLogs(SMnode *pMnode, STrans *pTrans, SMqSubscrib
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int32_t mndSetDropSubCommitLogs(SMnode *pMnode, STrans *pTrans, SMqSubscribeObj *pSub) {
|
||||
int32_t mndSetDropSubCommitLogs(SMnode *pMnode, STrans *pTrans, SMqSubscribeObj *pSub) {
|
||||
SSdbRaw *pCommitRaw = mndSubActionEncode(pSub);
|
||||
if (pCommitRaw == NULL) return -1;
|
||||
if (mndTransAppendCommitlog(pTrans, pCommitRaw) != 0) return -1;
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
$db = csaa_db
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print ======== step1
|
||||
|
|
|
@ -1,13 +1,8 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
||||
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
||||
|
||||
print ========= start dnode1 as master
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print ======== step1
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print ======== step1
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print ======== step1
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print ======== step1
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print ======== step1
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
run general/alter/cached_schema_after_alter.sim
|
||||
run general/alter/count.sim
|
||||
run general/alter/import.sim
|
||||
run general/alter/insert1.sim
|
||||
run general/alter/insert2.sim
|
||||
run general/alter/metrics.sim
|
||||
run general/alter/table.sim
|
|
@ -88,7 +88,6 @@
|
|||
./test.sh -f tsim/tmq/topic.sim
|
||||
|
||||
# --- stable
|
||||
./test.sh -f tsim/stable/alter1.sim
|
||||
./test.sh -f tsim/stable/disk.sim
|
||||
./test.sh -f tsim/stable/dnode3.sim
|
||||
./test.sh -f tsim/stable/metrics.sim
|
||||
|
@ -98,8 +97,12 @@
|
|||
./test.sh -f tsim/stable/vnode3.sim
|
||||
./test.sh -f tsim/stable/column_add.sim
|
||||
./test.sh -f tsim/stable/column_drop.sim
|
||||
#./test.sh -f tsim/stable/column_modify.sim
|
||||
|
||||
./test.sh -f tsim/stable/column_modify.sim
|
||||
./test.sh -f tsim/stable/tag_add.sim
|
||||
./test.sh -f tsim/stable/tag_drop.sim
|
||||
./test.sh -f tsim/stable/tag_modify.sim
|
||||
./test.sh -f tsim/stable/tag_rename.sim
|
||||
./test.sh -f tsim/stable/alter_comment.sim
|
||||
|
||||
# --- for multi process mode
|
||||
./test.sh -f tsim/user/basic1.sim -m
|
||||
|
@ -120,4 +123,10 @@
|
|||
# --- valgrind
|
||||
./test.sh -f tsim/valgrind/checkError.sim -v
|
||||
|
||||
# --- sync
|
||||
./test.sh -f tsim/sync/3Replica1VgElect.sim
|
||||
./test.sh -f tsim/sync/3Replica5VgElect.sim
|
||||
./test.sh -f tsim/sync/oneReplica1VgElect.sim
|
||||
./test.sh -f tsim/sync/oneReplica5VgElect.sim
|
||||
|
||||
#======================b1-end===============
|
||||
|
|
|
@ -166,4 +166,5 @@ if $data[0][6] != abcde then
|
|||
return -1
|
||||
endi
|
||||
|
||||
return
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
|
@ -1,13 +1,8 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
||||
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
||||
|
||||
print ========= start dnode1 as master
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print ======== step1
|
||||
|
@ -141,10 +136,11 @@ endi
|
|||
|
||||
print ============= step10
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
sleep 3000
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sleep 3000
|
||||
sql connect
|
||||
|
||||
sql select count(a), count(b), count(c), count(d), count(e), count(f), count(g), count(h) from d1.tb;
|
||||
sql select count(a), count(b), count(c), count(d), count(e), count(f), count(g), count(h) from d1.tb;
|
||||
sql select count(a), count(b), count(c), count(d), count(e), count(f), count(g), count(h) from tb
|
||||
if $data00 != 24 then
|
||||
return -1
|
|
@ -47,7 +47,7 @@ endi
|
|||
|
||||
print ========== step2 describe
|
||||
sql describe db.ctb
|
||||
if $rows != 7 then
|
||||
if $rows != 6 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][0] != ts then
|
||||
|
@ -75,4 +75,32 @@ if $data[5][0] != t3 then
|
|||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sql connect
|
||||
sql select * from db.ctb
|
||||
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
#if $data[0][1] != 1 then
|
||||
# return -1
|
||||
#endi
|
||||
#if $data[0][2] != 1234 then
|
||||
# return -1
|
||||
#endi
|
||||
#if $data[0][3] != 101 then
|
||||
# return -1
|
||||
#endi
|
||||
#if $data[1][1] != 1 then
|
||||
# return -1
|
||||
#endi
|
||||
#if $data[1][2] != 12345 then
|
||||
# return -1
|
||||
#endi
|
||||
#if $data[1][3] != 101 then
|
||||
# return -1
|
||||
#endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
|
@ -1,17 +1,9 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c walLevel -v 1
|
||||
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4
|
||||
system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 4
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print ======================== dnode1 start
|
||||
|
||||
$dbPrefix = d_db
|
||||
$tbPrefix = d_tb
|
||||
$mtPrefix = d_mt
|
||||
|
@ -59,9 +51,8 @@ endi
|
|||
|
||||
sleep 1000
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
sleep 3000
|
||||
sleep 1000
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sleep 6000
|
||||
|
||||
sql use $db
|
||||
sql show vgroups
|
||||
|
|
|
@ -1,19 +1,9 @@
|
|||
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 walLevel -v 1
|
||||
system sh/cfg.sh -n dnode2 -c walLevel -v 1
|
||||
system sh/cfg.sh -n dnode3 -c walLevel -v 1
|
||||
system sh/cfg.sh -n dnode4 -c walLevel -v 1
|
||||
# system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4
|
||||
# system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 4
|
||||
# system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 4
|
||||
# system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sql connect
|
||||
|
||||
sql create dnode $hostname PORT 7200
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c walLevel -v 1
|
||||
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sleep 1000
|
||||
sql connect
|
||||
|
||||
$dbPrefix = m_me_db
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c walLevel -v 1
|
||||
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print =============== step1
|
||||
|
|
|
@ -1,14 +1,9 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c walLevel -v 1
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print ======================== create stable
|
||||
|
||||
sql create database d1
|
||||
sql use d1
|
||||
|
||||
|
|
|
@ -0,0 +1,193 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sql connect
|
||||
|
||||
print ========== prepare stb and ctb
|
||||
sql create database db vgroups 1
|
||||
sql create table db.stb (ts timestamp, c1 int, c2 binary(4)) tags(t1 int, t2 binary(16)) comment "abd"
|
||||
sql create table db.ctb using db.stb tags(101, "102")
|
||||
sql insert into db.ctb values(now, 1, "2")
|
||||
|
||||
sql show db.stables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][0] != stb then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != db then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][6] != abd then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show db.tables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][0] != ctb then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != db then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != stb then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][6] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][9] != CHILD_TABLE then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql select * from db.stb
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 102 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql_error alter table db.stb add tag ts int
|
||||
sql_error alter table db.stb add tag t1 int
|
||||
sql_error alter table db.stb add tag t2 int
|
||||
sql_error alter table db.stb add tag c1 int
|
||||
sql_error alter table db.stb add tag c2 int
|
||||
|
||||
print ========== step1 add tag t3
|
||||
sql alter table db.stb add tag t3 int
|
||||
|
||||
sql show db.stables
|
||||
if $data[0][3] != 3 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show db.tables
|
||||
if $data[0][3] != 3 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql describe db.ctb
|
||||
if $rows != 6 then
|
||||
return -1
|
||||
endi
|
||||
if $data[5][0] != t3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[5][1] != INT then
|
||||
return -1
|
||||
endi
|
||||
if $data[5][2] != 4 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql select * from db.stb
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 102 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][5] != NULL then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step2 add tag t4
|
||||
sql alter table db.stb add tag t4 bigint
|
||||
sql select * from db.stb
|
||||
sql select * from db.stb
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 102 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][5] != NULL then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][6] != NULL then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql_error create table db.ctb2 using db.stb tags(101, "102")
|
||||
sql create table db.ctb2 using db.stb tags(101, "102", 103, 104)
|
||||
sql insert into db.ctb2 values(now, 1, "2")
|
||||
|
||||
sql select * from db.stb where tbname = 'ctb2';
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 102 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][5] != 103 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][6] != 104 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step3 describe
|
||||
sql describe db.ctb
|
||||
if $rows != 7 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
|
@ -0,0 +1,337 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sql connect
|
||||
|
||||
print ========== prepare stb and ctb
|
||||
sql create database db vgroups 1
|
||||
sql create table db.stb (ts timestamp, c1 int, c2 binary(4)) tags(t1 int, t2 binary(16)) comment "abd"
|
||||
sql create table db.ctb using db.stb tags(101, "102")
|
||||
sql insert into db.ctb values(now, 1, "2")
|
||||
|
||||
sql show db.stables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][0] != stb then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != db then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][6] != abd then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show db.tables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][0] != ctb then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != db then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != stb then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][6] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][9] != CHILD_TABLE then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql select * from db.stb
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 102 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql_error alter table db.stb drop tag ts int
|
||||
sql_error alter table db.stb drop tag t3 int
|
||||
sql_error alter table db.stb drop tag t4 int
|
||||
sql_error alter table db.stb drop tag c1 int
|
||||
sql_error alter table db.stb drop tag c2 int
|
||||
|
||||
print ========== step1 drop tag t2
|
||||
sql alter table db.stb drop tag t2
|
||||
|
||||
sql show db.stables
|
||||
if $data[0][4] != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql describe db.ctb
|
||||
if $rows != 4 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][0] != null then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql select * from db.stb
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != null then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step2 add tag t3
|
||||
sql alter table db.stb add tag t3 int
|
||||
|
||||
sql show db.stables
|
||||
if $data[0][4] != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql describe db.ctb
|
||||
if $rows != 5 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][0] != t3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][1] != INT then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][2] != 4 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql select * from db.stb
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != NULL then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step3 add tag t4
|
||||
sql alter table db.stb add tag t4 bigint
|
||||
sql select * from db.stb
|
||||
sql select * from db.stb
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != NULL then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][5] != NULL then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][6] != null then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql_error create table db.ctb2 using db.stb tags(101, "102")
|
||||
sql create table db.ctb2 using db.stb tags(201, 202, 203)
|
||||
sql insert into db.ctb2 values(now, 1, "2")
|
||||
|
||||
sql select * from db.stb where tbname = 'ctb2';
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 201 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 202 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][5] != 203 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step4 describe
|
||||
sql describe db.ctb
|
||||
if $rows != 6 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step5 add tag2
|
||||
sql alter table db.stb add tag t2 bigint
|
||||
sql select * from db.stb where tbname = 'ctb2';
|
||||
sql select * from db.stb where tbname = 'ctb2';
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 201 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 202 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][5] != 203 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][6] != NULL then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql_error create table db.ctb2 using db.stb tags(101, "102")
|
||||
sql_error create table db.ctb2 using db.stb tags(201, 202, 203)
|
||||
sql create table db.ctb3 using db.stb tags(301, 302, 303, 304)
|
||||
sql insert into db.ctb3 values(now, 1, "2")
|
||||
|
||||
sql select * from db.stb where tbname = 'ctb3';
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 301 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 302 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][5] != 303 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][6] != 304 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step6 describe
|
||||
sql describe db.ctb
|
||||
if $rows != 7 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[3][0] != t1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][0] != t3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[5][0] != t4 then
|
||||
return -1
|
||||
endi
|
||||
if $data[6][0] != t2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[6][1] != BIGINT then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step7 drop tag t1
|
||||
sql alter table db.stb drop tag t1
|
||||
|
||||
sql show db.stables
|
||||
if $data[0][4] != 3 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql describe db.ctb
|
||||
if $rows != 6 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql select * from db.stb where tbname = 'ctb3';
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 302 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 303 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][5] != 304 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
|
@ -0,0 +1,123 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sql connect
|
||||
|
||||
print ========== prepare stb and ctb
|
||||
sql create database db vgroups 1
|
||||
sql create table db.stb (ts timestamp, c1 int, c2 binary(4)) tags(t1 int, t2 binary(4)) comment "abd"
|
||||
|
||||
sql_error alter table db.stb MODIFY tag c2 binary(3)
|
||||
sql_error alter table db.stb MODIFY tag c2 int
|
||||
sql_error alter table db.stb MODIFY tag c1 int
|
||||
sql_error alter table db.stb MODIFY tag ts int
|
||||
sql_error alter table db.stb MODIFY tag t2 binary(3)
|
||||
sql_error alter table db.stb MODIFY tag t2 int
|
||||
sql_error alter table db.stb MODIFY tag t1 int
|
||||
sql create table db.ctb using db.stb tags(101, "12345")
|
||||
sql insert into db.ctb values(now, 1, "1234")
|
||||
|
||||
sql select * from db.stb
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 1234 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 1234 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step1 modify tag
|
||||
sql alter table db.stb MODIFY tag t2 binary(5)
|
||||
sql select * from db.stb
|
||||
|
||||
sql create table db.ctb2 using db.stb tags(101, "12345")
|
||||
sql insert into db.ctb2 values(now, 1, "1234")
|
||||
|
||||
sql select * from db.stb where tbname = 'ctb2';
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 1234 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 12345 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step2 describe
|
||||
sql describe db.ctb2
|
||||
if $rows != 5 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][0] != ts then
|
||||
return -1
|
||||
endi
|
||||
if $data[1][0] != c1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[2][0] != c2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[3][0] != t1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][0] != t2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][1] != VARCHAR then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][2] != 5 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sql connect
|
||||
sql describe db.ctb2
|
||||
if $rows != 5 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][0] != ts then
|
||||
return -1
|
||||
endi
|
||||
if $data[1][0] != c1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[2][0] != c2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[3][0] != t1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][0] != t2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][1] != VARCHAR then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][2] != 5 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
|
@ -0,0 +1,120 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sql connect
|
||||
|
||||
print ========== prepare stb and ctb
|
||||
sql create database db vgroups 1
|
||||
sql create table db.stb (ts timestamp, c1 int, c2 binary(4)) tags(t1 int, t2 binary(4)) comment "abd"
|
||||
|
||||
sql_error alter table db.stb rename tag c2 c3
|
||||
sql_error alter table db.stb rename tag c2 c3
|
||||
sql_error alter table db.stb rename tag c1 c3
|
||||
sql_error alter table db.stb rename tag ts c3
|
||||
sql_error alter table db.stb rename tag t2 t1
|
||||
sql_error alter table db.stb rename tag t2 t2
|
||||
sql_error alter table db.stb rename tag t1 t2
|
||||
sql create table db.ctb using db.stb tags(101, "12345")
|
||||
sql insert into db.ctb values(now, 1, "1234")
|
||||
|
||||
sql select * from db.stb
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 1234 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 1234 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step1 rename tag
|
||||
sql alter table db.stb rename tag t1 t3
|
||||
sql select * from db.stb
|
||||
sql select * from db.stb
|
||||
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][1] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][2] != 1234 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][3] != 101 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != 1234 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========== step2 describe
|
||||
sql describe db.ctb
|
||||
if $rows != 5 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][0] != ts then
|
||||
return -1
|
||||
endi
|
||||
if $data[1][0] != c1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[2][0] != c2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[3][0] != t3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][0] != t2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][1] != VARCHAR then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][2] != 4 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sql connect
|
||||
sql describe db.ctb
|
||||
if $rows != 5 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][0] != ts then
|
||||
return -1
|
||||
endi
|
||||
if $data[1][0] != c1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[2][0] != c2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[3][0] != t3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][0] != t2 then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][1] != VARCHAR then
|
||||
return -1
|
||||
endi
|
||||
if $data[4][2] != 4 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
|
@ -1,16 +1,9 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c walLevel -v 1
|
||||
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print ======================== dnode1 start
|
||||
|
||||
sql create database vdb0
|
||||
sql create table vdb0.mt (ts timestamp, tbcol int) TAGS(tgcol int)
|
||||
|
||||
|
|
|
@ -1,16 +1,9 @@
|
|||
system sh/stop_dnodes.sh
|
||||
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c walLevel -v 1
|
||||
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4
|
||||
system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 4
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
|
||||
sleep 2000
|
||||
sql connect
|
||||
|
||||
print ======================== dnode1 start
|
||||
|
||||
$dbPrefix = v3_db
|
||||
$tbPrefix = v3_tb
|
||||
$mtPrefix = v3_mt
|
||||
|
|
|
@ -0,0 +1,478 @@
|
|||
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 supportVnodes -v 0
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready
|
||||
endi
|
||||
|
||||
sql connect
|
||||
sql create dnode $hostname port 7200
|
||||
sql create dnode $hostname port 7300
|
||||
sql create dnode $hostname port 7400
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnodes not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
|
||||
$replica = 3
|
||||
$vgroups = 1
|
||||
|
||||
print ============= create database
|
||||
sql create database db replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][6] $data[2][11] $data[2][12] $data[2][13] $data[2][14] $data[2][15] $data[2][16] $data[2][17] $data[2][18] $data[2][19]
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[2][19] != ready then
|
||||
goto check_db_ready
|
||||
endi
|
||||
|
||||
sql use db
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
|
||||
vg_ready:
|
||||
print ====> create stable/child table
|
||||
sql create table stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
sql show stables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb
|
||||
$ntbPrefix = ntb
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
$totalTblNum = $tbNum * 2
|
||||
sleep 1000
|
||||
sql show tables
|
||||
print ====> expect $totalTblNum and infinsert $rows in fact
|
||||
if $rows != $totalTblNum then
|
||||
return -1
|
||||
endi
|
||||
|
||||
start_switch_leader:
|
||||
|
||||
$switch_loop_cnt = 0
|
||||
sql show vgroups
|
||||
$dnodeId = $data[0][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
|
||||
switch_leader_to_offine_loop:
|
||||
|
||||
print $dnodeId
|
||||
print ====> stop $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s stop -x SIGINT
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 201
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups switch fail!!!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
vg_offline_1:
|
||||
|
||||
print ====> start $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s start
|
||||
|
||||
$switch_loop_cnt = $switch_loop_cnt + 1
|
||||
print $switch_loop_cnt
|
||||
|
||||
if $switch_loop_cnt == 1 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[1][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 2 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[2][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 3 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[3][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 4 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[4][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
else
|
||||
goto stop_leader_to_offine_loop
|
||||
endi
|
||||
|
||||
stop_leader_to_offine_loop:
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
print $loop_cnt
|
||||
sleep 202
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
|
||||
print ====> final test: create stable/child table
|
||||
sql create table stb1 (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb1
|
||||
$ntbPrefix = ntb1
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb1 tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
sleep 1000
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
if $rows != 40 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
|
||||
system sh/deploy.sh -n dnode5 -i 5
|
||||
system sh/exec.sh -n dnode5 -s start
|
||||
|
||||
sql connect
|
||||
sql create dnode $hostname port 7500
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready3:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
print ===> $rows $data[4][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
|
||||
if $rows != 5 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[4][4] != ready then
|
||||
goto check_dnode_ready3
|
||||
endi
|
||||
|
||||
|
||||
|
||||
# restart clusters
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode5 -s stop -x SIGINT
|
||||
|
||||
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
system sh/exec.sh -n dnode5 -s start
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_2:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
|
||||
sql use db;
|
||||
$ctbPrefix = ctb2
|
||||
$ntbPrefix = ntb2
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb1 tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
sleep 1000
|
||||
sql use db
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
print $rows
|
||||
if $rows != 60 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
|
||||
$replica = 3
|
||||
$vgroups = 5
|
||||
|
||||
print ============= create database
|
||||
sql create database db1 replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data(db1)[0] $data(db1)[1] $data(db1)[2] $data(db1)[3] $data(db1)[4] $data(db1)[5] $data(db1)[6] $data(db1)[7] $data(db1)[8] $data(db1)[9] $data(db1)[6] $data(db1)[11] $data(db1)[12] $data(db1)[13] $data(db1)[14] $data(db1)[15] $data(db1)[16] $data(db1)[17] $data(db1)[18] $data(db1)[19]
|
||||
if $rows != 4 then
|
||||
return -1
|
||||
endi
|
||||
if $data(db1)[19] != ready then
|
||||
goto check_db_ready1
|
||||
endi
|
||||
|
||||
|
||||
sql use db1
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready3:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
print $loop_cnt
|
||||
sleep 202
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,755 @@
|
|||
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 supportVnodes -v 0
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready
|
||||
endi
|
||||
|
||||
sql connect
|
||||
sql create dnode $hostname port 7200
|
||||
sql create dnode $hostname port 7300
|
||||
sql create dnode $hostname port 7400
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnodes not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
|
||||
$replica = 3
|
||||
$vgroups = 5
|
||||
|
||||
print ============= create database
|
||||
sql create database db replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][6] $data[2][11] $data[2][12] $data[2][13] $data[2][14] $data[2][15] $data[2][16] $data[2][17] $data[2][18] $data[2][19]
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[2][19] != ready then
|
||||
goto check_db_ready
|
||||
endi
|
||||
|
||||
sql use db
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][10] $data[1][11]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][10] $data[2][11]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][10] $data[3][11]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][10] $data[4][11]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[1][4] == LEADER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][6] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][8] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[2][4] == LEADER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][6] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][8] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[3][4] == LEADER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][6] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][8] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[4][4] == LEADER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][6] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][8] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
vg_ready:
|
||||
print ====> create stable/child table
|
||||
sql create table stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
sql show stables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb
|
||||
$ntbPrefix = ntb
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
$totalTblNum = $tbNum * 2
|
||||
sleep 1000
|
||||
sql show tables
|
||||
print ====> expect $totalTblNum and infinsert $rows in fact
|
||||
if $rows != $totalTblNum then
|
||||
return -1
|
||||
endi
|
||||
|
||||
start_switch_leader:
|
||||
|
||||
$switch_loop_cnt = 0
|
||||
sql show vgroups
|
||||
$dnodeId = $data[0][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
|
||||
switch_leader_to_offine_loop:
|
||||
|
||||
print $dnodeId
|
||||
print ====> stop $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s stop -x SIGINT
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 201
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups switch fail!!!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][10] $data[1][11]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][10] $data[2][11]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][10] $data[3][11]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][10] $data[4][11]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
vg_offline_1:
|
||||
|
||||
print ====> start $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s start
|
||||
|
||||
$switch_loop_cnt = $switch_loop_cnt + 1
|
||||
print $switch_loop_cnt
|
||||
|
||||
if $switch_loop_cnt == 1 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[1][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 2 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[2][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 3 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[3][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 4 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[4][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
else
|
||||
goto stop_leader_to_offine_loop
|
||||
endi
|
||||
|
||||
stop_leader_to_offine_loop:
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
print $loop_cnt
|
||||
sleep 202
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][10] $data[1][11]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][10] $data[2][11]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][10] $data[3][11]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][10] $data[4][11]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[1][4] == LEADER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][6] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][8] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[2][4] == LEADER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][6] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][8] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[3][4] == LEADER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][6] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][8] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[4][4] == LEADER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][6] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][8] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
|
||||
print ====> final test: create stable/child table
|
||||
sql create table stb1 (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb1
|
||||
$ntbPrefix = ntb1
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb1 tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
sleep 1000
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
if $rows != 40 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
|
||||
system sh/deploy.sh -n dnode5 -i 5
|
||||
system sh/exec.sh -n dnode5 -s start
|
||||
|
||||
sql connect
|
||||
sql create dnode $hostname port 7500
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready3:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
print ===> $rows $data[4][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
|
||||
if $rows != 5 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[4][4] != ready then
|
||||
goto check_dnode_ready3
|
||||
endi
|
||||
|
||||
|
||||
|
||||
# restart clusters
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode5 -s stop -x SIGINT
|
||||
|
||||
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
system sh/exec.sh -n dnode5 -s start
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_2:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
|
||||
sql use db;
|
||||
$ctbPrefix = ctb2
|
||||
$ntbPrefix = ntb2
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb1 tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
sleep 1000
|
||||
sql use db
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
print $rows
|
||||
if $rows != 60 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
|
||||
$replica = 3
|
||||
$vgroups = 5
|
||||
|
||||
print ============= create database
|
||||
sql create database db1 replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data(db1)[0] $data(db1)[1] $data(db1)[2] $data(db1)[3] $data(db1)[4] $data(db1)[5] $data(db1)[6] $data(db1)[7] $data(db1)[8] $data(db1)[9] $data(db1)[6] $data(db1)[11] $data(db1)[12] $data(db1)[13] $data(db1)[14] $data(db1)[15] $data(db1)[16] $data(db1)[17] $data(db1)[18] $data(db1)[19]
|
||||
if $rows != 4 then
|
||||
return -1
|
||||
endi
|
||||
if $data(db1)[19] != ready then
|
||||
goto check_db_ready1
|
||||
endi
|
||||
|
||||
|
||||
sql use db1
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready3:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
print $loop_cnt
|
||||
sleep 202
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][10] $data[1][11]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][10] $data[2][11]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][10] $data[3][11]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][10] $data[4][11]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
if $data[1][4] == LEADER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][6] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][8] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
if $data[2][4] == LEADER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][6] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][8] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
if $data[3][4] == LEADER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][6] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][8] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
if $data[4][4] == LEADER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][6] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][8] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
# sql drop dnode 5
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ if $data[0][4] != ready then
|
|||
goto check_dnode_ready
|
||||
endi
|
||||
|
||||
#sql connect
|
||||
sql connect
|
||||
sql create dnode $hostname port 7200
|
||||
sql create dnode $hostname port 7300
|
||||
sql create dnode $hostname port 7400
|
||||
|
@ -66,139 +66,94 @@ $vgroups = 1
|
|||
$replica = 1
|
||||
|
||||
print ============= create database
|
||||
sql create database db replica $replica vgroups $vgroups
|
||||
sql create database db1 replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> db not ready!
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db1 not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data(db)[0] $data(db)[1] $data(db)[2] $data(db)[3] $data(db)[4] $data(db)[5] $data(db)[6] $data(db)[7] $data(db)[8] $data(db)[9] $data(db)[10] $data(db)[11] $data(db)[12]
|
||||
print $data(db1)[0] $data(db)[1] $data(db)[2] $data(db)[3] $data(db)[4] $data(db)[5] $data(db)[6] $data(db)[7] $data(db)[8] $data(db)[9] $data(db)[10] $data(db)[11] $data(db)[12]
|
||||
print $data(db)[13] $data(db)[14] $data(db)[15] $data(db)[16] $data(db)[17] $data(db)[18] $data(db)[19] $data(db)[20]
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data(db)[19] != ready then
|
||||
if $data(db1)[19] != ready then
|
||||
goto check_db_ready
|
||||
endi
|
||||
|
||||
sql use db
|
||||
sql use db1
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2] $data(2)[3] $data(2)[4] $data(2)[5] $data(2)[6] $data(2)[7] $data(2)[8] $data(2)[9] $data(2)[10] $data(2)[11] $data(2)[12] $data(2)[13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[10][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
goto vg_ready
|
||||
endi
|
||||
if $data[0][6] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
goto vg_ready
|
||||
elif $data[0][6] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
goto vg_ready
|
||||
endi
|
||||
if $data[0][8] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
goto vg_ready
|
||||
elif $data[0][8] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
goto vg_ready
|
||||
goto vg_ready
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
vg_ready:
|
||||
|
||||
print ====> create stable/child table, insert data, and select
|
||||
sql create table if not exists stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
vg_ready:
|
||||
print ====> create stable/child table
|
||||
sql create table stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
sql show stables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
$ctbPrefix = ctb
|
||||
$ntbPrefix = ntb
|
||||
$tbNum = 10
|
||||
$rowNum = 10
|
||||
$tstart = 1640966400000 # 2022-01-01 00:00:00.000
|
||||
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
|
||||
$x = 0
|
||||
while $x < $rowNum
|
||||
$binary = ' . binary
|
||||
$binary = $binary . $i
|
||||
$binary = $binary . '
|
||||
|
||||
sql insert into $ctb values ($tstart , $i , $x , $binary )
|
||||
sql insert into $ntb values ($tstart , 999 , 999 , 'binary-ntb' )
|
||||
$tstart = $tstart + 1
|
||||
$x = $x + 1
|
||||
endw
|
||||
|
||||
print ====> insert rows: $rowNum into $ctb and $ntb
|
||||
|
||||
$i = $i + 1
|
||||
$tstart = 1640966400000
|
||||
endw
|
||||
|
||||
$totalTblNum = $tbNum * 2
|
||||
sleep 1000
|
||||
sql show tables
|
||||
print ====> expect $totalTblNum and infinsert $rows in fact
|
||||
if $rows != $totalTblNum then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql select count(*) from ntb0
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $rowNum then
|
||||
return -1
|
||||
endi
|
||||
start_switch_leader:
|
||||
|
||||
$totalRowsOfStb = $rowNum * $tbNum
|
||||
sql select count(*) from stb
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $totalRowsOfStb then
|
||||
return -1
|
||||
endi
|
||||
$switch_loop_cnt = 0
|
||||
switch_leader_to_offine_loop:
|
||||
|
||||
print ====> finde vnode of leader, and stop the dnode where the vnode is located, and query stb/ntb count(*)
|
||||
sql show vgroups
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2] $data(2)[3] $data(2)[4] $data(2)[5] $data(2)[6] $data(2)[7] $data(2)[8] $data(2)[9] $data(2)[10] $data(2)[11] $data(2)[12] $data(2)[13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
if $data[0][4] == LEADER then
|
||||
$dnodeId = $data[0][3]
|
||||
elif $data[0][6] == LEADER then
|
||||
|
@ -213,148 +168,78 @@ endi
|
|||
$dnodeId = dnode . $dnodeId
|
||||
print ====> stop $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s stop -x SIGINT
|
||||
#print ====> start $dnodeId
|
||||
#system sh/exec.sh -n $dnodeId -s start
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready_2:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups switch fail!!!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2] $data(2)[3] $data(2)[4] $data(2)[5] $data(2)[6] $data(2)[7] $data(2)[8] $data(2)[9] $data(2)[10] $data(2)[11] $data(2)[12] $data(2)[13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[10][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
print ---- vgroup $data[0][0] leader switch to dnode $data[0][3]
|
||||
goto vg_ready_2
|
||||
endi
|
||||
if $data[0][6] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
print ---- vgroup $data[0][0] leader switch to dnode $data[0][5]
|
||||
goto vg_ready_2
|
||||
endi
|
||||
if $data[0][8] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
print ---- vgroup $data[0][0] leader switch to dnode $data[0][7]
|
||||
goto vg_ready_2
|
||||
endi
|
||||
vg_ready_2:
|
||||
|
||||
sql select count(*) from ntb0
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $rowNum then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] == OFFLINE then
|
||||
print ---- vgroup $dnodeId leader switch to offline
|
||||
goto vg_offline_1
|
||||
elif $data[0][6] == OFFLINE then
|
||||
print ---- vgroup $dnodeId leader switch to offline
|
||||
goto vg_offline_1
|
||||
elif $data[0][8] == OFFLINE then
|
||||
print ---- vgroup $dnodeId leader switch to offline
|
||||
goto vg_offline_1
|
||||
else
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
|
||||
sql select count(*) from ctb0
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $rowNum then
|
||||
return -1
|
||||
endi
|
||||
vg_offline_1:
|
||||
|
||||
sql select count(*) from stb
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $totalRowsOfStb then
|
||||
return -1
|
||||
endi
|
||||
print ====> start $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s start
|
||||
|
||||
print ====> stop and start all dnode(not include the dnode where mnode is located), then query
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready_1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
$loop_cnt1= 0
|
||||
check_vg1_ready:
|
||||
$loop_cnt1 = $loop_cnt1 + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> after restart dnode, vgroups not ready!
|
||||
if $loop_cnt1 == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2] $data(2)[3] $data(2)[4] $data(2)[5] $data(2)[6] $data(2)[7] $data(2)[8] $data(2)[9] $data(2)[10] $data(2)[11] $data(2)[12] $data(2)[13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[10][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
goto vg_ready_1
|
||||
endi
|
||||
if $data[0][6] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
goto vg_ready_1
|
||||
endi
|
||||
if $data[0][8] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
goto vg_ready_1
|
||||
endi
|
||||
vg_ready_1:
|
||||
|
||||
print ====> after restart dnode2/dnode3/dnode4, query stb/ntb count(*)
|
||||
sql select count(*) from ntb0
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $rowNum then
|
||||
return -1
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
goto countinu_loop
|
||||
elif $data[0][6] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
goto countinu_loop
|
||||
elif $data[0][8] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
goto countinu_loop
|
||||
else
|
||||
goto check_vg1_ready
|
||||
endi
|
||||
|
||||
sql select count(*) from ctb0
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $rowNum then
|
||||
return -1
|
||||
countinu_loop:
|
||||
|
||||
$switch_loop_cnt = $switch_loop_cnt + 1
|
||||
print $switch_loop_cnt
|
||||
if $switch_loop_cnt < 4 then
|
||||
goto switch_leader_to_offine_loop
|
||||
endi
|
||||
|
||||
sql select count(*) from stb
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $totalRowsOfStb then
|
||||
return -1
|
||||
endi
|
||||
stop_leader_to_offine_loop:
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
|
|
|
@ -0,0 +1,417 @@
|
|||
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 supportVnodes -v 0
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready
|
||||
endi
|
||||
|
||||
sql connect
|
||||
sql create dnode $hostname port 7200
|
||||
sql create dnode $hostname port 7300
|
||||
sql create dnode $hostname port 7400
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnodes not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
|
||||
$replica = 1
|
||||
$vgroups = 5
|
||||
|
||||
print ============= create database
|
||||
sql create database db1 replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db1 not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data(db1)[0] $data(db)[1] $data(db)[2] $data(db)[3] $data(db)[4] $data(db)[5] $data(db)[6] $data(db)[7] $data(db)[8] $data(db)[9] $data(db)[10] $data(db)[11] $data(db)[12]
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data(db1)[19] != ready then
|
||||
goto check_db_ready
|
||||
endi
|
||||
|
||||
sql use db1
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
elif $data[0][6] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
elif $data[0][8] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[1][4] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[0][3]
|
||||
elif $data[1][6] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[0][5]
|
||||
elif $data[1][8] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[2][4] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[0][3]
|
||||
elif $data[2][6] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[0][5]
|
||||
elif $data[2][8] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[3][4] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[0][3]
|
||||
elif $data[3][6] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[0][5]
|
||||
elif $data[3][8] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[4][4] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[0][3]
|
||||
elif $data[4][6] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[0][5]
|
||||
elif $data[4][8] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
vg_ready:
|
||||
print ====> create stable/child table
|
||||
sql create table stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
sql show stables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb
|
||||
$ntbPrefix = ntb
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
$totalTblNum = $tbNum * 2
|
||||
sleep 1000
|
||||
sql show tables
|
||||
print ====> expect $totalTblNum and infinsert $rows in fact
|
||||
if $rows != $totalTblNum then
|
||||
return -1
|
||||
endi
|
||||
|
||||
start_switch_leader:
|
||||
|
||||
$switch_loop_cnt = 0
|
||||
sql show vgroups
|
||||
$dnodeId = $data[0][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
|
||||
switch_leader_to_offine_loop:
|
||||
|
||||
print $dnodeId
|
||||
print ====> stop $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s stop -x SIGINT
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready_2:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 201
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups switch fail!!!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][6] $data[1][11] $data[1][12] $data[1][13]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][6] $data[2][11] $data[2][12] $data[2][13]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][6] $data[3][11] $data[3][12] $data[3][13]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][6] $data[4][11] $data[4][12] $data[4][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
vg_offline_1:
|
||||
|
||||
print ====> start $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s start
|
||||
|
||||
$switch_loop_cnt = $switch_loop_cnt + 1
|
||||
print $switch_loop_cnt
|
||||
|
||||
if $switch_loop_cnt == 1 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[1][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 2 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[2][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 3 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[3][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 4 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[4][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
else
|
||||
goto stop_leader_to_offine_loop
|
||||
endi
|
||||
|
||||
stop_leader_to_offine_loop:
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
print $loop_cnt
|
||||
sleep 202
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][6] $data[1][11] $data[1][12] $data[1][13]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][6] $data[2][11] $data[2][12] $data[2][13]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][6] $data[3][11] $data[3][12] $data[3][13]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][6] $data[4][11] $data[4][12] $data[4][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
elif $data[0][6] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
elif $data[0][8] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[1][4] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][3]
|
||||
elif $data[1][6] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][5]
|
||||
elif $data[1][8] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][7]
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[2][4] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][3]
|
||||
elif $data[2][6] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][5]
|
||||
elif $data[2][8] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[3][4] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][3]
|
||||
elif $data[3][6] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][5]
|
||||
elif $data[3][8] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][7]
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[4][4] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][3]
|
||||
elif $data[4][6] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][5]
|
||||
elif $data[4][8] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][7]
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
|
||||
print ====> final test: create stable/child table
|
||||
sql create table stb1 (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb1
|
||||
$ntbPrefix = ntb1
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb1 tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
if $rows != 40 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||
|
||||
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_2:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
|
||||
sql use db1
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
if $rows != 40 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
|
@ -77,3 +77,4 @@ run sma/tsmaCreateInsertData.sim
|
|||
run sma/rsmaCreateInsertQuery.sim
|
||||
run valgrind/checkError.sim
|
||||
run bnode/basic1.sim
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ print ====> start to check if there are ERRORS in vagrind log file for each dnod
|
|||
# -n : dnode[x] be check
|
||||
system_content sh/checkValgrind.sh -n dnode1
|
||||
print cmd return result----> [ $system_content ]
|
||||
if $system_content <= 2 then
|
||||
if $system_content <= 3 then
|
||||
return 0
|
||||
endi
|
||||
|
||||
|
|
|
@ -0,0 +1,261 @@
|
|||
###################################################################
|
||||
# Copyright (c) 2016 by TAOS Technologies, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This file is proprietary and confidential to TAOS Technologies.
|
||||
# No part of this file may be reproduced, stored, transmitted,
|
||||
# disclosed or used in any form or by any means other than as
|
||||
# expressly provided by the written permission from Jianhui Tao
|
||||
#
|
||||
###################################################################
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
import os
|
||||
import threading as thd
|
||||
import multiprocessing as mp
|
||||
from numpy.lib.function_base import insert
|
||||
import taos
|
||||
from taos import *
|
||||
from util.log import *
|
||||
from util.cases import *
|
||||
from util.sql import *
|
||||
import numpy as np
|
||||
import datetime as dt
|
||||
from datetime import datetime
|
||||
from ctypes import *
|
||||
import time
|
||||
# constant define
|
||||
WAITS = 5 # wait seconds
|
||||
|
||||
class TDTestCase:
|
||||
#
|
||||
# --------------- main frame -------------------
|
||||
def caseDescription(self):
|
||||
'''
|
||||
limit and offset keyword function test cases;
|
||||
case1: limit offset base function test
|
||||
case2: offset return valid
|
||||
'''
|
||||
return
|
||||
|
||||
def getBuildPath(self):
|
||||
selfPath = os.path.dirname(os.path.realpath(__file__))
|
||||
|
||||
if ("community" in selfPath):
|
||||
projPath = selfPath[:selfPath.find("community")]
|
||||
else:
|
||||
projPath = selfPath[:selfPath.find("tests")]
|
||||
|
||||
for root, dirs, files in os.walk(projPath):
|
||||
if ("taosd" in files):
|
||||
rootRealPath = os.path.dirname(os.path.realpath(root))
|
||||
if ("packaging" not in rootRealPath):
|
||||
buildPath = root[:len(root)-len("/build/bin")]
|
||||
break
|
||||
return buildPath
|
||||
|
||||
# init
|
||||
def init(self, conn, logSql):
|
||||
tdLog.debug("start to execute %s" % __file__)
|
||||
tdSql.init(conn.cursor())
|
||||
# tdSql.prepare()
|
||||
# self.create_tables();
|
||||
self.ts = 1500000000000
|
||||
|
||||
# stop
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
||||
|
||||
# --------------- case -------------------
|
||||
|
||||
|
||||
def newcon(self,host,cfg):
|
||||
user = "root"
|
||||
password = "taosdata"
|
||||
port =6030
|
||||
con=taos.connect(host=host, user=user, password=password, config=cfg ,port=port)
|
||||
print(con)
|
||||
return con
|
||||
|
||||
def test_stmt_insert_multi(self,conn):
|
||||
# type: (TaosConnection) -> None
|
||||
|
||||
dbname = "pytest_taos_stmt_multi"
|
||||
try:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.execute("create database if not exists %s" % dbname)
|
||||
conn.select_db(dbname)
|
||||
|
||||
conn.execute(
|
||||
"create table if not exists log(ts timestamp, bo bool, nil tinyint, ti tinyint, si smallint, ii int,\
|
||||
bi bigint, tu tinyint unsigned, su smallint unsigned, iu int unsigned, bu bigint unsigned, \
|
||||
ff float, dd double, bb binary(100), nn nchar(100), tt timestamp)",
|
||||
)
|
||||
# conn.load_table_info("log")
|
||||
|
||||
start = datetime.now()
|
||||
stmt = conn.statement("insert into log values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
|
||||
|
||||
params = new_multi_binds(16)
|
||||
params[0].timestamp((1626861392589, 1626861392590, 1626861392591))
|
||||
params[1].bool((True, None, False))
|
||||
params[2].tinyint([-128, -128, None]) # -128 is tinyint null
|
||||
params[3].tinyint([0, 127, None])
|
||||
params[4].smallint([3, None, 2])
|
||||
params[5].int([3, 4, None])
|
||||
params[6].bigint([3, 4, None])
|
||||
params[7].tinyint_unsigned([3, 4, None])
|
||||
params[8].smallint_unsigned([3, 4, None])
|
||||
params[9].int_unsigned([3, 4, None])
|
||||
params[10].bigint_unsigned([3, 4, None])
|
||||
params[11].float([3, None, 1])
|
||||
params[12].double([3, None, 1.2])
|
||||
params[13].binary(["abc", "dddafadfadfadfadfa", None])
|
||||
params[14].nchar(["涛思数据", None, "a long string with 中文字符"])
|
||||
params[15].timestamp([None, None, 1626861392591])
|
||||
# print(type(stmt))
|
||||
stmt.bind_param_batch(params)
|
||||
stmt.execute()
|
||||
end = datetime.now()
|
||||
print("elapsed time: ", end - start)
|
||||
assert stmt.affected_rows == 3
|
||||
|
||||
#query
|
||||
querystmt=conn.statement("select ?,bu from log")
|
||||
queryparam=new_bind_params(1)
|
||||
print(type(queryparam))
|
||||
queryparam[0].binary("ts")
|
||||
querystmt.bind_param(queryparam)
|
||||
querystmt.execute()
|
||||
result=querystmt.use_result()
|
||||
rows=result.fetch_all()
|
||||
print( querystmt.use_result())
|
||||
|
||||
# result = conn.query("select * from log")
|
||||
# rows=result.fetch_all()
|
||||
# rows=result.fetch_all()
|
||||
print(rows)
|
||||
assert rows[1][0] == "ts"
|
||||
assert rows[0][1] == 3
|
||||
|
||||
#query
|
||||
querystmt1=conn.statement("select * from log where bu < ?")
|
||||
queryparam1=new_bind_params(1)
|
||||
print(type(queryparam1))
|
||||
queryparam1[0].int(4)
|
||||
querystmt1.bind_param(queryparam1)
|
||||
querystmt1.execute()
|
||||
result1=querystmt1.use_result()
|
||||
rows1=result1.fetch_all()
|
||||
assert str(rows1[0][0]) == "2021-07-21 17:56:32.589000"
|
||||
assert rows1[0][10] == 3
|
||||
|
||||
|
||||
stmt.close()
|
||||
|
||||
# conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
|
||||
except Exception as err:
|
||||
# conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
raise err
|
||||
|
||||
def test_stmt_set_tbname_tag(self,conn):
|
||||
dbname = "pytest_taos_stmt_set_tbname_tag"
|
||||
|
||||
try:
|
||||
conn.execute("drop database if exists %s" % dbname)
|
||||
conn.execute("create database if not exists %s PRECISION 'us' " % dbname)
|
||||
conn.select_db(dbname)
|
||||
conn.execute("create table if not exists log(ts timestamp, bo bool, nil tinyint, ti tinyint, si smallint, ii int,\
|
||||
bi bigint, tu tinyint unsigned, su smallint unsigned, iu int unsigned, bu bigint unsigned, \
|
||||
ff float, dd double, bb binary(100), nn nchar(100), tt timestamp) tags (t1 timestamp, t2 bool,\
|
||||
t3 tinyint, t4 tinyint, t5 smallint, t6 int, t7 bigint, t8 tinyint unsigned, t9 smallint unsigned, \
|
||||
t10 int unsigned, t11 bigint unsigned, t12 float, t13 double, t14 binary(100), t15 nchar(100), t16 timestamp)")
|
||||
|
||||
stmt = conn.statement("insert into ? using log tags (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) \
|
||||
values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
|
||||
tags = new_bind_params(16)
|
||||
tags[0].timestamp(1626861392589123, PrecisionEnum.Microseconds)
|
||||
tags[1].bool(True)
|
||||
tags[2].null()
|
||||
tags[3].tinyint(2)
|
||||
tags[4].smallint(3)
|
||||
tags[5].int(4)
|
||||
tags[6].bigint(5)
|
||||
tags[7].tinyint_unsigned(6)
|
||||
tags[8].smallint_unsigned(7)
|
||||
tags[9].int_unsigned(8)
|
||||
tags[10].bigint_unsigned(9)
|
||||
tags[11].float(10.1)
|
||||
tags[12].double(10.11)
|
||||
tags[13].binary("hello")
|
||||
tags[14].nchar("stmt")
|
||||
tags[15].timestamp(1626861392589, PrecisionEnum.Milliseconds)
|
||||
stmt.set_tbname_tags("tb1", tags)
|
||||
params = new_multi_binds(16)
|
||||
params[0].timestamp((1626861392589111, 1626861392590111, 1626861392591111))
|
||||
params[1].bool((True, None, False))
|
||||
params[2].tinyint([-128, -128, None]) # -128 is tinyint null
|
||||
params[3].tinyint([0, 127, None])
|
||||
params[4].smallint([3, None, 2])
|
||||
params[5].int([3, 4, None])
|
||||
params[6].bigint([3, 4, None])
|
||||
params[7].tinyint_unsigned([3, 4, None])
|
||||
params[8].smallint_unsigned([3, 4, None])
|
||||
params[9].int_unsigned([3, 4, None])
|
||||
params[10].bigint_unsigned([3, 4, 5])
|
||||
params[11].float([3, None, 1])
|
||||
params[12].double([3, None, 1.2])
|
||||
params[13].binary(["abc", "dddafadfadfadfadfa", None])
|
||||
params[14].nchar(["涛思数据", None, "a long string with 中文字符"])
|
||||
params[15].timestamp([None, None, 1626861392591])
|
||||
|
||||
stmt.bind_param_batch(params)
|
||||
stmt.execute()
|
||||
|
||||
assert stmt.affected_rows == 3
|
||||
|
||||
#query
|
||||
querystmt1=conn.statement("select * from log where bu < ?")
|
||||
queryparam1=new_bind_params(1)
|
||||
print(type(queryparam1))
|
||||
queryparam1[0].int(5)
|
||||
querystmt1.bind_param(queryparam1)
|
||||
querystmt1.execute()
|
||||
result1=querystmt1.use_result()
|
||||
rows1=result1.fetch_all()
|
||||
assert str(rows1[0][0]) == "2021-07-21 17:56:32.589111"
|
||||
assert rows1[0][10] == 3
|
||||
assert rows1[1][10] == 4
|
||||
|
||||
# conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
|
||||
except Exception as err:
|
||||
# conn.execute("drop database if exists %s" % dbname)
|
||||
conn.close()
|
||||
raise err
|
||||
|
||||
def run(self):
|
||||
buildPath = self.getBuildPath()
|
||||
config = buildPath+ "../sim/dnode1/cfg/"
|
||||
host="localhost"
|
||||
connectstmt=self.newcon(host,config)
|
||||
print(connectstmt)
|
||||
self.test_stmt_insert_multi(connectstmt)
|
||||
connectstmt=self.newcon(host,config)
|
||||
self.test_stmt_set_tbname_tag(connectstmt)
|
||||
|
||||
return
|
||||
|
||||
|
||||
# add case with filename
|
||||
#
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -360,7 +360,7 @@ class TDTestCase:
|
|||
'replica': 1, \
|
||||
'stbName': 'stb1', \
|
||||
'ctbNum': 10, \
|
||||
'rowsPerTbl': 20000, \
|
||||
'rowsPerTbl': 30000, \
|
||||
'batchNum': 50, \
|
||||
'startTs': 1640966400000} # 2022-01-01 00:00:00.000
|
||||
parameterDict['cfg'] = cfgPath
|
||||
|
@ -391,7 +391,7 @@ class TDTestCase:
|
|||
showRow = 1
|
||||
self.startTmqSimProcess(buildPath,cfgPath,pollDelay,parameterDict["dbName"],showMsg, showRow)
|
||||
|
||||
time.sleep(3)
|
||||
time.sleep(2)
|
||||
tdLog.info("drop som child table of stb1")
|
||||
dropTblNum = 4
|
||||
tdSql.query("drop table if exists %s.%s_1"%(parameterDict["dbName"], parameterDict["stbName"]))
|
||||
|
|
Loading…
Reference in New Issue