Merge branch 'develop' into hotfix/killquery
# Conflicts: # src/dnode/src/dnodePeer.c
This commit is contained in:
commit
158c91bbf5
|
@ -49,7 +49,7 @@ matrix:
|
||||||
pip3 install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python3/
|
pip3 install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python3/
|
||||||
|
|
||||||
cd ${TRAVIS_BUILD_DIR}/tests
|
cd ${TRAVIS_BUILD_DIR}/tests
|
||||||
./test-all.sh $TRAVIS_EVENT_TYPE || travis_terminate $?
|
./test-all.sh smoke || travis_terminate $?
|
||||||
|
|
||||||
cd ${TRAVIS_BUILD_DIR}/tests/pytest
|
cd ${TRAVIS_BUILD_DIR}/tests/pytest
|
||||||
./valgrind-test.sh 2>&1 > mem-error-out.log
|
./valgrind-test.sh 2>&1 > mem-error-out.log
|
||||||
|
@ -169,7 +169,7 @@ matrix:
|
||||||
|
|
||||||
cd ${TRAVIS_BUILD_DIR}/tests
|
cd ${TRAVIS_BUILD_DIR}/tests
|
||||||
|
|
||||||
./test-all.sh $TRAVIS_EVENT_TYPE COVER
|
./test-all.sh smoke COVER
|
||||||
|
|
||||||
TEST_RESULT=$?
|
TEST_RESULT=$?
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ matrix:
|
||||||
|
|
||||||
cd ${TRAVIS_BUILD_DIR}
|
cd ${TRAVIS_BUILD_DIR}
|
||||||
lcov -d . --capture --rc lcov_branch_coverage=1 -o coverage.info
|
lcov -d . --capture --rc lcov_branch_coverage=1 -o coverage.info
|
||||||
lcov --remove coverage.info '*/tests/*' '*/test/*' '*/deps/*' -o coverage.info
|
lcov --remove coverage.info '*/tests/*' '*/test/*' '*/deps/*' '*/plugins/*' -o coverage.info
|
||||||
lcov -l --rc lcov_branch_coverage=1 coverage.info || travis_terminate $?
|
lcov -l --rc lcov_branch_coverage=1 coverage.info || travis_terminate $?
|
||||||
|
|
||||||
gem install coveralls-lcov
|
gem install coveralls-lcov
|
||||||
|
|
|
@ -31,7 +31,7 @@ extern "C" {
|
||||||
do { \
|
do { \
|
||||||
VarDataLenT __len = strlen(str); \
|
VarDataLenT __len = strlen(str); \
|
||||||
*(VarDataLenT *)(x) = __len; \
|
*(VarDataLenT *)(x) = __len; \
|
||||||
strncpy(varDataVal(x), (str), __len); \
|
memcpy(varDataVal(x), (str), __len); \
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
||||||
#define STR_WITH_MAXSIZE_TO_VARSTR(x, str, _maxs) \
|
#define STR_WITH_MAXSIZE_TO_VARSTR(x, str, _maxs) \
|
||||||
|
@ -43,7 +43,7 @@ extern "C" {
|
||||||
#define STR_WITH_SIZE_TO_VARSTR(x, str, _size) \
|
#define STR_WITH_SIZE_TO_VARSTR(x, str, _size) \
|
||||||
do { \
|
do { \
|
||||||
*(VarDataLenT *)(x) = (_size); \
|
*(VarDataLenT *)(x) = (_size); \
|
||||||
strncpy(varDataVal(x), (str), (_size)); \
|
memcpy(varDataVal(x), (str), (_size)); \
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
||||||
// ----------------- TSDB COLUMN DEFINITION
|
// ----------------- TSDB COLUMN DEFINITION
|
||||||
|
|
|
@ -201,10 +201,10 @@ void dataColInit(SDataCol *pDataCol, STColumn *pCol, void **pBuf, int maxPoints)
|
||||||
|
|
||||||
pDataCol->len = 0;
|
pDataCol->len = 0;
|
||||||
if (pDataCol->type == TSDB_DATA_TYPE_BINARY || pDataCol->type == TSDB_DATA_TYPE_NCHAR) {
|
if (pDataCol->type == TSDB_DATA_TYPE_BINARY || pDataCol->type == TSDB_DATA_TYPE_NCHAR) {
|
||||||
pDataCol->spaceSize = (sizeof(VarDataLenT) + pDataCol->bytes) * maxPoints;
|
|
||||||
pDataCol->dataOff = (VarDataOffsetT *)(*pBuf);
|
pDataCol->dataOff = (VarDataOffsetT *)(*pBuf);
|
||||||
pDataCol->pData = POINTER_SHIFT(*pBuf, TYPE_BYTES[pDataCol->type] * maxPoints);
|
pDataCol->pData = POINTER_SHIFT(*pBuf, sizeof(VarDataOffsetT) * maxPoints);
|
||||||
*pBuf = POINTER_SHIFT(*pBuf, pDataCol->spaceSize + TYPE_BYTES[pDataCol->type] * maxPoints);
|
pDataCol->spaceSize = pDataCol->bytes * maxPoints;
|
||||||
|
*pBuf = POINTER_SHIFT(*pBuf, pDataCol->spaceSize + sizeof(VarDataOffsetT) * maxPoints);
|
||||||
} else {
|
} else {
|
||||||
pDataCol->spaceSize = pDataCol->bytes * maxPoints;
|
pDataCol->spaceSize = pDataCol->bytes * maxPoints;
|
||||||
pDataCol->dataOff = NULL;
|
pDataCol->dataOff = NULL;
|
||||||
|
|
|
@ -226,8 +226,8 @@ class CTaosInterface(object):
|
||||||
if connection.value == None:
|
if connection.value == None:
|
||||||
print('connect to TDengine failed')
|
print('connect to TDengine failed')
|
||||||
# sys.exit(1)
|
# sys.exit(1)
|
||||||
else:
|
#else:
|
||||||
print('connect to TDengine success')
|
# print('connect to TDengine success')
|
||||||
|
|
||||||
return connection
|
return connection
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ class CTaosInterface(object):
|
||||||
'''Close the TDengine handle
|
'''Close the TDengine handle
|
||||||
'''
|
'''
|
||||||
CTaosInterface.libtaos.taos_close(connection)
|
CTaosInterface.libtaos.taos_close(connection)
|
||||||
print('connection is closed')
|
#print('connection is closed')
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def query(connection, sql):
|
def query(connection, sql):
|
||||||
|
|
|
@ -414,15 +414,35 @@ static void dnodeProcessStatusRsp(SRpcMsg *pMsg) {
|
||||||
|
|
||||||
dnodeProcessModuleStatus(pCfg->moduleStatus);
|
dnodeProcessModuleStatus(pCfg->moduleStatus);
|
||||||
dnodeUpdateDnodeCfg(pCfg);
|
dnodeUpdateDnodeCfg(pCfg);
|
||||||
|
|
||||||
dnodeUpdateMnodeInfos(pMnodes);
|
dnodeUpdateMnodeInfos(pMnodes);
|
||||||
taosTmrReset(dnodeSendStatusMsg, tsStatusInterval * 1000, NULL, tsDnodeTmr, &tsStatusTimer);
|
taosTmrReset(dnodeSendStatusMsg, tsStatusInterval * 1000, NULL, tsDnodeTmr, &tsStatusTimer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool dnodeCheckMnodeInfos(SDMMnodeInfos *pMnodes) {
|
||||||
|
if (pMnodes->nodeNum <= 0 || pMnodes->nodeNum > 3) {
|
||||||
|
dError("invalid mnode infos, num:%d", pMnodes->nodeNum);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int32_t i = 0; i < pMnodes->nodeNum; ++i) {
|
||||||
|
SDMMnodeInfo *pMnodeInfo = &pMnodes->nodeInfos[i];
|
||||||
|
if (pMnodeInfo->nodeId <= 0 || strlen(pMnodeInfo->nodeEp) <= 5) {
|
||||||
|
dError("invalid mnode info:%d, nodeId:%d nodeEp:%s", i, pMnodeInfo->nodeId, pMnodeInfo->nodeEp);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static void dnodeUpdateMnodeInfos(SDMMnodeInfos *pMnodes) {
|
static void dnodeUpdateMnodeInfos(SDMMnodeInfos *pMnodes) {
|
||||||
bool mnodesChanged = (memcmp(&tsDMnodeInfos, pMnodes, sizeof(SDMMnodeInfos)) != 0);
|
bool mnodesChanged = (memcmp(&tsDMnodeInfos, pMnodes, sizeof(SDMMnodeInfos)) != 0);
|
||||||
bool mnodesNotInit = (tsDMnodeInfos.nodeNum == 0);
|
bool mnodesNotInit = (tsDMnodeInfos.nodeNum == 0);
|
||||||
if (!(mnodesChanged || mnodesNotInit)) return;
|
if (!(mnodesChanged || mnodesNotInit)) return;
|
||||||
|
|
||||||
|
if (!dnodeCheckMnodeInfos(pMnodes)) return;
|
||||||
|
|
||||||
memcpy(&tsDMnodeInfos, pMnodes, sizeof(SDMMnodeInfos));
|
memcpy(&tsDMnodeInfos, pMnodes, sizeof(SDMMnodeInfos));
|
||||||
dPrint("mnode infos is changed, nodeNum:%d inUse:%d", tsDMnodeInfos.nodeNum, tsDMnodeInfos.inUse);
|
dPrint("mnode infos is changed, nodeNum:%d inUse:%d", tsDMnodeInfos.nodeNum, tsDMnodeInfos.inUse);
|
||||||
for (int32_t i = 0; i < tsDMnodeInfos.nodeNum; i++) {
|
for (int32_t i = 0; i < tsDMnodeInfos.nodeNum; i++) {
|
||||||
|
|
|
@ -83,11 +83,12 @@ void dnodeCleanupServer() {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dnodeProcessReqMsgFromDnode(SRpcMsg *pMsg, SRpcIpSet *pIpSet) {
|
static void dnodeProcessReqMsgFromDnode(SRpcMsg *pMsg, SRpcIpSet *pIpSet) {
|
||||||
SRpcMsg rspMsg;
|
SRpcMsg rspMsg = {
|
||||||
rspMsg.handle = pMsg->handle;
|
.handle = pMsg->handle,
|
||||||
rspMsg.pCont = NULL;
|
.pCont = NULL,
|
||||||
rspMsg.contLen = 0;
|
.contLen = 0
|
||||||
|
};
|
||||||
|
|
||||||
if (pMsg->pCont == NULL) return;
|
if (pMsg->pCont == NULL) return;
|
||||||
|
|
||||||
if (dnodeGetRunStatus() != TSDB_DNODE_RUN_STATUS_RUNING) {
|
if (dnodeGetRunStatus() != TSDB_DNODE_RUN_STATUS_RUNING) {
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include "taosdef.h"
|
#include "taosdef.h"
|
||||||
#include "taosmsg.h"
|
#include "taosmsg.h"
|
||||||
#include "tglobal.h"
|
#include "tglobal.h"
|
||||||
|
#include "tutil.h"
|
||||||
#include "http.h"
|
#include "http.h"
|
||||||
#include "mnode.h"
|
#include "mnode.h"
|
||||||
#include "dnode.h"
|
#include "dnode.h"
|
||||||
|
@ -108,10 +109,11 @@ void dnodeCleanupShell() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void dnodeProcessMsgFromShell(SRpcMsg *pMsg, SRpcIpSet *pIpSet) {
|
void dnodeProcessMsgFromShell(SRpcMsg *pMsg, SRpcIpSet *pIpSet) {
|
||||||
SRpcMsg rpcMsg;
|
SRpcMsg rpcMsg = {
|
||||||
rpcMsg.handle = pMsg->handle;
|
.handle = pMsg->handle,
|
||||||
rpcMsg.pCont = NULL;
|
.pCont = NULL,
|
||||||
rpcMsg.contLen = 0;
|
.contLen = 0
|
||||||
|
};
|
||||||
|
|
||||||
if (pMsg->pCont == NULL) return;
|
if (pMsg->pCont == NULL) return;
|
||||||
|
|
||||||
|
@ -145,7 +147,7 @@ static int dnodeRetrieveUserAuthInfo(char *user, char *spi, char *encrypt, char
|
||||||
if (code != TSDB_CODE_RPC_NOT_READY) return code;
|
if (code != TSDB_CODE_RPC_NOT_READY) return code;
|
||||||
|
|
||||||
SDMAuthMsg *pMsg = rpcMallocCont(sizeof(SDMAuthMsg));
|
SDMAuthMsg *pMsg = rpcMallocCont(sizeof(SDMAuthMsg));
|
||||||
strcpy(pMsg->user, user);
|
tstrncpy(pMsg->user, user, TSDB_USER_LEN);
|
||||||
|
|
||||||
SRpcMsg rpcMsg = {0};
|
SRpcMsg rpcMsg = {0};
|
||||||
rpcMsg.pCont = pMsg;
|
rpcMsg.pCont = pMsg;
|
||||||
|
@ -203,7 +205,7 @@ void *dnodeSendCfgTableToRecv(int32_t vgId, int32_t sid) {
|
||||||
int16_t numOfTags = htons(pTable->numOfTags);
|
int16_t numOfTags = htons(pTable->numOfTags);
|
||||||
int32_t sid = htonl(pTable->sid);
|
int32_t sid = htonl(pTable->sid);
|
||||||
uint64_t uid = htobe64(pTable->uid);
|
uint64_t uid = htobe64(pTable->uid);
|
||||||
dPrint("table:%s, numOfColumns:%d numOfTags:%d sid:%d uid:%d", pTable->tableId, numOfColumns, numOfTags, sid, uid);
|
dPrint("table:%s, numOfColumns:%d numOfTags:%d sid:%d uid:%" PRIu64, pTable->tableId, numOfColumns, numOfTags, sid, uid);
|
||||||
|
|
||||||
return rpcRsp.pCont;
|
return rpcRsp.pCont;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ int32_t main(int32_t argc, char *argv[]) {
|
||||||
printf("config file path overflow");
|
printf("config file path overflow");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
strcpy(configDir, argv[i]);
|
tstrncpy(configDir, argv[i], TSDB_FILENAME_LEN);
|
||||||
} else {
|
} else {
|
||||||
printf("'-c' requires a parameter, default:%s\n", configDir);
|
printf("'-c' requires a parameter, default:%s\n", configDir);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
|
|
@ -206,7 +206,7 @@ void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size);
|
||||||
#define TSDB_MAX_SAVED_SQL_LEN TSDB_MAX_COLUMNS * 64
|
#define TSDB_MAX_SAVED_SQL_LEN TSDB_MAX_COLUMNS * 64
|
||||||
#define TSDB_MAX_SQL_LEN TSDB_PAYLOAD_SIZE
|
#define TSDB_MAX_SQL_LEN TSDB_PAYLOAD_SIZE
|
||||||
#define TSDB_MAX_SQL_SHOW_LEN 256
|
#define TSDB_MAX_SQL_SHOW_LEN 256
|
||||||
#define TSDB_MAX_ALLOWED_SQL_LEN (8*1024*1024U) // sql length should be less than 6mb
|
#define TSDB_MAX_ALLOWED_SQL_LEN (8*1024*1024U) // sql length should be less than 8mb
|
||||||
|
|
||||||
#define TSDB_MAX_BYTES_PER_ROW TSDB_MAX_COLUMNS * 64
|
#define TSDB_MAX_BYTES_PER_ROW TSDB_MAX_COLUMNS * 64
|
||||||
#define TSDB_MAX_TAGS_LEN 65536
|
#define TSDB_MAX_TAGS_LEN 65536
|
||||||
|
|
|
@ -71,6 +71,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_COM_OPS_NOT_SUPPORT, 0, 0x0100, "operations
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_COM_MEMORY_CORRUPTED, 0, 0x0101, "memory corrupted")
|
TAOS_DEFINE_ERROR(TSDB_CODE_COM_MEMORY_CORRUPTED, 0, 0x0101, "memory corrupted")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_COM_OUT_OF_MEMORY, 0, 0x0102, "out of memory")
|
TAOS_DEFINE_ERROR(TSDB_CODE_COM_OUT_OF_MEMORY, 0, 0x0102, "out of memory")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_COM_INVALID_CFG_MSG, 0, 0x0103, "invalid config message")
|
TAOS_DEFINE_ERROR(TSDB_CODE_COM_INVALID_CFG_MSG, 0, 0x0103, "invalid config message")
|
||||||
|
TAOS_DEFINE_ERROR(TSDB_CODE_COM_FILE_CORRUPTED, 0, 0x0104, "file is corrupted")
|
||||||
|
|
||||||
//client
|
//client
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_TSC_INVALID_SQL, 0, 0x0200, "invalid sql")
|
TAOS_DEFINE_ERROR(TSDB_CODE_TSC_INVALID_SQL, 0, 0x0200, "invalid sql")
|
||||||
|
|
|
@ -882,7 +882,7 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SCMAlterDbMsg *pAlter) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pDb->cfg.replications - replications >= 2) {
|
if (pDb->cfg.replications - replications >= 2) {
|
||||||
mError("db:%s, replica number can't change from 3 to 1", pDb->name, replications);
|
mError("db:%s, replica number can't change from %d to %d", pDb->name, pDb->cfg.replications, replications);
|
||||||
terrno = TSDB_CODE_MND_INVALID_DB_OPTION;
|
terrno = TSDB_CODE_MND_INVALID_DB_OPTION;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,7 +90,7 @@ static int32_t mnodeDnodeActionDelete(SSdbOper *pOper) {
|
||||||
static int32_t mnodeDnodeActionUpdate(SSdbOper *pOper) {
|
static int32_t mnodeDnodeActionUpdate(SSdbOper *pOper) {
|
||||||
SDnodeObj *pDnode = pOper->pObj;
|
SDnodeObj *pDnode = pOper->pObj;
|
||||||
SDnodeObj *pSaved = mnodeGetDnode(pDnode->dnodeId);
|
SDnodeObj *pSaved = mnodeGetDnode(pDnode->dnodeId);
|
||||||
if (pDnode != pSaved) {
|
if (pDnode != pSaved && pDnode != NULL && pSaved != NULL) {
|
||||||
memcpy(pSaved, pDnode, pOper->rowSize);
|
memcpy(pSaved, pDnode, pOper->rowSize);
|
||||||
free(pDnode);
|
free(pDnode);
|
||||||
}
|
}
|
||||||
|
@ -237,7 +237,9 @@ void mnodeUpdateDnode(SDnodeObj *pDnode) {
|
||||||
.pObj = pDnode
|
.pObj = pDnode
|
||||||
};
|
};
|
||||||
|
|
||||||
sdbUpdateRow(&oper);
|
if (sdbUpdateRow(&oper) != 0) {
|
||||||
|
mError("dnodeId:%d, failed update", pDnode->dnodeId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t mnodeProcessCfgDnodeMsg(SMnodeMsg *pMsg) {
|
static int32_t mnodeProcessCfgDnodeMsg(SMnodeMsg *pMsg) {
|
||||||
|
@ -383,7 +385,7 @@ static int32_t mnodeCreateDnode(char *ep) {
|
||||||
pDnode->createdTime = taosGetTimestampMs();
|
pDnode->createdTime = taosGetTimestampMs();
|
||||||
pDnode->status = TAOS_DN_STATUS_OFFLINE;
|
pDnode->status = TAOS_DN_STATUS_OFFLINE;
|
||||||
pDnode->totalVnodes = TSDB_INVALID_VNODE_NUM;
|
pDnode->totalVnodes = TSDB_INVALID_VNODE_NUM;
|
||||||
strcpy(pDnode->dnodeEp, ep);
|
tstrncpy(pDnode->dnodeEp, ep, TSDB_EP_LEN);
|
||||||
taosGetFqdnPortFromEp(ep, pDnode->dnodeFqdn, &pDnode->dnodePort);
|
taosGetFqdnPortFromEp(ep, pDnode->dnodeFqdn, &pDnode->dnodePort);
|
||||||
|
|
||||||
SSdbOper oper = {
|
SSdbOper oper = {
|
||||||
|
|
|
@ -134,8 +134,12 @@ void mnodeStopSystem() {
|
||||||
}
|
}
|
||||||
|
|
||||||
mnodeCleanupSystem();
|
mnodeCleanupSystem();
|
||||||
mPrint("mnode file is removed");
|
|
||||||
remove(tsMnodeDir);
|
if (remove(tsMnodeDir) != 0) {
|
||||||
|
mPrint("failed to remove mnode file, reason:%s", strerror(errno));
|
||||||
|
} else {
|
||||||
|
mPrint("mnode file is removed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mnodeInitTimer() {
|
static void mnodeInitTimer() {
|
||||||
|
|
|
@ -97,7 +97,7 @@ SConnObj *mnodeCreateConn(char *user, uint32_t ip, uint16_t port) {
|
||||||
.connId = connId,
|
.connId = connId,
|
||||||
.stime = taosGetTimestampMs()
|
.stime = taosGetTimestampMs()
|
||||||
};
|
};
|
||||||
strcpy(connObj.user, user);
|
tstrncpy(connObj.user, user, TSDB_USER_LEN);
|
||||||
|
|
||||||
char key[10];
|
char key[10];
|
||||||
sprintf(key, "%u", connId);
|
sprintf(key, "%u", connId);
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
#include "mnodeDnode.h"
|
#include "mnodeDnode.h"
|
||||||
#include "mnodeSdb.h"
|
#include "mnodeSdb.h"
|
||||||
|
|
||||||
|
#define SDB_TABLE_LEN 12
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
SDB_ACTION_INSERT,
|
SDB_ACTION_INSERT,
|
||||||
SDB_ACTION_DELETE,
|
SDB_ACTION_DELETE,
|
||||||
|
@ -43,7 +45,7 @@ typedef enum {
|
||||||
} ESdbStatus;
|
} ESdbStatus;
|
||||||
|
|
||||||
typedef struct _SSdbTable {
|
typedef struct _SSdbTable {
|
||||||
char tableName[TSDB_DB_NAME_LEN];
|
char tableName[SDB_TABLE_LEN];
|
||||||
ESdbTable tableId;
|
ESdbTable tableId;
|
||||||
ESdbKey keyType;
|
ESdbKey keyType;
|
||||||
int32_t hashSessions;
|
int32_t hashSessions;
|
||||||
|
@ -174,10 +176,10 @@ static void sdbRestoreTables() {
|
||||||
|
|
||||||
totalRows += pTable->numOfRows;
|
totalRows += pTable->numOfRows;
|
||||||
numOfTables++;
|
numOfTables++;
|
||||||
sdbTrace("table:%s, is restored, numOfRows:%d", pTable->tableName, pTable->numOfRows);
|
sdbTrace("table:%s, is restored, numOfRows:%" PRId64, pTable->tableName, pTable->numOfRows);
|
||||||
}
|
}
|
||||||
|
|
||||||
sdbTrace("sdb is restored, version:%d totalRows:%d numOfTables:%d", tsSdbObj.version, totalRows, numOfTables);
|
sdbTrace("sdb is restored, version:%" PRId64 " totalRows:%d numOfTables:%d", tsSdbObj.version, totalRows, numOfTables);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sdbUpdateMnodeRoles() {
|
void sdbUpdateMnodeRoles() {
|
||||||
|
@ -449,7 +451,7 @@ static int32_t sdbInsertHash(SSdbTable *pTable, SSdbOper *pOper) {
|
||||||
|
|
||||||
pthread_mutex_unlock(&pTable->mutex);
|
pthread_mutex_unlock(&pTable->mutex);
|
||||||
|
|
||||||
sdbTrace("table:%s, insert record:%s to hash, rowSize:%d vnumOfRows:%d version:%" PRIu64, pTable->tableName,
|
sdbTrace("table:%s, insert record:%s to hash, rowSize:%d vnumOfRows:%" PRId64 " version:%" PRIu64, pTable->tableName,
|
||||||
sdbGetKeyStrFromObj(pTable, pOper->pObj), pOper->rowSize, pTable->numOfRows, sdbGetVersion());
|
sdbGetKeyStrFromObj(pTable, pOper->pObj), pOper->rowSize, pTable->numOfRows, sdbGetVersion());
|
||||||
|
|
||||||
(*pTable->insertFp)(pOper);
|
(*pTable->insertFp)(pOper);
|
||||||
|
@ -473,7 +475,7 @@ static int32_t sdbDeleteHash(SSdbTable *pTable, SSdbOper *pOper) {
|
||||||
pTable->numOfRows--;
|
pTable->numOfRows--;
|
||||||
pthread_mutex_unlock(&pTable->mutex);
|
pthread_mutex_unlock(&pTable->mutex);
|
||||||
|
|
||||||
sdbTrace("table:%s, delete record:%s from hash, numOfRows:%d version:%" PRIu64, pTable->tableName,
|
sdbTrace("table:%s, delete record:%s from hash, numOfRows:%d" PRId64 "version:%" PRIu64, pTable->tableName,
|
||||||
sdbGetKeyStrFromObj(pTable, pOper->pObj), pTable->numOfRows, sdbGetVersion());
|
sdbGetKeyStrFromObj(pTable, pOper->pObj), pTable->numOfRows, sdbGetVersion());
|
||||||
|
|
||||||
int8_t *updateEnd = pOper->pObj + pTable->refCountPos - 1;
|
int8_t *updateEnd = pOper->pObj + pTable->refCountPos - 1;
|
||||||
|
@ -484,7 +486,7 @@ static int32_t sdbDeleteHash(SSdbTable *pTable, SSdbOper *pOper) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t sdbUpdateHash(SSdbTable *pTable, SSdbOper *pOper) {
|
static int32_t sdbUpdateHash(SSdbTable *pTable, SSdbOper *pOper) {
|
||||||
sdbTrace("table:%s, update record:%s in hash, numOfRows:%d version:%" PRIu64, pTable->tableName,
|
sdbTrace("table:%s, update record:%s in hash, numOfRows:%" PRId64 " version:%" PRIu64, pTable->tableName,
|
||||||
sdbGetKeyStrFromObj(pTable, pOper->pObj), pTable->numOfRows, sdbGetVersion());
|
sdbGetKeyStrFromObj(pTable, pOper->pObj), pTable->numOfRows, sdbGetVersion());
|
||||||
|
|
||||||
(*pTable->updateFp)(pOper);
|
(*pTable->updateFp)(pOper);
|
||||||
|
@ -717,7 +719,7 @@ void *sdbOpenTable(SSdbTableDesc *pDesc) {
|
||||||
|
|
||||||
if (pTable == NULL) return NULL;
|
if (pTable == NULL) return NULL;
|
||||||
|
|
||||||
strcpy(pTable->tableName, pDesc->tableName);
|
tstrncpy(pTable->tableName, pDesc->tableName, SDB_TABLE_LEN);
|
||||||
pTable->keyType = pDesc->keyType;
|
pTable->keyType = pDesc->keyType;
|
||||||
pTable->tableId = pDesc->tableId;
|
pTable->tableId = pDesc->tableId;
|
||||||
pTable->hashSessions = pDesc->hashSessions;
|
pTable->hashSessions = pDesc->hashSessions;
|
||||||
|
|
|
@ -138,15 +138,16 @@ static int32_t mnodeProcessShowMsg(SMnodeMsg *pMsg) {
|
||||||
}
|
}
|
||||||
pShowRsp->qhandle = htobe64((uint64_t) pShow);
|
pShowRsp->qhandle = htobe64((uint64_t) pShow);
|
||||||
|
|
||||||
mTrace("%p, show type:%s, start to get meta", pShow, mnodeGetShowType(pShowMsg->type));
|
|
||||||
int32_t code = (*tsMnodeShowMetaFp[pShowMsg->type])(&pShowRsp->tableMeta, pShow, pMsg->rpcMsg.handle);
|
int32_t code = (*tsMnodeShowMetaFp[pShowMsg->type])(&pShowRsp->tableMeta, pShow, pMsg->rpcMsg.handle);
|
||||||
if (code == 0) {
|
mTrace("%p, show type:%s index:%d, get meta finished, rows:%d cols:%d result:%s", pShow,
|
||||||
|
mnodeGetShowType(pShowMsg->type), pShow->index, pShow->numOfRows, pShow->numOfColumns, tstrerror(code));
|
||||||
|
|
||||||
|
if (code == TSDB_CODE_SUCCESS) {
|
||||||
pMsg->rpcRsp.rsp = pShowRsp;
|
pMsg->rpcRsp.rsp = pShowRsp;
|
||||||
pMsg->rpcRsp.len = sizeof(SCMShowRsp) + sizeof(SSchema) * pShow->numOfColumns;
|
pMsg->rpcRsp.len = sizeof(SCMShowRsp) + sizeof(SSchema) * pShow->numOfColumns;
|
||||||
mnodeReleaseShowObj(pShow, false);
|
mnodeReleaseShowObj(pShow, false);
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
mError("%p, show type:%s, failed to get meta, reason:%s", pShow, mnodeGetShowType(pShowMsg->type), tstrerror(code));
|
|
||||||
rpcFreeCont(pShowRsp);
|
rpcFreeCont(pShowRsp);
|
||||||
mnodeReleaseShowObj(pShow, true);
|
mnodeReleaseShowObj(pShow, true);
|
||||||
return code;
|
return code;
|
||||||
|
@ -161,8 +162,7 @@ static int32_t mnodeProcessRetrieveMsg(SMnodeMsg *pMsg) {
|
||||||
pRetrieve->qhandle = htobe64(pRetrieve->qhandle);
|
pRetrieve->qhandle = htobe64(pRetrieve->qhandle);
|
||||||
|
|
||||||
SShowObj *pShow = (SShowObj *)pRetrieve->qhandle;
|
SShowObj *pShow = (SShowObj *)pRetrieve->qhandle;
|
||||||
mTrace("%p, show type:%s, retrieve data", pShow, mnodeGetShowType(pShow->type));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* in case of server restart, apps may hold qhandle created by server before
|
* in case of server restart, apps may hold qhandle created by server before
|
||||||
* restart, which is actually invalid, therefore, signature check is required.
|
* restart, which is actually invalid, therefore, signature check is required.
|
||||||
|
@ -171,7 +171,10 @@ static int32_t mnodeProcessRetrieveMsg(SMnodeMsg *pMsg) {
|
||||||
mError("%p, show is invalid", pShow);
|
mError("%p, show is invalid", pShow);
|
||||||
return TSDB_CODE_MND_INVALID_SHOWOBJ;
|
return TSDB_CODE_MND_INVALID_SHOWOBJ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mTrace("%p, show type:%s index:%d, start retrieve data, numOfReads:%d numOfRows:%d", pShow,
|
||||||
|
mnodeGetShowType(pShow->type), pShow->index, pShow->numOfReads, pShow->numOfRows);
|
||||||
|
|
||||||
if (mnodeCheckShowFinished(pShow)) {
|
if (mnodeCheckShowFinished(pShow)) {
|
||||||
mTrace("%p, show is already read finished, numOfReads:%d numOfRows:%d", pShow, pShow->numOfReads, pShow->numOfRows);
|
mTrace("%p, show is already read finished, numOfReads:%d numOfRows:%d", pShow, pShow->numOfReads, pShow->numOfRows);
|
||||||
pShow->numOfReads = pShow->numOfRows;
|
pShow->numOfReads = pShow->numOfRows;
|
||||||
|
@ -198,6 +201,9 @@ static int32_t mnodeProcessRetrieveMsg(SMnodeMsg *pMsg) {
|
||||||
if ((pRetrieve->free & TSDB_QUERY_TYPE_FREE_RESOURCE) != TSDB_QUERY_TYPE_FREE_RESOURCE)
|
if ((pRetrieve->free & TSDB_QUERY_TYPE_FREE_RESOURCE) != TSDB_QUERY_TYPE_FREE_RESOURCE)
|
||||||
rowsRead = (*tsMnodeShowRetrieveFp[pShow->type])(pShow, pRsp->data, rowsToRead, pMsg->rpcMsg.handle);
|
rowsRead = (*tsMnodeShowRetrieveFp[pShow->type])(pShow, pRsp->data, rowsToRead, pMsg->rpcMsg.handle);
|
||||||
|
|
||||||
|
mTrace("%p, show type:%s index:%d, stop retrieve data, rowsRead:%d rowsToRead:%d", pShow,
|
||||||
|
mnodeGetShowType(pShow->type), pShow->index, rowsRead, rowsToRead);
|
||||||
|
|
||||||
if (rowsRead < 0) {
|
if (rowsRead < 0) {
|
||||||
rpcFreeCont(pRsp);
|
rpcFreeCont(pRsp);
|
||||||
mnodeReleaseShowObj(pShow, false);
|
mnodeReleaseShowObj(pShow, false);
|
||||||
|
@ -211,7 +217,7 @@ static int32_t mnodeProcessRetrieveMsg(SMnodeMsg *pMsg) {
|
||||||
pMsg->rpcRsp.rsp = pRsp;
|
pMsg->rpcRsp.rsp = pRsp;
|
||||||
pMsg->rpcRsp.len = size;
|
pMsg->rpcRsp.len = size;
|
||||||
|
|
||||||
if (rowsToRead == 0 || (rowsRead == rowsToRead && pShow->numOfRows - pShow->numOfReads == rowsToRead)) {
|
if (rowsToRead == 0 || (rowsRead == rowsToRead && pShow->numOfRows == pShow->numOfReads)) {
|
||||||
pRsp->completed = 1;
|
pRsp->completed = 1;
|
||||||
mnodeReleaseShowObj(pShow, true);
|
mnodeReleaseShowObj(pShow, true);
|
||||||
} else {
|
} else {
|
||||||
|
@ -324,6 +330,7 @@ static int32_t mnodeProcessConnectMsg(SMnodeMsg *pMsg) {
|
||||||
|
|
||||||
connect_over:
|
connect_over:
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
rpcFreeCont(pConnectRsp);
|
||||||
mLError("user:%s login from %s, result:%s", connInfo.user, taosIpStr(connInfo.clientIp), tstrerror(code));
|
mLError("user:%s login from %s, result:%s", connInfo.user, taosIpStr(connInfo.clientIp), tstrerror(code));
|
||||||
} else {
|
} else {
|
||||||
mLPrint("user:%s login from %s, result:%s", connInfo.user, taosIpStr(connInfo.clientIp), tstrerror(code));
|
mLPrint("user:%s login from %s, result:%s", connInfo.user, taosIpStr(connInfo.clientIp), tstrerror(code));
|
||||||
|
|
|
@ -87,7 +87,7 @@ void httpProcessMultiSqlCallBack(void *param, TAOS_RES *result, int code) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (code < 0) {
|
if (code < 0) {
|
||||||
if (encode->checkFinishedFp != NULL && !encode->checkFinishedFp(pContext, singleCmd, -code)) {
|
if (encode->checkFinishedFp != NULL && !encode->checkFinishedFp(pContext, singleCmd, code)) {
|
||||||
singleCmd->code = code;
|
singleCmd->code = code;
|
||||||
httpTrace("context:%p, fd:%d, ip:%s, user:%s, process pos jump to:%d, last code:%s, last sql:%s",
|
httpTrace("context:%p, fd:%d, ip:%s, user:%s, process pos jump to:%d, last code:%s, last sql:%s",
|
||||||
pContext, pContext->fd, pContext->ipstr, pContext->user, multiCmds->pos + 1, tstrerror(code), sql);
|
pContext, pContext->fd, pContext->ipstr, pContext->user, multiCmds->pos + 1, tstrerror(code), sql);
|
||||||
|
|
|
@ -425,6 +425,8 @@ void rpcSendResponse(const SRpcMsg *pRsp) {
|
||||||
taosTmrReset(rpcProcessIdleTimer, pRpc->idleTime, pConn, pRpc->tmrCtrl, &pConn->pIdleTimer);
|
taosTmrReset(rpcProcessIdleTimer, pRpc->idleTime, pConn, pRpc->tmrCtrl, &pConn->pIdleTimer);
|
||||||
rpcSendMsgToPeer(pConn, msg, msgLen);
|
rpcSendMsgToPeer(pConn, msg, msgLen);
|
||||||
pConn->secured = 1; // connection shall be secured
|
pConn->secured = 1; // connection shall be secured
|
||||||
|
pConn->pReqMsg = NULL;
|
||||||
|
pConn->reqMsgLen = 0;
|
||||||
|
|
||||||
rpcUnlockConn(pConn);
|
rpcUnlockConn(pConn);
|
||||||
rpcDecRef(pRpc); // decrease the referene count
|
rpcDecRef(pRpc); // decrease the referene count
|
||||||
|
@ -502,7 +504,7 @@ static SRpcConn *rpcOpenConn(SRpcInfo *pRpc, char *peerFqdn, uint16_t peerPort,
|
||||||
SRpcConn *pConn;
|
SRpcConn *pConn;
|
||||||
|
|
||||||
uint32_t peerIp = taosGetIpFromFqdn(peerFqdn);
|
uint32_t peerIp = taosGetIpFromFqdn(peerFqdn);
|
||||||
if (peerIp == -1) {
|
if (peerIp == 0xFFFFFFFF) {
|
||||||
tError("%s, failed to resolve FQDN:%s", pRpc->label, peerFqdn);
|
tError("%s, failed to resolve FQDN:%s", pRpc->label, peerFqdn);
|
||||||
terrno = TSDB_CODE_RPC_APP_ERROR;
|
terrno = TSDB_CODE_RPC_APP_ERROR;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -551,7 +553,7 @@ static void rpcCloseConn(void *thandle) {
|
||||||
|
|
||||||
if ( pRpc->connType == TAOS_CONN_SERVER) {
|
if ( pRpc->connType == TAOS_CONN_SERVER) {
|
||||||
char hashstr[40] = {0};
|
char hashstr[40] = {0};
|
||||||
size_t size = sprintf(hashstr, "%x:%x:%x:%d", pConn->peerIp, pConn->linkUid, pConn->peerId, pConn->connType);
|
size_t size = snprintf(hashstr, sizeof(hashstr), "%x:%x:%x:%d", pConn->peerIp, pConn->linkUid, pConn->peerId, pConn->connType);
|
||||||
taosHashRemove(pRpc->hash, hashstr, size);
|
taosHashRemove(pRpc->hash, hashstr, size);
|
||||||
|
|
||||||
rpcFreeMsg(pConn->pRspMsg); // it may have a response msg saved, but not request msg
|
rpcFreeMsg(pConn->pRspMsg); // it may have a response msg saved, but not request msg
|
||||||
|
@ -601,7 +603,7 @@ static SRpcConn *rpcAllocateServerConn(SRpcInfo *pRpc, SRecvInfo *pRecv) {
|
||||||
char hashstr[40] = {0};
|
char hashstr[40] = {0};
|
||||||
SRpcHead *pHead = (SRpcHead *)pRecv->msg;
|
SRpcHead *pHead = (SRpcHead *)pRecv->msg;
|
||||||
|
|
||||||
size_t size = sprintf(hashstr, "%x:%x:%x:%d", pRecv->ip, pHead->linkUid, pHead->sourceId, pRecv->connType);
|
size_t size = snprintf(hashstr, sizeof(hashstr), "%x:%x:%x:%d", pRecv->ip, pHead->linkUid, pHead->sourceId, pRecv->connType);
|
||||||
|
|
||||||
// check if it is already allocated
|
// check if it is already allocated
|
||||||
SRpcConn **ppConn = (SRpcConn **)(taosHashGet(pRpc->hash, hashstr, size));
|
SRpcConn **ppConn = (SRpcConn **)(taosHashGet(pRpc->hash, hashstr, size));
|
||||||
|
@ -691,7 +693,7 @@ static SRpcConn *rpcSetupConnToServer(SRpcReqContext *pContext) {
|
||||||
if (pConn) {
|
if (pConn) {
|
||||||
pConn->tretry = 0;
|
pConn->tretry = 0;
|
||||||
pConn->ahandle = pContext->ahandle;
|
pConn->ahandle = pContext->ahandle;
|
||||||
sprintf(pConn->info, "%s %p %p", pRpc->label, pConn, pConn->ahandle);
|
snprintf(pConn->info, sizeof(pConn->info), "%s %p %p", pRpc->label, pConn, pConn->ahandle);
|
||||||
pConn->tretry = 0;
|
pConn->tretry = 0;
|
||||||
} else {
|
} else {
|
||||||
tError("%s %p, failed to set up connection(%s)", pRpc->label, pContext->ahandle, tstrerror(terrno));
|
tError("%s %p, failed to set up connection(%s)", pRpc->label, pContext->ahandle, tstrerror(terrno));
|
||||||
|
@ -820,7 +822,7 @@ static SRpcConn *rpcProcessMsgHead(SRpcInfo *pRpc, SRecvInfo *pRecv) {
|
||||||
|
|
||||||
if (rpcIsReq(pHead->msgType)) {
|
if (rpcIsReq(pHead->msgType)) {
|
||||||
pConn->ahandle = (void *)pHead->ahandle;
|
pConn->ahandle = (void *)pHead->ahandle;
|
||||||
sprintf(pConn->info, "%s %p %p", pRpc->label, pConn, pConn->ahandle);
|
snprintf(pConn->info, sizeof(pConn->info), "%s %p %p", pRpc->label, pConn, pConn->ahandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
sid = pConn->sid;
|
sid = pConn->sid;
|
||||||
|
|
|
@ -161,7 +161,7 @@ typedef struct {
|
||||||
int64_t index;
|
int64_t index;
|
||||||
int numOfCacheBlocks;
|
int numOfCacheBlocks;
|
||||||
SList * memPool;
|
SList * memPool;
|
||||||
} STsdbCachePool;
|
} STsdbBufferPool;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
TSKEY keyFirst;
|
TSKEY keyFirst;
|
||||||
|
@ -173,7 +173,7 @@ typedef struct {
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int cacheBlockSize;
|
int cacheBlockSize;
|
||||||
int totalCacheBlocks;
|
int totalCacheBlocks;
|
||||||
STsdbCachePool pool;
|
STsdbBufferPool pool;
|
||||||
STsdbCacheBlock *curBlock;
|
STsdbCacheBlock *curBlock;
|
||||||
SCacheMem * mem;
|
SCacheMem * mem;
|
||||||
SCacheMem * imem;
|
SCacheMem * imem;
|
||||||
|
|
|
@ -35,7 +35,7 @@ STsdbCache *tsdbInitCache(int cacheBlockSize, int totalBlocks, TsdbRepoT *pRepo)
|
||||||
pCache->totalCacheBlocks = totalBlocks;
|
pCache->totalCacheBlocks = totalBlocks;
|
||||||
pCache->pRepo = pRepo;
|
pCache->pRepo = pRepo;
|
||||||
|
|
||||||
STsdbCachePool *pPool = &(pCache->pool);
|
STsdbBufferPool *pPool = &(pCache->pool);
|
||||||
pPool->index = 0;
|
pPool->index = 0;
|
||||||
pPool->memPool = tdListNew(sizeof(STsdbCacheBlock *));
|
pPool->memPool = tdListNew(sizeof(STsdbCacheBlock *));
|
||||||
if (pPool->memPool == NULL) goto _err;
|
if (pPool->memPool == NULL) goto _err;
|
||||||
|
@ -106,7 +106,7 @@ static void tsdbFreeCacheMem(SCacheMem *mem) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tsdbAllocBlockFromPool(STsdbCache *pCache) {
|
static int tsdbAllocBlockFromPool(STsdbCache *pCache) {
|
||||||
STsdbCachePool *pPool = &(pCache->pool);
|
STsdbBufferPool *pPool = &(pCache->pool);
|
||||||
|
|
||||||
tsdbLockRepo(pCache->pRepo);
|
tsdbLockRepo(pCache->pRepo);
|
||||||
if (listNEles(pPool->memPool) == 0) {
|
if (listNEles(pPool->memPool) == 0) {
|
||||||
|
@ -170,7 +170,7 @@ int tsdbAlterCacheTotalBlocks(STsdbRepo *pRepo, int totalBlocks) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tsdbAddCacheBlockToPool(STsdbCache *pCache) {
|
static int tsdbAddCacheBlockToPool(STsdbCache *pCache) {
|
||||||
STsdbCachePool *pPool = &pCache->pool;
|
STsdbBufferPool *pPool = &pCache->pool;
|
||||||
|
|
||||||
STsdbCacheBlock *pBlock = malloc(sizeof(STsdbCacheBlock) + pCache->cacheBlockSize);
|
STsdbCacheBlock *pBlock = malloc(sizeof(STsdbCacheBlock) + pCache->cacheBlockSize);
|
||||||
if (pBlock == NULL) return -1;
|
if (pBlock == NULL) return -1;
|
||||||
|
@ -184,7 +184,7 @@ static int tsdbAddCacheBlockToPool(STsdbCache *pCache) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tsdbRemoveCacheBlockFromPool(STsdbCache *pCache) {
|
static int tsdbRemoveCacheBlockFromPool(STsdbCache *pCache) {
|
||||||
STsdbCachePool *pPool = &pCache->pool;
|
STsdbBufferPool *pPool = &pCache->pool;
|
||||||
STsdbCacheBlock *pBlock = NULL;
|
STsdbCacheBlock *pBlock = NULL;
|
||||||
|
|
||||||
ASSERT(pCache->totalCacheBlocks >= 0);
|
ASSERT(pCache->totalCacheBlocks >= 0);
|
||||||
|
|
|
@ -105,7 +105,7 @@ int32_t tsdbInsertMetaRecord(SMetaFile *mfh, uint64_t uid, void *cont, int32_t c
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
fsync(mfh->fd);
|
// fsync(mfh->fd);
|
||||||
|
|
||||||
mfh->tombSize++;
|
mfh->tombSize++;
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ int32_t tsdbDeleteMetaRecord(SMetaFile *mfh, uint64_t uid) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
fsync(mfh->fd);
|
// fsync(mfh->fd);
|
||||||
|
|
||||||
mfh->nDel++;
|
mfh->nDel++;
|
||||||
|
|
||||||
|
@ -167,7 +167,7 @@ int32_t tsdbUpdateMetaRecord(SMetaFile *mfh, uint64_t uid, void *cont, int32_t c
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
fsync(mfh->fd);
|
// fsync(mfh->fd);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,11 +46,12 @@ typedef struct {
|
||||||
} SKVStore;
|
} SKVStore;
|
||||||
|
|
||||||
int tdCreateKVStore(char *fname);
|
int tdCreateKVStore(char *fname);
|
||||||
int tdDestroyKVStore();
|
int tdDestroyKVStore(char *fname);
|
||||||
SKVStore *tdOpenKVStore(char *fname, iterFunc iFunc, afterFunc aFunc, void *appH);
|
SKVStore *tdOpenKVStore(char *fname, iterFunc iFunc, afterFunc aFunc, void *appH);
|
||||||
void tdCloseKVStore(SKVStore *pStore);
|
void tdCloseKVStore(SKVStore *pStore);
|
||||||
int tdKVStoreStartCommit(SKVStore *pStore);
|
int tdKVStoreStartCommit(SKVStore *pStore);
|
||||||
int tdUpdateRecordInKVStore(SKVStore *pStore, uint64_t uid, void *cont, int contLen);
|
int tdUpdateKVStoreRecord(SKVStore *pStore, uint64_t uid, void *cont, int contLen);
|
||||||
|
int tdDropKVStoreRecord(SKVStore *pStore, uint64_t uid);
|
||||||
int tdKVStoreEndCommit(SKVStore *pStore);
|
int tdKVStoreEndCommit(SKVStore *pStore);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -254,7 +254,7 @@ SCacheObj *taosCacheInitWithCb(int64_t refreshTime, void (*freeCb)(void *data))
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_attr_t thattr = {0};
|
pthread_attr_t thattr;
|
||||||
pthread_attr_init(&thattr);
|
pthread_attr_init(&thattr);
|
||||||
pthread_attr_setdetachstate(&thattr, PTHREAD_CREATE_JOINABLE);
|
pthread_attr_setdetachstate(&thattr, PTHREAD_CREATE_JOINABLE);
|
||||||
|
|
||||||
|
@ -625,4 +625,4 @@ void* taosCacheRefresh(void *handle) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,42 +34,67 @@
|
||||||
#define TD_KVSTORE_SNAP_SUFFIX ".snap"
|
#define TD_KVSTORE_SNAP_SUFFIX ".snap"
|
||||||
#define TD_KVSTORE_NEW_SUFFIX ".new"
|
#define TD_KVSTORE_NEW_SUFFIX ".new"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint64_t uid;
|
||||||
|
int64_t offset;
|
||||||
|
int64_t size;
|
||||||
|
} SKVRecord;
|
||||||
|
|
||||||
static int tdInitKVStoreHeader(int fd, char *fname);
|
static int tdInitKVStoreHeader(int fd, char *fname);
|
||||||
static void * tdEncodeStoreInfo(void *buf, SStoreInfo *pInfo);
|
static void * tdEncodeStoreInfo(void *buf, SStoreInfo *pInfo);
|
||||||
// static void * tdDecodeStoreInfo(void *buf, SStoreInfo *pInfo);
|
static void * tdDecodeStoreInfo(void *buf, SStoreInfo *pInfo);
|
||||||
static SKVStore *tdNewKVStore(char *fname, iterFunc iFunc, afterFunc aFunc, void *appH);
|
static SKVStore *tdNewKVStore(char *fname, iterFunc iFunc, afterFunc aFunc, void *appH);
|
||||||
static char * tdGetKVStoreSnapshotFname(char *fdata);
|
static char * tdGetKVStoreSnapshotFname(char *fdata);
|
||||||
static char * tdGetKVStoreNewFname(char *fdata);
|
static char * tdGetKVStoreNewFname(char *fdata);
|
||||||
static void tdFreeKVStore(SKVStore *pStore);
|
static void tdFreeKVStore(SKVStore *pStore);
|
||||||
static int tdUpdateKVStoreHeader(int fd, char *fname, SStoreInfo *pInfo);
|
static int tdUpdateKVStoreHeader(int fd, char *fname, SStoreInfo *pInfo);
|
||||||
|
static int tdLoadKVStoreHeader(int fd, char *fname, SStoreInfo *pInfo);
|
||||||
|
static void * tdEncodeKVRecord(void *buf, SKVRecord *pRecord);
|
||||||
|
static void * tdDecodeKVRecord(void *buf, SKVRecord *pRecord);
|
||||||
|
static int tdRestoreKVStore(SKVStore *pStore);
|
||||||
|
|
||||||
int tdCreateKVStore(char *fname) {
|
int tdCreateKVStore(char *fname) {
|
||||||
char *tname = strdup(fname);
|
|
||||||
if (tname == NULL) return TSDB_CODE_COM_OUT_OF_MEMORY;
|
|
||||||
|
|
||||||
int fd = open(fname, O_RDWR | O_CREAT, 0755);
|
int fd = open(fname, O_RDWR | O_CREAT, 0755);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
uError("failed to open file %s since %s", fname, strerror(errno));
|
uError("failed to open file %s since %s", fname, strerror(errno));
|
||||||
return TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int code = tdInitKVStoreHeader(fd, fname);
|
if (tdInitKVStoreHeader(fd, fname) < 0) {
|
||||||
if (code != TSDB_CODE_SUCCESS) return code;
|
close(fd);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (fsync(fd) < 0) {
|
if (fsync(fd) < 0) {
|
||||||
uError("failed to fsync file %s since %s", fname, strerror(errno));
|
uError("failed to fsync file %s since %s", fname, strerror(errno));
|
||||||
return TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
close(fd);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (close(fd) < 0) {
|
if (close(fd) < 0) {
|
||||||
uError("failed to close file %s since %s", fname, strerror(errno));
|
uError("failed to close file %s since %s", fname, strerror(errno));
|
||||||
return TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int tdDestroyKVStore(char *fname) {
|
||||||
|
if (remove(fname) < 0) {
|
||||||
|
uError("failed to remove file %s since %s", fname, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
SKVStore *tdOpenKVStore(char *fname, iterFunc iFunc, afterFunc aFunc, void *appH) {
|
SKVStore *tdOpenKVStore(char *fname, iterFunc iFunc, afterFunc aFunc, void *appH) {
|
||||||
|
SStoreInfo info = {0};
|
||||||
|
|
||||||
SKVStore *pStore = tdNewKVStore(fname, iFunc, aFunc, appH);
|
SKVStore *pStore = tdNewKVStore(fname, iFunc, aFunc, appH);
|
||||||
if (pStore == NULL) return NULL;
|
if (pStore == NULL) return NULL;
|
||||||
|
|
||||||
|
@ -89,14 +114,44 @@ SKVStore *tdOpenKVStore(char *fname, iterFunc iFunc, afterFunc aFunc, void *appH
|
||||||
goto _err;
|
goto _err;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: rewind the file
|
if (tdLoadKVStoreHeader(pStore->sfd, pStore->fsnap, &info) < 0) goto _err;
|
||||||
|
|
||||||
|
if (ftruncate(pStore->fd, info.size) < 0) {
|
||||||
|
uError("failed to truncate %s to " PRId64 " size since %s", pStore->fname, info.size, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tdUpdateKVStoreHeader(pStore->fd, pStore->fname, &info) < 0) goto _err;
|
||||||
|
|
||||||
close(pStore->sfd);
|
close(pStore->sfd);
|
||||||
pStore->sfd = -1;
|
pStore->sfd = -1;
|
||||||
remove(pStore->fsnap);
|
remove(pStore->fsnap);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Recover from the file
|
if (tdLoadKVStoreHeader(pStore->fd, pStore->fname, &info) < 0) goto _err;
|
||||||
|
|
||||||
|
struct stat tfstat;
|
||||||
|
if (fstat(pStore->fd, &tfstat) < 0) {
|
||||||
|
uError("failed to fstat file %s since %s", pStore->fname, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
ASSERT(info.size == tfstat.st_size);
|
||||||
|
|
||||||
|
if (lseek(pStore->fd, TD_KVSTORE_HEADER_SIZE, SEEK_SET) < 0) {
|
||||||
|
uError("failed to lseek file %s since %s", pStore->fname, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
pStore->info.size += TD_KVSTORE_HEADER_SIZE;
|
||||||
|
|
||||||
|
if (tdRestoreKVStore(pStore) < 0) goto _err;
|
||||||
|
|
||||||
|
close(pStore->fd);
|
||||||
|
pStore->fd = -1;
|
||||||
|
|
||||||
return pStore;
|
return pStore;
|
||||||
|
|
||||||
|
@ -113,7 +168,11 @@ _err:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tdCloseKVStore(SKVStore *pStore) { tdFreeKVStore(pStore); }
|
||||||
|
|
||||||
int tdKVStoreStartCommit(SKVStore *pStore) {
|
int tdKVStoreStartCommit(SKVStore *pStore) {
|
||||||
|
ASSERT(pStore->fd < 0);
|
||||||
|
|
||||||
pStore->fd = open(pStore->fname, O_RDWR);
|
pStore->fd = open(pStore->fname, O_RDWR);
|
||||||
if (pStore->fd < 0) {
|
if (pStore->fd < 0) {
|
||||||
uError("failed to open file %s since %s", pStore->fname, strerror(errno));
|
uError("failed to open file %s since %s", pStore->fname, strerror(errno));
|
||||||
|
@ -147,6 +206,14 @@ int tdKVStoreStartCommit(SKVStore *pStore) {
|
||||||
}
|
}
|
||||||
pStore->sfd = -1;
|
pStore->sfd = -1;
|
||||||
|
|
||||||
|
if (lseek(pStore->fd, 0, SEEK_END) < 0) {
|
||||||
|
uError("failed to lseek file %s since %s", pStore->fname, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
ASSERT(pStore->info.size == lseek(pStore->fd, 0, SEEK_CUR));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
_err:
|
_err:
|
||||||
|
@ -162,11 +229,50 @@ _err:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int tdUpdateKVStoreRecord(SKVStore *pStore, uint64_t uid, void *cont, int contLen) {
|
||||||
|
SKVRecord *pRecord = taosHashGet(pStore->map, (void *)&uid, sizeof(uid));
|
||||||
|
if (pRecord != NULL) {
|
||||||
|
pStore->info.tombSize += (pRecord->size + sizeof(SKVRecord));
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int tdDropKVStoreRecord(SKVStore *pStore, uint64_t uid) {
|
||||||
|
SKVRecord rInfo = {0};
|
||||||
|
char buf[128] = "\0";
|
||||||
|
|
||||||
|
SKVRecord *pRecord = taosHashGet(pStore->map, &uid, sizeof(uid));
|
||||||
|
if (pRecord == NULL) {
|
||||||
|
uError("failed to drop KV store record with key " PRIu64 " since not find", uid);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
rInfo.offset = -pRecord->offset;
|
||||||
|
rInfo.uid = pRecord->uid;
|
||||||
|
rInfo.size = pRecord->size;
|
||||||
|
|
||||||
|
void *pBuf = tdEncodeKVRecord(buf, &rInfo);
|
||||||
|
|
||||||
|
if (twrite(pStore->fd, buf, POINTER_DISTANCE(pBuf, buf)) < POINTER_DISTANCE(pBuf, buf)) {
|
||||||
|
uError("failed to write %d bytes to file %s since %s", POINTER_DISTANCE(pBuf, buf), pStore->fname, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
pStore->info.size += POINTER_DISTANCE(pBuf, buf);
|
||||||
|
pStore->info.nDels++;
|
||||||
|
pStore->info.nRecords--;
|
||||||
|
pStore->info.tombSize += (rInfo.size + sizeof(SKVRecord) * 2);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int tdKVStoreEndCommit(SKVStore *pStore) {
|
int tdKVStoreEndCommit(SKVStore *pStore) {
|
||||||
ASSERT(pStore->fd > 0);
|
ASSERT(pStore->fd > 0);
|
||||||
|
|
||||||
terrno = tdUpdateKVStoreHeader(pStore->fd, pStore->fname, &(pStore->info));
|
if (tdUpdateKVStoreHeader(pStore->fd, pStore->fname, &(pStore->info)) < 0) return -1;
|
||||||
if (terrno != TSDB_CODE_SUCCESS) return -1;
|
|
||||||
|
|
||||||
if (fsync(pStore->fd) < 0) {
|
if (fsync(pStore->fd) < 0) {
|
||||||
uError("failed to fsync file %s since %s", pStore->fname, strerror(errno));
|
uError("failed to fsync file %s since %s", pStore->fname, strerror(errno));
|
||||||
|
@ -179,27 +285,56 @@ int tdKVStoreEndCommit(SKVStore *pStore) {
|
||||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
pStore->fd = -1;
|
||||||
|
|
||||||
remove(pStore->fsnap);
|
remove(pStore->fsnap);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int tdLoadKVStoreHeader(int fd, char *fname, SStoreInfo *pInfo) {
|
||||||
|
char buf[TD_KVSTORE_HEADER_SIZE] = "\0";
|
||||||
|
|
||||||
|
if (lseek(fd, 0, SEEK_SET) < 0) {
|
||||||
|
uError("failed to lseek file %s since %s", fname, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tread(fd, buf, TD_KVSTORE_HEADER_SIZE) < TD_KVSTORE_HEADER_SIZE) {
|
||||||
|
uError("failed to read %d bytes from file %s since %s", TD_KVSTORE_HEADER_SIZE, fname, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!taosCheckChecksumWhole((uint8_t *)buf, TD_KVSTORE_HEADER_SIZE)) {
|
||||||
|
uError("file %s is broken", fname);
|
||||||
|
terrno = TSDB_CODE_COM_FILE_CORRUPTED;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
tdDecodeStoreInfo(buf, pInfo);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int tdUpdateKVStoreHeader(int fd, char *fname, SStoreInfo *pInfo) {
|
static int tdUpdateKVStoreHeader(int fd, char *fname, SStoreInfo *pInfo) {
|
||||||
char buf[TD_KVSTORE_HEADER_SIZE] = "\0";
|
char buf[TD_KVSTORE_HEADER_SIZE] = "\0";
|
||||||
|
|
||||||
if (lseek(fd, 0, SEEK_SET) < 0) {
|
if (lseek(fd, 0, SEEK_SET) < 0) {
|
||||||
uError("failed to lseek file %s since %s", fname, strerror(errno));
|
uError("failed to lseek file %s since %s", fname, strerror(errno));
|
||||||
return TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
tdEncodeStoreInfo(buf, pInfo);
|
tdEncodeStoreInfo(buf, pInfo);
|
||||||
taosCalcChecksumAppend(0, (uint8_t *)buf, TD_KVSTORE_HEADER_SIZE);
|
taosCalcChecksumAppend(0, (uint8_t *)buf, TD_KVSTORE_HEADER_SIZE);
|
||||||
if (twrite(fd, buf, TD_KVSTORE_HEADER_SIZE) < TD_KVSTORE_HEADER_SIZE) {
|
if (twrite(fd, buf, TD_KVSTORE_HEADER_SIZE) < TD_KVSTORE_HEADER_SIZE) {
|
||||||
uError("failed to write file %s %d bytes since %s", fname, TD_KVSTORE_HEADER_SIZE, strerror(errno));
|
uError("failed to write %d bytes to file %s since %s", TD_KVSTORE_HEADER_SIZE, fname, strerror(errno));
|
||||||
return TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tdInitKVStoreHeader(int fd, char *fname) {
|
static int tdInitKVStoreHeader(int fd, char *fname) {
|
||||||
|
@ -217,21 +352,24 @@ static void *tdEncodeStoreInfo(void *buf, SStoreInfo *pInfo) {
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
// static void *tdDecodeStoreInfo(void *buf, SStoreInfo *pInfo) {
|
static void *tdDecodeStoreInfo(void *buf, SStoreInfo *pInfo) {
|
||||||
// buf = taosDecodeVariantI64(buf, &(pInfo->size));
|
buf = taosDecodeVariantI64(buf, &(pInfo->size));
|
||||||
// buf = taosDecodeVariantI64(buf, &(pInfo->tombSize));
|
buf = taosDecodeVariantI64(buf, &(pInfo->tombSize));
|
||||||
// buf = taosDecodeVariantI64(buf, &(pInfo->nRecords));
|
buf = taosDecodeVariantI64(buf, &(pInfo->nRecords));
|
||||||
// buf = taosDecodeVariantI64(buf, &(pInfo->nDels));
|
buf = taosDecodeVariantI64(buf, &(pInfo->nDels));
|
||||||
|
|
||||||
// return buf;
|
return buf;
|
||||||
// }
|
}
|
||||||
|
|
||||||
static SKVStore *tdNewKVStore(char *fname, iterFunc iFunc, afterFunc aFunc, void *appH) {
|
static SKVStore *tdNewKVStore(char *fname, iterFunc iFunc, afterFunc aFunc, void *appH) {
|
||||||
SKVStore *pStore = (SKVStore *)malloc(sizeof(SKVStore));
|
SKVStore *pStore = (SKVStore *)malloc(sizeof(SKVStore));
|
||||||
if (pStore == NULL) goto _err;
|
if (pStore == NULL) goto _err;
|
||||||
|
|
||||||
pStore->fname = strdup(fname);
|
pStore->fname = strdup(fname);
|
||||||
if (pStore->map == NULL) goto _err;
|
if (pStore->map == NULL) {
|
||||||
|
terrno = TSDB_CODE_COM_OUT_OF_MEMORY;
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
pStore->fsnap = tdGetKVStoreSnapshotFname(fname);
|
pStore->fsnap = tdGetKVStoreSnapshotFname(fname);
|
||||||
if (pStore->fsnap == NULL) goto _err;
|
if (pStore->fsnap == NULL) goto _err;
|
||||||
|
@ -254,7 +392,6 @@ static SKVStore *tdNewKVStore(char *fname, iterFunc iFunc, afterFunc aFunc, void
|
||||||
return pStore;
|
return pStore;
|
||||||
|
|
||||||
_err:
|
_err:
|
||||||
terrno = TSDB_CODE_COM_OUT_OF_MEMORY;
|
|
||||||
tdFreeKVStore(pStore);
|
tdFreeKVStore(pStore);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -289,4 +426,116 @@ static char *tdGetKVStoreNewFname(char *fdata) {
|
||||||
}
|
}
|
||||||
sprintf(fname, "%s%s", fdata, TD_KVSTORE_NEW_SUFFIX);
|
sprintf(fname, "%s%s", fdata, TD_KVSTORE_NEW_SUFFIX);
|
||||||
return fname;
|
return fname;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *tdEncodeKVRecord(void *buf, SKVRecord *pRecord) {
|
||||||
|
buf = taosEncodeFixedU64(buf, pRecord->uid);
|
||||||
|
buf = taosEncodeFixedI64(buf, pRecord->offset);
|
||||||
|
buf = taosEncodeFixedI64(buf, pRecord->size);
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *tdDecodeKVRecord(void *buf, SKVRecord *pRecord) {
|
||||||
|
buf = taosDecodeFixedU64(buf, &(pRecord->uid));
|
||||||
|
buf = taosDecodeFixedI64(buf, &(pRecord->offset));
|
||||||
|
buf = taosDecodeFixedI64(buf, &(pRecord->size));
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int tdRestoreKVStore(SKVStore *pStore) {
|
||||||
|
char tbuf[128] = "\0";
|
||||||
|
void * buf = NULL;
|
||||||
|
int maxBufSize = 0;
|
||||||
|
SKVRecord rInfo = {0};
|
||||||
|
|
||||||
|
ASSERT(TD_KVSTORE_HEADER_SIZE == lseek(pStore->fd, 0, SEEK_CUR));
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
ssize_t tsize = tread(pStore->fd, tbuf, sizeof(SKVRecord));
|
||||||
|
if (tsize == 0) break;
|
||||||
|
if (tsize < sizeof(SKVRecord)) {
|
||||||
|
uError("failed to read %d bytes from file %s since %s", sizeof(SKVRecord), pStore->fname, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *pBuf = tdDecodeKVRecord(tbuf, &rInfo);
|
||||||
|
ASSERT(POINTER_DISTANCE(pBuf, tbuf) == sizeof(SKVRecord));
|
||||||
|
ASSERT(rInfo.offset > 0 ? pStore->info.size == rInfo.offset : true);
|
||||||
|
|
||||||
|
if (rInfo.offset < 0) {
|
||||||
|
taosHashRemove(pStore->map, (void *)(&rInfo.uid), sizeof(rInfo.uid));
|
||||||
|
pStore->info.size += sizeof(SKVRecord);
|
||||||
|
pStore->info.nRecords--;
|
||||||
|
pStore->info.nDels++;
|
||||||
|
pStore->info.tombSize += (rInfo.size + sizeof(SKVRecord) + sizeof(SKVRecord));
|
||||||
|
} else {
|
||||||
|
// TODO: add statistics
|
||||||
|
ASSERT(rInfo.offset > 0 && rInfo.size > 0);
|
||||||
|
if (taosHashPut(pStore->map, (void *)(&rInfo.uid), sizeof(rInfo.uid), &rInfo, sizeof(rInfo)) < 0) {
|
||||||
|
uError("failed to put record in KV store %s", pStore->fname);
|
||||||
|
terrno = TSDB_CODE_COM_OUT_OF_MEMORY;
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
maxBufSize = MAX(maxBufSize, rInfo.size);
|
||||||
|
|
||||||
|
if (lseek(pStore->fd, rInfo.size, SEEK_CUR) < 0) {
|
||||||
|
uError("failed to lseek file %s since %s", pStore->fname, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buf = malloc(maxBufSize);
|
||||||
|
if (buf == NULL) {
|
||||||
|
uError("failed to allocate %d bytes in KV store %s", maxBufSize, pStore->fname);
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
SHashMutableIterator *pIter = taosHashCreateIter(pStore->map);
|
||||||
|
if (pIter == NULL) {
|
||||||
|
uError("failed to create hash iter while opening KV store %s", pStore->fname);
|
||||||
|
terrno = TSDB_CODE_COM_OUT_OF_MEMORY;
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (taosHashIterNext(pIter)) {
|
||||||
|
SKVRecord *pRecord = taosHashIterGet(pIter);
|
||||||
|
|
||||||
|
if (lseek(pStore->fd, pRecord->offset, SEEK_SET) < 0) {
|
||||||
|
uError("failed to lseek file %s since %s", pStore->fname, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tread(pStore->fd, buf, pRecord->size) < pRecord->size) {
|
||||||
|
uError("failed to read %d bytes from file %s since %s", pRecord->size, pStore->fname, strerror(errno));
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!taosCheckChecksumWhole((uint8_t *)buf, pRecord->size)) {
|
||||||
|
uError("file %s has checksum error, offset " PRId64 " size %d", pStore->fname, pRecord->offset, pRecord->size);
|
||||||
|
terrno = TSDB_CODE_COM_FILE_CORRUPTED;
|
||||||
|
goto _err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pStore->iFunc) (*pStore->iFunc)(pStore->appH, buf, pRecord->size);
|
||||||
|
}
|
||||||
|
|
||||||
|
taosHashDestroyIter(pIter);
|
||||||
|
|
||||||
|
if (pStore->aFunc) (*pStore->aFunc)(pStore->appH);
|
||||||
|
|
||||||
|
tfree(buf);
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
_err:
|
||||||
|
tfree(buf);
|
||||||
|
return -1;
|
||||||
}
|
}
|
|
@ -29,11 +29,12 @@ int taosGetFqdn(char *fqdn) {
|
||||||
|
|
||||||
hints.ai_flags = AI_CANONNAME;
|
hints.ai_flags = AI_CANONNAME;
|
||||||
|
|
||||||
getaddrinfo(hostname, NULL, &hints, &result);
|
int32_t ret = getaddrinfo(hostname, NULL, &hints, &result);
|
||||||
if (result) {
|
if (result) {
|
||||||
strcpy(fqdn, result->ai_canonname);
|
strcpy(fqdn, result->ai_canonname);
|
||||||
freeaddrinfo(result);
|
freeaddrinfo(result);
|
||||||
} else {
|
} else {
|
||||||
|
uError("failed to get fqdn, code:%d, reason:%s", ret, gai_strerror(ret));
|
||||||
code = -1;
|
code = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,9 +43,12 @@ int taosGetFqdn(char *fqdn) {
|
||||||
|
|
||||||
uint32_t taosGetIpFromFqdn(const char *fqdn) {
|
uint32_t taosGetIpFromFqdn(const char *fqdn) {
|
||||||
struct addrinfo hints = {0};
|
struct addrinfo hints = {0};
|
||||||
|
hints.ai_family = AF_UNSPEC;
|
||||||
|
hints.ai_socktype = SOCK_STREAM;
|
||||||
|
|
||||||
struct addrinfo *result = NULL;
|
struct addrinfo *result = NULL;
|
||||||
|
|
||||||
getaddrinfo(fqdn, NULL, &hints, &result);
|
int32_t ret = getaddrinfo(fqdn, NULL, &hints, &result);
|
||||||
if (result) {
|
if (result) {
|
||||||
struct sockaddr *sa = result->ai_addr;
|
struct sockaddr *sa = result->ai_addr;
|
||||||
struct sockaddr_in *si = (struct sockaddr_in*)sa;
|
struct sockaddr_in *si = (struct sockaddr_in*)sa;
|
||||||
|
@ -53,7 +57,8 @@ uint32_t taosGetIpFromFqdn(const char *fqdn) {
|
||||||
freeaddrinfo(result);
|
freeaddrinfo(result);
|
||||||
return ip;
|
return ip;
|
||||||
} else {
|
} else {
|
||||||
return -1;
|
uError("failed get the ip address, fqdn:%s, code:%d, reason:%s", fqdn, ret, gai_strerror(ret));
|
||||||
|
return 0xFFFFFFFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ typedef struct {
|
||||||
uint32_t id; // increase continuously
|
uint32_t id; // increase continuously
|
||||||
int num; // number of wal files
|
int num; // number of wal files
|
||||||
char path[TSDB_FILENAME_LEN];
|
char path[TSDB_FILENAME_LEN];
|
||||||
char name[TSDB_FILENAME_LEN];
|
char name[TSDB_FILENAME_LEN+16];
|
||||||
pthread_mutex_t mutex;
|
pthread_mutex_t mutex;
|
||||||
} SWal;
|
} SWal;
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ void walClose(void *handle) {
|
||||||
if (pWal->keep == 0) {
|
if (pWal->keep == 0) {
|
||||||
// remove all files in the directory
|
// remove all files in the directory
|
||||||
for (int i=0; i<pWal->num; ++i) {
|
for (int i=0; i<pWal->num; ++i) {
|
||||||
sprintf(pWal->name, "%s/%s%d", pWal->path, walPrefix, pWal->id-i);
|
snprintf(pWal->name, sizeof(pWal->name), "%s/%s%d", pWal->path, walPrefix, pWal->id-i);
|
||||||
if (remove(pWal->name) <0) {
|
if (remove(pWal->name) <0) {
|
||||||
wError("wal:%s, failed to remove", pWal->name);
|
wError("wal:%s, failed to remove", pWal->name);
|
||||||
} else {
|
} else {
|
||||||
|
@ -140,7 +140,7 @@ int walRenew(void *handle) {
|
||||||
|
|
||||||
pWal->num++;
|
pWal->num++;
|
||||||
|
|
||||||
sprintf(pWal->name, "%s/%s%d", pWal->path, walPrefix, pWal->id);
|
snprintf(pWal->name, sizeof(pWal->name), "%s/%s%d", pWal->path, walPrefix, pWal->id);
|
||||||
pWal->fd = open(pWal->name, O_WRONLY | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO);
|
pWal->fd = open(pWal->name, O_WRONLY | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO);
|
||||||
|
|
||||||
if (pWal->fd < 0) {
|
if (pWal->fd < 0) {
|
||||||
|
@ -152,7 +152,7 @@ int walRenew(void *handle) {
|
||||||
if (pWal->num > pWal->max) {
|
if (pWal->num > pWal->max) {
|
||||||
// remove the oldest wal file
|
// remove the oldest wal file
|
||||||
char name[TSDB_FILENAME_LEN * 3];
|
char name[TSDB_FILENAME_LEN * 3];
|
||||||
sprintf(name, "%s/%s%d", pWal->path, walPrefix, pWal->id - pWal->max);
|
snprintf(name, sizeof(name), "%s/%s%d", pWal->path, walPrefix, pWal->id - pWal->max);
|
||||||
if (remove(name) <0) {
|
if (remove(name) <0) {
|
||||||
wError("wal:%s, failed to remove(%s)", name, strerror(errno));
|
wError("wal:%s, failed to remove(%s)", name, strerror(errno));
|
||||||
} else {
|
} else {
|
||||||
|
@ -214,7 +214,7 @@ int walRestore(void *handle, void *pVnode, int (*writeFp)(void *, void *, int))
|
||||||
int plen = strlen(walPrefix);
|
int plen = strlen(walPrefix);
|
||||||
char opath[TSDB_FILENAME_LEN+5];
|
char opath[TSDB_FILENAME_LEN+5];
|
||||||
|
|
||||||
int slen = sprintf(opath, "%s", pWal->path);
|
int slen = snprintf(opath, sizeof(opath), "%s", pWal->path);
|
||||||
if ( pWal->keep == 0)
|
if ( pWal->keep == 0)
|
||||||
strcpy(opath+slen, "/old");
|
strcpy(opath+slen, "/old");
|
||||||
|
|
||||||
|
@ -245,7 +245,7 @@ int walRestore(void *handle, void *pVnode, int (*writeFp)(void *, void *, int))
|
||||||
wTrace("wal:%s, %d files will be restored", opath, count);
|
wTrace("wal:%s, %d files will be restored", opath, count);
|
||||||
|
|
||||||
for (index = minId; index<=maxId; ++index) {
|
for (index = minId; index<=maxId; ++index) {
|
||||||
sprintf(pWal->name, "%s/%s%d", opath, walPrefix, index);
|
snprintf(pWal->name, sizeof(pWal->name), "%s/%s%d", opath, walPrefix, index);
|
||||||
terrno = walRestoreWalFile(pWal, pVnode, writeFp);
|
terrno = walRestoreWalFile(pWal, pVnode, writeFp);
|
||||||
if (terrno < 0) break;
|
if (terrno < 0) break;
|
||||||
}
|
}
|
||||||
|
@ -264,7 +264,7 @@ int walRestore(void *handle, void *pVnode, int (*writeFp)(void *, void *, int))
|
||||||
// open the existing WAL file in append mode
|
// open the existing WAL file in append mode
|
||||||
pWal->num = count;
|
pWal->num = count;
|
||||||
pWal->id = maxId;
|
pWal->id = maxId;
|
||||||
sprintf(pWal->name, "%s/%s%d", opath, walPrefix, maxId);
|
snprintf(pWal->name, sizeof(pWal->name), "%s/%s%d", opath, walPrefix, maxId);
|
||||||
pWal->fd = open(pWal->name, O_WRONLY | O_CREAT | O_APPEND, S_IRWXU | S_IRWXG | S_IRWXO);
|
pWal->fd = open(pWal->name, O_WRONLY | O_CREAT | O_APPEND, S_IRWXU | S_IRWXG | S_IRWXO);
|
||||||
if (pWal->fd < 0) {
|
if (pWal->fd < 0) {
|
||||||
wError("wal:%s, failed to open file(%s)", pWal->name, strerror(errno));
|
wError("wal:%s, failed to open file(%s)", pWal->name, strerror(errno));
|
||||||
|
@ -361,7 +361,7 @@ int walHandleExistingFiles(const char *path) {
|
||||||
char nname[TSDB_FILENAME_LEN * 3];
|
char nname[TSDB_FILENAME_LEN * 3];
|
||||||
char opath[TSDB_FILENAME_LEN];
|
char opath[TSDB_FILENAME_LEN];
|
||||||
|
|
||||||
sprintf(opath, "%s/old", path);
|
snprintf(opath, sizeof(opath), "%s/old", path);
|
||||||
|
|
||||||
struct dirent *ent;
|
struct dirent *ent;
|
||||||
DIR *dir = opendir(path);
|
DIR *dir = opendir(path);
|
||||||
|
@ -377,8 +377,8 @@ int walHandleExistingFiles(const char *path) {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
while ((ent = readdir(dir))!= NULL) {
|
while ((ent = readdir(dir))!= NULL) {
|
||||||
if ( strncmp(ent->d_name, walPrefix, plen) == 0) {
|
if ( strncmp(ent->d_name, walPrefix, plen) == 0) {
|
||||||
sprintf(oname, "%s/%s", path, ent->d_name);
|
snprintf(oname, sizeof(oname), "%s/%s", path, ent->d_name);
|
||||||
sprintf(nname, "%s/old/%s", path, ent->d_name);
|
snprintf(nname, sizeof(nname), "%s/old/%s", path, ent->d_name);
|
||||||
if (access(opath, F_OK) != 0) {
|
if (access(opath, F_OK) != 0) {
|
||||||
if (mkdir(opath, 0755) != 0) {
|
if (mkdir(opath, 0755) != 0) {
|
||||||
wError("wal:%s, failed to create directory:%s(%s)", oname, opath, strerror(errno));
|
wError("wal:%s, failed to create directory:%s(%s)", oname, opath, strerror(errno));
|
||||||
|
@ -416,7 +416,7 @@ static int walRemoveWalFiles(const char *path) {
|
||||||
|
|
||||||
while ((ent = readdir(dir))!= NULL) {
|
while ((ent = readdir(dir))!= NULL) {
|
||||||
if ( strncmp(ent->d_name, walPrefix, plen) == 0) {
|
if ( strncmp(ent->d_name, walPrefix, plen) == 0) {
|
||||||
sprintf(name, "%s/%s", path, ent->d_name);
|
snprintf(name, sizeof(name), "%s/%s", path, ent->d_name);
|
||||||
if (remove(name) <0) {
|
if (remove(name) <0) {
|
||||||
wError("wal:%s, failed to remove(%s)", name, strerror(errno));
|
wError("wal:%s, failed to remove(%s)", name, strerror(errno));
|
||||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
|
|
@ -36,7 +36,7 @@ python3 ./test.py -f tag_lite/binary.py
|
||||||
python3 ./test.py -f tag_lite/bool_binary.py
|
python3 ./test.py -f tag_lite/bool_binary.py
|
||||||
python3 ./test.py -f tag_lite/bool_int.py
|
python3 ./test.py -f tag_lite/bool_int.py
|
||||||
python3 ./test.py -f tag_lite/bool.py
|
python3 ./test.py -f tag_lite/bool.py
|
||||||
python3 ./test.py -f tag_lite/change.py
|
# python3 ./test.py -f tag_lite/change.py
|
||||||
python3 ./test.py -f tag_lite/column.py
|
python3 ./test.py -f tag_lite/column.py
|
||||||
# python3 ./test.py -f tag_lite/commit.py
|
# python3 ./test.py -f tag_lite/commit.py
|
||||||
python3 ./test.py -f tag_lite/create.py
|
python3 ./test.py -f tag_lite/create.py
|
||||||
|
@ -127,7 +127,7 @@ python3 ./test.py -f user/user_create.py
|
||||||
python3 ./test.py -f user/pass_len.py
|
python3 ./test.py -f user/pass_len.py
|
||||||
|
|
||||||
# table
|
# table
|
||||||
#python3 ./test.py -f table/del_stable.py
|
# python3 ./test.py -f table/del_stable.py
|
||||||
|
|
||||||
#query
|
#query
|
||||||
python3 ./test.py -f query/filter.py
|
python3 ./test.py -f query/filter.py
|
||||||
|
|
|
@ -50,18 +50,18 @@ class TDTestCase:
|
||||||
# TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
|
# TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
|
||||||
# bool, tgcol2 int)
|
# bool, tgcol2 int)
|
||||||
tdLog.info(
|
tdLog.info(
|
||||||
"create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 int)")
|
"create table ta_ch_mt2 (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 int)")
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 int)')
|
'create table ta_ch_mt2 (ts timestamp, tbcol int) TAGS(tgcol1 bool, tgcol2 int)')
|
||||||
# TSIM: sql create table $tb using $mt tags( 1, 2 )
|
# TSIM: sql create table $tb using $mt tags( 1, 2 )
|
||||||
tdLog.info("create table tb2 using $mt tags( 1, 2 )")
|
tdLog.info("create table tb2 using ta_ch_mt2 tags( 1, 2 )")
|
||||||
tdSql.execute('create table tb2 using $mt tags( 1, 2 )')
|
tdSql.execute('create table tb2 using ta_ch_mt2 tags( 1, 2 )')
|
||||||
# TSIM: sql insert into $tb values(now, 1)
|
# TSIM: sql insert into $tb values(now, 1)
|
||||||
tdLog.info("insert into tb2 values(now, 1)")
|
tdLog.info("insert into tb2 values(now, 1)")
|
||||||
tdSql.execute("insert into tb2 values(now, 1)")
|
tdSql.execute("insert into tb2 values(now, 1)")
|
||||||
# TSIM: sql select * from $mt where tgcol1 = 1
|
# TSIM: sql select * from $mt where tgcol1 = 1
|
||||||
tdLog.info('select * from $mt where tgcol1 = 1')
|
tdLog.info('select * from ta_ch_mt2 where tgcol1 = 1')
|
||||||
tdSql.query('select * from $mt where tgcol1 = 1')
|
tdSql.query('select * from ta_ch_mt2 where tgcol1 = 1')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
tdLog.info('tdSql.checkRow(1)')
|
tdLog.info('tdSql.checkRow(1)')
|
||||||
tdSql.checkRows(1)
|
tdSql.checkRows(1)
|
||||||
|
@ -107,18 +107,18 @@ class TDTestCase:
|
||||||
# TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
|
# TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
|
||||||
# smallint, tgcol2 tinyint)
|
# smallint, tgcol2 tinyint)
|
||||||
tdLog.info(
|
tdLog.info(
|
||||||
"create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 smallint, tgcol2 tinyint)")
|
"create table ta_ch_mt3 (ts timestamp, tbcol int) TAGS(tgcol1 smallint, tgcol2 tinyint)")
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 smallint, tgcol2 tinyint)')
|
'create table ta_ch_mt3 (ts timestamp, tbcol int) TAGS(tgcol1 smallint, tgcol2 tinyint)')
|
||||||
# TSIM: sql create table $tb using $mt tags( 1, 2 )
|
# TSIM: sql create table $tb using $mt tags( 1, 2 )
|
||||||
tdLog.info("create table tb3 using $mt tags( 1, 2 )")
|
tdLog.info("create table tb3 using ta_ch_mt3 tags( 1, 2 )")
|
||||||
tdSql.execute('create table tb3 using $mt tags( 1, 2 )')
|
tdSql.execute('create table tb3 using ta_ch_mt3 tags( 1, 2 )')
|
||||||
# TSIM: sql insert into $tb values(now, 1)
|
# TSIM: sql insert into $tb values(now, 1)
|
||||||
tdLog.info("insert into tb3 values(now, 1)")
|
tdLog.info("insert into tb3 values(now, 1)")
|
||||||
tdSql.execute("insert into tb3 values(now, 1)")
|
tdSql.execute("insert into tb3 values(now, 1)")
|
||||||
# TSIM: sql select * from $mt where tgcol1 = 1
|
# TSIM: sql select * from $mt where tgcol1 = 1
|
||||||
tdLog.info('select * from $mt where tgcol1 = 1')
|
tdLog.info('select * from ta_ch_mt3 where tgcol1 = 1')
|
||||||
tdSql.query('select * from $mt where tgcol1 = 1')
|
tdSql.query('select * from ta_ch_mt3 where tgcol1 = 1')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
tdLog.info('tdSql.checkRow(1)')
|
tdLog.info('tdSql.checkRow(1)')
|
||||||
tdSql.checkRows(1)
|
tdSql.checkRows(1)
|
||||||
|
@ -151,18 +151,18 @@ class TDTestCase:
|
||||||
# TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
|
# TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
|
||||||
# bigint, tgcol2 float)
|
# bigint, tgcol2 float)
|
||||||
tdLog.info(
|
tdLog.info(
|
||||||
"create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bigint, tgcol2 float)")
|
"create table ta_ch_mt4 (ts timestamp, tbcol int) TAGS(tgcol1 bigint, tgcol2 float)")
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 bigint, tgcol2 float)')
|
'create table ta_ch_mt4 (ts timestamp, tbcol int) TAGS(tgcol1 bigint, tgcol2 float)')
|
||||||
# TSIM: sql create table $tb using $mt tags( 1, 2 )
|
# TSIM: sql create table $tb using $mt tags( 1, 2 )
|
||||||
tdLog.info("create table tb4 using $mt tags( 1, 2 )")
|
tdLog.info("create table tb4 using ta_ch_mt4 tags( 1, 2 )")
|
||||||
tdSql.execute('create table tb4 using $mt tags( 1, 2 )')
|
tdSql.execute('create table tb4 using ta_ch_mt4 tags( 1, 2 )')
|
||||||
# TSIM: sql insert into $tb values(now, 1)
|
# TSIM: sql insert into $tb values(now, 1)
|
||||||
tdLog.info("insert into tb4 values(now, 1)")
|
tdLog.info("insert into tb4 values(now, 1)")
|
||||||
tdSql.execute("insert into tb4 values(now, 1)")
|
tdSql.execute("insert into tb4 values(now, 1)")
|
||||||
# TSIM: sql select * from $mt where tgcol1 = 1
|
# TSIM: sql select * from $mt where tgcol1 = 1
|
||||||
tdLog.info('select * from $mt where tgcol1 = 1')
|
tdLog.info('select * from ta_ch_mt4 where tgcol1 = 1')
|
||||||
tdSql.query('select * from $mt where tgcol1 = 1')
|
tdSql.query('select * from ta_ch_mt4 where tgcol1 = 1')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
tdLog.info('tdSql.checkRow(1)')
|
tdLog.info('tdSql.checkRow(1)')
|
||||||
tdSql.checkRows(1)
|
tdSql.checkRows(1)
|
||||||
|
@ -195,18 +195,18 @@ class TDTestCase:
|
||||||
# TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
|
# TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
|
||||||
# double, tgcol2 binary(10))
|
# double, tgcol2 binary(10))
|
||||||
tdLog.info(
|
tdLog.info(
|
||||||
"create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 double, tgcol2 binary(10))")
|
"create table ta_ch_mt5 (ts timestamp, tbcol int) TAGS(tgcol1 double, tgcol2 binary(10))")
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 double, tgcol2 binary(10))')
|
'create table ta_ch_mt5 (ts timestamp, tbcol int) TAGS(tgcol1 double, tgcol2 binary(10))')
|
||||||
# TSIM: sql create table $tb using $mt tags( 1, '2' )
|
# TSIM: sql create table $tb using $mt tags( 1, '2' )
|
||||||
tdLog.info("create table tb5 using $mt tags( 1, '2' )")
|
tdLog.info("create table tb5 using ta_ch_mt5 tags( 1, '2' )")
|
||||||
tdSql.execute('create table tb5 using $mt tags( 1, '2' )')
|
tdSql.execute("create table tb5 using ta_ch_mt5 tags( 1, '2' )")
|
||||||
# TSIM: sql insert into $tb values(now, 1)
|
# TSIM: sql insert into $tb values(now, 1)
|
||||||
tdLog.info("insert into tb5 values(now, 1)")
|
tdLog.info("insert into tb5 values(now, 1)")
|
||||||
tdSql.execute("insert into tb5 values(now, 1)")
|
tdSql.execute("insert into tb5 values(now, 1)")
|
||||||
# TSIM: sql select * from $mt where tgcol2 = '2'
|
# TSIM: sql select * from $mt where tgcol2 = '2'
|
||||||
tdLog.info('select * from $mt where tgcol2 = '2'')
|
tdLog.info("select * from ta_ch_mt5 where tgcol2 = '2'")
|
||||||
tdSql.query('select * from $mt where tgcol2 = '2'')
|
tdSql.query("select * from ta_ch_mt5 where tgcol2 = '2'")
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
tdLog.info('tdSql.checkRow(1)')
|
tdLog.info('tdSql.checkRow(1)')
|
||||||
tdSql.checkRows(1)
|
tdSql.checkRows(1)
|
||||||
|
@ -239,18 +239,18 @@ class TDTestCase:
|
||||||
# TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
|
# TSIM: sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol1
|
||||||
# binary(10), tgcol2 int, tgcol3 smallint, tgcol4 binary(11), tgcol5
|
# binary(10), tgcol2 int, tgcol3 smallint, tgcol4 binary(11), tgcol5
|
||||||
# double, tgcol6 binary(20))
|
# double, tgcol6 binary(20))
|
||||||
tdLog.info("create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 binary(10), tgcol2 int, tgcol3 smallint, tgcol4 binary(11), tgcol5 double, tgcol6 binary(20))")
|
tdLog.info("create table ta_ch_mt6 (ts timestamp, tbcol int) TAGS(tgcol1 binary(10), tgcol2 int, tgcol3 smallint, tgcol4 binary(11), tgcol5 double, tgcol6 binary(20))")
|
||||||
tdSql.execute(
|
tdSql.execute(
|
||||||
'create table $mt (ts timestamp, tbcol int) TAGS(tgcol1 binary(10), tgcol2 int, tgcol3 smallint, tgcol4 binary(11), tgcol5 double, tgcol6 binary(20))')
|
'create table ta_ch_mt6 (ts timestamp, tbcol int) TAGS(tgcol1 binary(10), tgcol2 int, tgcol3 smallint, tgcol4 binary(11), tgcol5 double, tgcol6 binary(20))')
|
||||||
# TSIM: sql create table $tb using $mt tags( '1', 2, 3, '4', 5, '6' )
|
# TSIM: sql create table $tb using $mt tags( '1', 2, 3, '4', 5, '6' )
|
||||||
tdLog.info("create table tb6 using $mt tags( '1', 2, 3, '4', 5, '6' )")
|
tdLog.info("create table tb6 using ta_ch_mt6 tags( '1', 2, 3, '4', 5, '6' )")
|
||||||
tdSql.execute('create table tb6 using $mt tags( '1', 2, 3, '4', 5, '6' )')
|
tdSql.execute("create table tb6 using ta_ch_mt6 tags( '1', 2, 3, '4', 5, '6' )")
|
||||||
# TSIM: sql insert into $tb values(now, 1)
|
# TSIM: sql insert into $tb values(now, 1)
|
||||||
tdLog.info("insert into tb6 values(now, 1)")
|
tdLog.info("insert into tb6 values(now, 1)")
|
||||||
tdSql.execute("insert into tb6 values(now, 1)")
|
tdSql.execute("insert into tb6 values(now, 1)")
|
||||||
# TSIM: sql select * from $mt where tgcol1 = '1'
|
# TSIM: sql select * from $mt where tgcol1 = '1'
|
||||||
tdLog.info('select * from $mt where tgcol1 = '1'')
|
tdLog.info("select * from ta_ch_mt6 where tgcol1 = '1'")
|
||||||
tdSql.query('select * from $mt where tgcol1 = '1'')
|
tdSql.query("select * from ta_ch_mt6 where tgcol1 = '1'")
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
tdLog.info('tdSql.checkRow(1)')
|
tdLog.info('tdSql.checkRow(1)')
|
||||||
tdSql.checkRows(1)
|
tdSql.checkRows(1)
|
||||||
|
@ -312,19 +312,19 @@ class TDTestCase:
|
||||||
# TSIM: $tb = $tbPrefix . $i
|
# TSIM: $tb = $tbPrefix . $i
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol1 = 1 -x step24
|
# TSIM: sql select * from $mt where tgcol1 = 1 -x step24
|
||||||
tdLog.info('select * from $mt where tgcol1 = 1 -x step24')
|
tdLog.info('select * from ta_ch_mt2 where tgcol1 = 1 -x step24')
|
||||||
tdSql.error('select * from $mt where tgcol1 = 14')
|
tdSql.error('select * from ta_ch_mt2 where tgcol1 = 14')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step24:
|
# TSIM: step24:
|
||||||
# TSIM: sql select * from $mt where tgcol2 = 1 -x step25
|
# TSIM: sql select * from $mt where tgcol2 = 1 -x step25
|
||||||
tdLog.info('select * from $mt where tgcol2 = 1 -x step25')
|
tdLog.info('select * from ta_ch_mt2 where tgcol2 = 1 -x step25')
|
||||||
tdSql.error('select * from $mt where tgcol2 = 15')
|
tdSql.error('select * from ta_ch_mt2 where tgcol2 = 15')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step25:
|
# TSIM: step25:
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol3 = 1
|
# TSIM: sql select * from $mt where tgcol3 = 1
|
||||||
tdLog.info('select * from $mt where tgcol3 = 1')
|
tdLog.info('select * from ta_ch_mt2 where tgcol3 = 1')
|
||||||
tdSql.query('select * from $mt where tgcol3 = 1')
|
tdSql.query('select * from ta_ch_mt2 where tgcol3 = 1')
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
@ -349,8 +349,8 @@ class TDTestCase:
|
||||||
# TSIM: endi
|
# TSIM: endi
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol4 = 2
|
# TSIM: sql select * from $mt where tgcol4 = 2
|
||||||
tdLog.info('select * from $mt where tgcol4 = 2')
|
tdLog.info('select * from ta_ch_mt2 where tgcol4 = 2')
|
||||||
tdSql.query('select * from $mt where tgcol4 = 2')
|
tdSql.query('select * from ta_ch_mt2 where tgcol4 = 2')
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
@ -381,19 +381,19 @@ class TDTestCase:
|
||||||
# TSIM: $tb = $tbPrefix . $i
|
# TSIM: $tb = $tbPrefix . $i
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol1 = 1 -x step31
|
# TSIM: sql select * from $mt where tgcol1 = 1 -x step31
|
||||||
tdLog.info('select * from $mt where tgcol1 = 1 -x step31')
|
tdLog.info('select * from ta_ch_mt3 where tgcol1 = 1 -x step31')
|
||||||
tdSql.error('select * from $mt where tgcol1 = 11')
|
tdSql.error('select * from ta_ch_mt3 where tgcol1 = 11')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step31:
|
# TSIM: step31:
|
||||||
# TSIM: sql select * from $mt where tgcol2 = 1 -x step32
|
# TSIM: sql select * from $mt where tgcol2 = 1 -x step32
|
||||||
tdLog.info('select * from $mt where tgcol2 = 1 -x step32')
|
tdLog.info('select * from ta_ch_mt3 where tgcol2 = 1 -x step32')
|
||||||
tdSql.error('select * from $mt where tgcol2 = 12')
|
tdSql.error('select * from ta_ch_mt3 where tgcol2 = 12')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step32:
|
# TSIM: step32:
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol3 = 1
|
# TSIM: sql select * from $mt where tgcol3 = 1
|
||||||
tdLog.info('select * from $mt where tgcol3 = 1')
|
tdLog.info('select * from ta_ch_mt3 where tgcol3 = 1')
|
||||||
tdSql.query('select * from $mt where tgcol3 = 1')
|
tdSql.query('select * from ta_ch_mt3 where tgcol3 = 1')
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
@ -450,19 +450,19 @@ class TDTestCase:
|
||||||
# TSIM: $tb = $tbPrefix . $i
|
# TSIM: $tb = $tbPrefix . $i
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol1 = 1 -x step41
|
# TSIM: sql select * from $mt where tgcol1 = 1 -x step41
|
||||||
tdLog.info('select * from $mt where tgcol1 = 1 -x step41')
|
tdLog.info('select * from ta_ch_mt4 where tgcol1 = 1 -x step41')
|
||||||
tdSql.error('select * from $mt where tgcol1 = 11')
|
tdSql.error('select * from ta_ch_mt4 where tgcol1 = 11')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step41:
|
# TSIM: step41:
|
||||||
# TSIM: sql select * from $mt where tgcol2 = 1 -x step42
|
# TSIM: sql select * from $mt where tgcol2 = 1 -x step42
|
||||||
tdLog.info('select * from $mt where tgcol2 = 1 -x step42')
|
tdLog.info('select * from ta_ch_mt4 where tgcol2 = 1 -x step42')
|
||||||
tdSql.error('select * from $mt where tgcol2 = 12')
|
tdSql.error('select * from ta_ch_mt4 where tgcol2 = 12')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step42:
|
# TSIM: step42:
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol3 = 1
|
# TSIM: sql select * from $mt where tgcol3 = 1
|
||||||
tdLog.info('select * from $mt where tgcol3 = 1')
|
tdLog.info('select * from ta_ch_mt4 where tgcol3 = 1')
|
||||||
tdSql.query('select * from $mt where tgcol3 = 1')
|
tdSql.query('select * from ta_ch_mt4 where tgcol3 = 1')
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
@ -487,8 +487,8 @@ class TDTestCase:
|
||||||
# TSIM: endi
|
# TSIM: endi
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol4 = 2
|
# TSIM: sql select * from $mt where tgcol4 = 2
|
||||||
tdLog.info('select * from $mt where tgcol4 = 2')
|
tdLog.info('select * from ta_ch_mt4 where tgcol4 = 2')
|
||||||
tdSql.query('select * from $mt where tgcol4 = 2')
|
tdSql.query('select * from ta_ch_mt4 where tgcol4 = 2')
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
@ -519,19 +519,19 @@ class TDTestCase:
|
||||||
# TSIM: $tb = $tbPrefix . $i
|
# TSIM: $tb = $tbPrefix . $i
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol1 = 1 -x step51
|
# TSIM: sql select * from $mt where tgcol1 = 1 -x step51
|
||||||
tdLog.info('select * from $mt where tgcol1 = 1 -x step51')
|
tdLog.info('select * from ta_ch_mt5 where tgcol1 = 1 -x step51')
|
||||||
tdSql.error('select * from $mt where tgcol1 = 11')
|
tdSql.error('select * from ta_ch_mt5 where tgcol1 = 11')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step51:
|
# TSIM: step51:
|
||||||
# TSIM: sql select * from $mt where tgcol2 = 1 -x step52
|
# TSIM: sql select * from $mt where tgcol2 = 1 -x step52
|
||||||
tdLog.info('select * from $mt where tgcol2 = 1 -x step52')
|
tdLog.info('select * from ta_ch_mt5 where tgcol2 = 1 -x step52')
|
||||||
tdSql.error('select * from $mt where tgcol2 = 12')
|
tdSql.error('select * from ta_ch_mt5 where tgcol2 = 12')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step52:
|
# TSIM: step52:
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol3 = 1
|
# TSIM: sql select * from $mt where tgcol3 = 1
|
||||||
tdLog.info('select * from $mt where tgcol3 = 1')
|
tdLog.info('select * from ta_ch_mt5 where tgcol3 = 1')
|
||||||
tdSql.query('select * from $mt where tgcol3 = 1')
|
tdSql.query('select * from ta_ch_mt5 where tgcol3 = 1')
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
@ -556,8 +556,8 @@ class TDTestCase:
|
||||||
# TSIM: endi
|
# TSIM: endi
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol4 = '2'
|
# TSIM: sql select * from $mt where tgcol4 = '2'
|
||||||
tdLog.info('select * from $mt where tgcol4 = '2'')
|
tdLog.info("select * from ta_ch_mt5 where tgcol4 = '2'")
|
||||||
tdSql.query('select * from $mt where tgcol4 = '2'')
|
tdSql.query("select * from ta_ch_mt5 where tgcol4 = '2'")
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
@ -588,39 +588,39 @@ class TDTestCase:
|
||||||
# TSIM: $tb = $tbPrefix . $i
|
# TSIM: $tb = $tbPrefix . $i
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol1 = 1 -x step61
|
# TSIM: sql select * from $mt where tgcol1 = 1 -x step61
|
||||||
tdLog.info('select * from $mt where tgcol1 = 1 -x step61')
|
tdLog.info('select * from ta_ch_mt6 where tgcol1 = 1 -x step61')
|
||||||
tdSql.error('select * from $mt where tgcol1 = 11')
|
tdSql.error('select * from ta_ch_mt6 where tgcol1 = 11')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step61:
|
# TSIM: step61:
|
||||||
# TSIM: sql select * from $mt where tgcol2 = 1 -x step62
|
# TSIM: sql select * from $mt where tgcol2 = 1 -x step62
|
||||||
tdLog.info('select * from $mt where tgcol2 = 1 -x step62')
|
tdLog.info('select * from ta_ch_mt6 where tgcol2 = 1 -x step62')
|
||||||
tdSql.error('select * from $mt where tgcol2 = 12')
|
tdSql.error('select * from ta_ch_mt6 where tgcol2 = 12')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step62:
|
# TSIM: step62:
|
||||||
# TSIM: sql select * from $mt where tgcol3 = 1 -x step63
|
# TSIM: sql select * from $mt where tgcol3 = 1 -x step63
|
||||||
tdLog.info('select * from $mt where tgcol3 = 1 -x step63')
|
tdLog.info('select * from ta_ch_mt6 where tgcol3 = 1 -x step63')
|
||||||
tdSql.error('select * from $mt where tgcol3 = 13')
|
tdSql.error('select * from ta_ch_mt6 where tgcol3 = 13')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step63:
|
# TSIM: step63:
|
||||||
# TSIM: sql select * from $mt where tgcol4 = 1 -x step64
|
# TSIM: sql select * from $mt where tgcol4 = 1 -x step64
|
||||||
tdLog.info('select * from $mt where tgcol4 = 1 -x step64')
|
tdLog.info('select * from ta_ch_mt6 where tgcol4 = 1 -x step64')
|
||||||
tdSql.error('select * from $mt where tgcol4 = 14')
|
tdSql.error('select * from ta_ch_mt6 where tgcol4 = 14')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step64:
|
# TSIM: step64:
|
||||||
# TSIM: sql select * from $mt where tgcol5 = 1 -x step65
|
# TSIM: sql select * from $mt where tgcol5 = 1 -x step65
|
||||||
tdLog.info('select * from $mt where tgcol5 = 1 -x step65')
|
tdLog.info('select * from ta_ch_mt6 where tgcol5 = 1 -x step65')
|
||||||
tdSql.error('select * from $mt where tgcol5 = 15')
|
tdSql.error('select * from ta_ch_mt6 where tgcol5 = 15')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step65:
|
# TSIM: step65:
|
||||||
# TSIM: sql select * from $mt where tgcol6 = 1 -x step66
|
# TSIM: sql select * from $mt where tgcol6 = 1 -x step66
|
||||||
tdLog.info('select * from $mt where tgcol6 = 1 -x step66')
|
tdLog.info('select * from ta_ch_mt6 where tgcol6 = 1 -x step66')
|
||||||
tdSql.error('select * from $mt where tgcol6 = 16')
|
tdSql.error('select * from ta_ch_mt6 where tgcol6 = 16')
|
||||||
# TSIM: return -1
|
# TSIM: return -1
|
||||||
# TSIM: step66:
|
# TSIM: step66:
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol7 = '1'
|
# TSIM: sql select * from $mt where tgcol7 = '1'
|
||||||
tdLog.info('select * from $mt where tgcol7 = '1'')
|
tdLog.info("select * from ta_ch_mt6 where tgcol7 = '1'")
|
||||||
tdSql.query('select * from $mt where tgcol7 = '1'')
|
tdSql.query("select * from ta_ch_mt6 where tgcol7 = '1'")
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
@ -665,8 +665,8 @@ class TDTestCase:
|
||||||
# TSIM: endi
|
# TSIM: endi
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol8 = 2
|
# TSIM: sql select * from $mt where tgcol8 = 2
|
||||||
tdLog.info('select * from $mt where tgcol8 = 2')
|
tdLog.info('select * from ta_ch_mt6 where tgcol8 = 2')
|
||||||
tdSql.query('select * from $mt where tgcol8 = 2')
|
tdSql.query('select * from ta_ch_mt6 where tgcol8 = 2')
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
@ -711,8 +711,8 @@ class TDTestCase:
|
||||||
# TSIM: endi
|
# TSIM: endi
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol9 = '4'
|
# TSIM: sql select * from $mt where tgcol9 = '4'
|
||||||
tdLog.info('select * from $mt where tgcol9 = '4'')
|
tdLog.info("select * from ta_ch_mt6 where tgcol9 = '4'")
|
||||||
tdSql.query('select * from $mt where tgcol9 = '4'')
|
tdSql.query("select * from ta_ch_mt6 where tgcol9 = '4'")
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
@ -757,8 +757,8 @@ class TDTestCase:
|
||||||
# TSIM: endi
|
# TSIM: endi
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol10 = 5
|
# TSIM: sql select * from $mt where tgcol10 = 5
|
||||||
tdLog.info('select * from $mt where tgcol10 = 5')
|
tdLog.info('select * from ta_ch_mt6 where tgcol10 = 5')
|
||||||
tdSql.query('select * from $mt where tgcol10 = 5')
|
tdSql.query('select * from ta_ch_mt6 where tgcol10 = 5')
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
@ -803,8 +803,8 @@ class TDTestCase:
|
||||||
# TSIM: endi
|
# TSIM: endi
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: sql select * from $mt where tgcol11 = '6'
|
# TSIM: sql select * from $mt where tgcol11 = '6'
|
||||||
tdLog.info('select * from $mt where tgcol11 = '6'')
|
tdLog.info("select * from ta_ch_mt6 where tgcol11 = '6'")
|
||||||
tdSql.query('select * from $mt where tgcol11 = '6'')
|
tdSql.query("select * from ta_ch_mt6 where tgcol11 = '6'")
|
||||||
# TSIM: print $data01 $data02 $data03
|
# TSIM: print $data01 $data02 $data03
|
||||||
tdLog.info('$data01 $data02 $data03')
|
tdLog.info('$data01 $data02 $data03')
|
||||||
# TSIM: if $rows != 1 then
|
# TSIM: if $rows != 1 then
|
||||||
|
|
|
@ -53,7 +53,7 @@ endi
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 2000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -375,9 +375,9 @@ endi
|
||||||
print ======== step9
|
print ======== step9
|
||||||
print ======== step10
|
print ======== step10
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql use d2
|
sql use d2
|
||||||
sql describe tb
|
sql describe tb
|
||||||
|
|
|
@ -326,9 +326,9 @@ endi
|
||||||
print ======== step9
|
print ======== step9
|
||||||
print ======== step10
|
print ======== step10
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql use d1
|
sql use d1
|
||||||
sql describe tb
|
sql describe tb
|
||||||
|
|
|
@ -57,7 +57,8 @@ system sh/exec.sh -n dnode1 -s start
|
||||||
|
|
||||||
print =============== step3
|
print =============== step3
|
||||||
print ==> sleep 8 seconds to renew cache
|
print ==> sleep 8 seconds to renew cache
|
||||||
sleep 8000
|
sql reset query cache
|
||||||
|
sleep 1000
|
||||||
|
|
||||||
print =============== step4
|
print =============== step4
|
||||||
sql create database $db
|
sql create database $db
|
||||||
|
|
|
@ -89,9 +89,9 @@ endi
|
||||||
|
|
||||||
print =============== step4
|
print =============== step4
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 4000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
print =============== step5
|
print =============== step5
|
||||||
|
|
||||||
|
|
|
@ -157,9 +157,9 @@ endi
|
||||||
|
|
||||||
print =============== step4
|
print =============== step4
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 2000
|
sleep 5000
|
||||||
|
|
||||||
print =============== step5
|
print =============== step5
|
||||||
|
|
||||||
|
|
|
@ -129,9 +129,9 @@ endi
|
||||||
|
|
||||||
print =============== step4
|
print =============== step4
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 2000
|
sleep 5000
|
||||||
|
|
||||||
print ============== step5
|
print ============== step5
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ print =============== step4
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 5000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
print =============== step5
|
print =============== step5
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ print =============== step4
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 5000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
print =============== step5
|
print =============== step5
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ print =============== step4
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 5000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
print =============== step5
|
print =============== step5
|
||||||
|
|
||||||
|
|
|
@ -211,10 +211,10 @@ endi
|
||||||
print ============================ step7
|
print ============================ step7
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
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 dnode2 -s stop -x SIGINT
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
system sh/exec.sh -n dnode2 -s start
|
system sh/exec.sh -n dnode2 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
sleep 1000
|
sleep 1000
|
||||||
|
@ -334,10 +334,10 @@ endi
|
||||||
print ============================ step10
|
print ============================ step10
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
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 dnode2 -s stop -x SIGINT
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
system sh/exec.sh -n dnode2 -s start
|
system sh/exec.sh -n dnode2 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
sleep 1000
|
sleep 1000
|
||||||
|
|
|
@ -143,9 +143,9 @@ endi
|
||||||
|
|
||||||
print ============================ step7
|
print ============================ step7
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
sleep 1000
|
sleep 1000
|
||||||
|
@ -245,9 +245,9 @@ endi
|
||||||
|
|
||||||
print ============================ step10
|
print ============================ step10
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
sleep 1000
|
sleep 1000
|
||||||
|
|
|
@ -204,9 +204,9 @@ endi
|
||||||
|
|
||||||
print ============================ step7
|
print ============================ step7
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
sleep 1000
|
sleep 1000
|
||||||
|
@ -325,9 +325,9 @@ endi
|
||||||
|
|
||||||
print ============================ step10
|
print ============================ step10
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
sleep 1000
|
sleep 1000
|
||||||
|
|
|
@ -70,9 +70,9 @@ endi
|
||||||
print ============================ step3
|
print ============================ step3
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 2
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 2
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql create table db.t100 using db.st tags(0)
|
sql create table db.t100 using db.st tags(0)
|
||||||
sql create table db.t101 using db.st tags(1)
|
sql create table db.t101 using db.st tags(1)
|
||||||
|
@ -132,9 +132,9 @@ print ============================ step5
|
||||||
|
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 3
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 3
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql create table db.t200 using db.st tags(0)
|
sql create table db.t200 using db.st tags(0)
|
||||||
sql create table db.t201 using db.st tags(1)
|
sql create table db.t201 using db.st tags(1)
|
||||||
|
|
|
@ -50,9 +50,9 @@ endi
|
||||||
|
|
||||||
print ======== step2 stop dnode
|
print ======== step2 stop dnode
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode2 -s start
|
system sh/exec.sh -n dnode2 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql select * from tb
|
sql select * from tb
|
||||||
print ===> rows $rows
|
print ===> rows $rows
|
||||||
|
@ -112,9 +112,9 @@ endi
|
||||||
|
|
||||||
print ======== step5 stop dnode
|
print ======== step5 stop dnode
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode2 -s start
|
system sh/exec.sh -n dnode2 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql select * from tb
|
sql select * from tb
|
||||||
print ===> rows $rows
|
print ===> rows $rows
|
||||||
|
|
|
@ -43,7 +43,7 @@ endi
|
||||||
|
|
||||||
print ======= step3
|
print ======= step3
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
|
||||||
$x = 0
|
$x = 0
|
||||||
|
|
|
@ -70,7 +70,7 @@ endi
|
||||||
print ========== step3
|
print ========== step3
|
||||||
|
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
sleep 500
|
sleep 5000
|
||||||
sql drop dnode $hostname2
|
sql drop dnode $hostname2
|
||||||
sleep 2000
|
sleep 2000
|
||||||
|
|
||||||
|
@ -101,4 +101,5 @@ endi
|
||||||
sql_error select * from db.t1
|
sql_error select * from db.t1
|
||||||
sql_error select * from db.t9
|
sql_error select * from db.t9
|
||||||
|
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
|
@ -93,7 +93,7 @@ endi
|
||||||
|
|
||||||
print ================== dnode restart
|
print ================== dnode restart
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 5000
|
sleep 5000
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ endi
|
||||||
|
|
||||||
print ================= step10
|
print ================= step10
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 5000
|
sleep 5000
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ print ====== tables created
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ endw
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 4000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
|
|
||||||
|
|
|
@ -208,7 +208,7 @@ endi
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 2000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -81,7 +81,7 @@ endw
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 3000
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
|
|
|
@ -75,7 +75,7 @@ run general/parser/first_last_query.sim
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -60,7 +60,7 @@ run general/parser/interp_test.sim
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 2000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ run general/parser/lastrow_query.sim
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -61,7 +61,7 @@ run general/parser/limit_stb.sim
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 2000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -61,7 +61,7 @@ run general/parser/limit1_stb.sim
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 2000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ run general/parser/limit1_stb.sim
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 2000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
|
|
||||||
return
|
return
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ sql insert into $tb values ('2018-09-17 09:00:00.030', 3)
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -31,7 +31,7 @@ run general/parser/single_row_in_tb_query.sim
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 2000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ run general/parser/slimit_query.sim
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -57,7 +57,7 @@ run general/parser/slimit1_query.sim
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -170,7 +170,7 @@ endi
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 2000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -68,7 +68,7 @@ run general/parser/tbnameIn_query.sim
|
||||||
|
|
||||||
print ================== restart server to commit data into disk
|
print ================== restart server to commit data into disk
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 2000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
print ================== server restart completed
|
print ================== server restart completed
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ endi
|
||||||
|
|
||||||
sleep 1000
|
sleep 1000
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 6000
|
sleep 6000
|
||||||
|
|
||||||
|
|
|
@ -213,11 +213,4 @@ if $rows != 0 then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
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 dnode6 -s stop -x SIGINT
|
|
||||||
system sh/exec.sh -n dnode7 -s stop -x SIGINT
|
|
||||||
system sh/exec.sh -n dnode8 -s stop -x SIGINT
|
|
|
@ -824,7 +824,7 @@ endi
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
sleep 5000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
print =============== step1
|
print =============== step1
|
||||||
$i = 0
|
$i = 0
|
||||||
|
|
|
@ -0,0 +1,105 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table to max tables
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 16
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
sql create database $db replica 3
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 10
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
print ============== step3: create one table, should return error for not more vnode
|
||||||
|
sql_error create table tbm using $stb tags( 10000 )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,105 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table to max tables
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 16
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
sql create database $db replica 3
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 10
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
print ============== step3: drop dnode4, should return error for not more dnode
|
||||||
|
sql_error drop dnode $hostname4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,309 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 10
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 10
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: drop the middle table 5
|
||||||
|
sql drop table tb5
|
||||||
|
$totalRows = $totalRows - 10
|
||||||
|
sleep 6000
|
||||||
|
|
||||||
|
print ============== step4: insert data into other tables
|
||||||
|
$tsStart = 1420041610000
|
||||||
|
$i = 0
|
||||||
|
$tblNum = 5
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
#sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
$i = 6
|
||||||
|
$tblNum = 10
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
#sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
print ============== step5: create the middle table 5 and insert data
|
||||||
|
sql create table tb5 using $stb tags( 5 )
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$tsStart = 1420041620000
|
||||||
|
$i = 5
|
||||||
|
$tblNum = 6
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
#sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select count(*) from tb5
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step6: drop the first table 0
|
||||||
|
sql drop table tb0
|
||||||
|
$totalRows = $totalRows - 20
|
||||||
|
sleep 6000
|
||||||
|
|
||||||
|
print ============== step7: insert data into other tables
|
||||||
|
$tsStart = 1420041630000
|
||||||
|
$i = 1
|
||||||
|
$tblNum = 10
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
#sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select count(*) from tb5
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step8: create the first table 0 and insert data
|
||||||
|
sql create table tb0 using $stb tags( 0 )
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$tsStart = 1420041640000
|
||||||
|
$i = 0
|
||||||
|
$tblNum = 10
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
#sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select count(*) from tb0
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step9: drop the last table 9
|
||||||
|
sql drop table tb9
|
||||||
|
$totalRows = $totalRows - 40
|
||||||
|
sleep 6000
|
||||||
|
|
||||||
|
print ============== step10: insert data into other tables
|
||||||
|
$tsStart = 1420041650000
|
||||||
|
$i = 0
|
||||||
|
$tblNum = 9
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
#sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
print ============== step11: create the last table 9 and insert data
|
||||||
|
sql create table tb9 using $stb tags( 9 )
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$tsStart = 1420041660000
|
||||||
|
$i = 0
|
||||||
|
$tblNum = 10
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
#sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select count(*) from tb9
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
|
@ -0,0 +1,168 @@
|
||||||
|
system sh/stop_dnodes.sh
|
||||||
|
system sh/deploy.sh -n dnode1 -i 1
|
||||||
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
|
system sh/deploy.sh -n dnode4 -i 4
|
||||||
|
system sh/deploy.sh -n dnode5 -i 5
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
||||||
|
system sh/cfg.sh -n dnode5 -c numOfMPeers -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 1
|
||||||
|
system sh/cfg.sh -n dnode5 -c walLevel -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode5 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode5 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c 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/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode5 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c offlineThreshold -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c offlineThreshold -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c offlineThreshold -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c offlineThreshold -v 10
|
||||||
|
system sh/cfg.sh -n dnode5 -c offlineThreshold -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c enableCoreFile -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c enableCoreFile -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c enableCoreFile -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c enableCoreFile -v 1
|
||||||
|
system sh/cfg.sh -n dnode5 -c enableCoreFile -v 1
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3 and add into cluster, then create database, create table , and insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$rowNum = 10
|
||||||
|
$tblNum = 16
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
sql create database $db replica 2
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
print info: select count(*) from $stb
|
||||||
|
sleep 1000
|
||||||
|
sql reset query cache
|
||||||
|
sleep 1000
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4, after timerout dnode4 will be auto-dropped.
|
||||||
|
### The script using down port to stop the network is invalid, so temp it stops the service instead
|
||||||
|
system sh/exec.sh -n dnode4 -s stop
|
||||||
|
#system sh/port.sh -p 7400 -s down
|
||||||
|
sleep 12000
|
||||||
|
|
||||||
|
wait_dnode4_dropped:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_dropped
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode2Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_dropped
|
||||||
|
endi
|
||||||
|
if $dnode3Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_dropped
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: restart dnode4, but there no dnode4 in cluster
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
|
@ -0,0 +1,137 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 2, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 10000
|
||||||
|
$sleepTimer = 10000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
sql create database $db replica 2 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 100
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
sleep 1000
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: drop dnode4, then check rows
|
||||||
|
#system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sql drop dnode $hostname4
|
||||||
|
sleep $sleepTimer
|
||||||
|
|
||||||
|
wait_dnode4_dropped:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_dropped
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode2Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_dropped
|
||||||
|
endi
|
||||||
|
if $dnode3Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_dropped
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql reset query cache
|
||||||
|
sql select count(*) from $stb
|
||||||
|
sleep 1000
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print drop dnode $hostname3, return error: not drop dnode for repica is 2, need 2 dnodes.
|
||||||
|
sql_error drop dnode $hostname3
|
|
@ -0,0 +1,224 @@
|
||||||
|
system sh/stop_dnodes.sh
|
||||||
|
system sh/deploy.sh -n dnode1 -i 1
|
||||||
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
|
system sh/deploy.sh -n dnode4 -i 4
|
||||||
|
system sh/deploy.sh -n dnode5 -i 5
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
||||||
|
system sh/cfg.sh -n dnode5 -c numOfMPeers -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 1
|
||||||
|
system sh/cfg.sh -n dnode5 -c walLevel -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode5 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode5 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c 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/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode5 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c offlineThreshold -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c offlineThreshold -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c offlineThreshold -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c offlineThreshold -v 10
|
||||||
|
system sh/cfg.sh -n dnode5 -c offlineThreshold -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c enableCoreFile -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c enableCoreFile -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c enableCoreFile -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c enableCoreFile -v 1
|
||||||
|
system sh/cfg.sh -n dnode5 -c enableCoreFile -v 1
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3 and add into cluster, then create database, create table , and insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$rowNum = 10
|
||||||
|
$tblNum = 16
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
sql create database $db replica 2
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x )
|
||||||
|
$x = $x + 10
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
print info: select count(*) from $stb
|
||||||
|
sleep 1000
|
||||||
|
sql reset query cache
|
||||||
|
sleep 1000
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4, after timerout dnode4 will be auto-dropped.
|
||||||
|
system sh/exec.sh -n dnode4 -s stop
|
||||||
|
sleep 12000
|
||||||
|
|
||||||
|
wait_dnode4_dropped:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_dropped
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode2Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_dropped
|
||||||
|
endi
|
||||||
|
if $dnode3Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_dropped
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: restart dnode4, but there are not dnode4 in cluster
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: recreate dnode4 into cluster, result should fail
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 12000
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: remove dnode4 director, then recreate dnode4 into cluster, result should success
|
||||||
|
system sh/exec.sh -n dnode4 -s stop
|
||||||
|
system rm -rf ../../../sim/dnode4
|
||||||
|
|
||||||
|
system sh/deploy.sh -n dnode4 -i 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c offlineThreshold -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c enableCoreFile -v 1
|
||||||
|
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 6000
|
||||||
|
|
||||||
|
wait_dnode4_ready:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_6
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode2Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
if $dnode3Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
|
@ -0,0 +1,226 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3 and add into cluster , then create database with replica 2, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
#system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
#sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 100
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
sleep 1000
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode3, then corrupt vnode data file in dnode3
|
||||||
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode3_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode3Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode3_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode3Vtatus = $data4_2
|
||||||
|
$dnode2Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode3Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode2Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
# del the second row
|
||||||
|
system sed '2d' ../../../sim/dnode3/data/vnode/vnode2/tsdb/data/v1849.data
|
||||||
|
sleep 1000
|
||||||
|
|
||||||
|
print ============== step4: restart dnode3, and run query
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode3_reready:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_reready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode3Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_reready
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: stop dnode2, and check if dnode3 sync success
|
||||||
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode2_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode2Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode3_vgroup_master:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_master
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode2Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode2Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_master
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_master
|
||||||
|
endi
|
|
@ -0,0 +1,154 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3 and add into cluster , then create database with replica 2, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
#system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
#sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 100
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
sleep 1000
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: corrupt vnode data file in dnode3, not stop dnode3
|
||||||
|
# del the second row
|
||||||
|
system sed '2d' ../../../sim/dnode3/data/vnode/vnode2/tsdb/data/v1849.data
|
||||||
|
sleep 1000
|
||||||
|
|
||||||
|
print ============== step4: run query
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: stop dnode2, and check if dnode3 sync success
|
||||||
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode2_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode2Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode3_vgroup_master:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_master
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode2Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode2Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_master
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_master
|
||||||
|
endi
|
|
@ -0,0 +1,273 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 2, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 100
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
sleep 1000
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4, and remove its vnodeX subdirector
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
system rm -rf ../../../sim/dnode4/data/vnode/*
|
||||||
|
sleep 1000
|
||||||
|
|
||||||
|
print ============== step4: restart dnode4, waiting sync end
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_reready:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_reready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_reready
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_slave:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_slave
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
print dnode4Vtatus: $dnode4Vtatus
|
||||||
|
print dnode3Vtatus: $dnode3Vtatus
|
||||||
|
if $dnode4Vtatus != slave then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_slave
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_slave
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: stop dnode3/dnode2, and check rows
|
||||||
|
system sh/exec.sh -n dnode2 -s stop
|
||||||
|
system sh/exec.sh -n dnode3 -s stop
|
||||||
|
sleep $sleepTimer
|
||||||
|
|
||||||
|
wait_dnode23_offline:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_offline
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode2Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_offline
|
||||||
|
endi
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_master:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_master
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
print dnode4Vtatus: $dnode4Vtatus
|
||||||
|
print dnode3Vtatus: $dnode3Vtatus
|
||||||
|
if $dnode4Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_master
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_master
|
||||||
|
endi
|
||||||
|
|
||||||
|
# check using select
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql insert into $tb values ( now , 20000 ) ( now + 1a, 20001 ) ( now + 2a, 20002 )
|
||||||
|
$totalRows = $totalRows + 3
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
|
@ -0,0 +1,205 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
#system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
#sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: alter table and insert more data rows
|
||||||
|
sql alter table $stb drop column c1
|
||||||
|
sql alter table $stb add column f1 double
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql inset into $tb values (now, 10001) (now + 1s, 10002) (now + 2s, 10003) (now + 3s, 10004)
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$addRows = 4 * $tblNum
|
||||||
|
$totalRows = $totalRows + $addRows
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4, waiting dnode4 synced
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
|
||||||
|
wait_dnode4_ready:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
#$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
|
||||||
|
sql reset query cache
|
||||||
|
|
||||||
|
$cnt = 0
|
||||||
|
wait_table_dropped:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select count(*) from $stb
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
print data00: $data00 totalRows: $totalRows
|
||||||
|
sleep 2000
|
||||||
|
goto wait_table_dropped
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,217 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
#system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
#sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: create more tables and insert data rows
|
||||||
|
$tsStart = $tsEnd + 1000
|
||||||
|
$i = $tblNum
|
||||||
|
$tblNum = $tblNum * 2
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4, waiting dnode4 synced
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
|
||||||
|
wait_dnode4_ready:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
#$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
|
||||||
|
sql reset query cache
|
||||||
|
|
||||||
|
$cnt = 0
|
||||||
|
wait_table_altered:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select count(*) from $stb
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
print data00: $data00
|
||||||
|
sleep 2000
|
||||||
|
goto wait_table_altered
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,169 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 2, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
#system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
#sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 2 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 2 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: drop db
|
||||||
|
sql drop database $db
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
sql reset query cache
|
||||||
|
$cnt = 0
|
||||||
|
wait_database_dropped:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql show databases
|
||||||
|
if $rows != 0 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_database_dropped
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,203 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
#system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
#sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: drop some tables
|
||||||
|
$i = 1
|
||||||
|
$dropTblNum = 21
|
||||||
|
|
||||||
|
while $i < $dropTblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql drop table if exists $tb
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tblNum = $tblNum - 20
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4, waiting dnode4 synced
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
|
||||||
|
wait_dnode4_ready:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
#$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
|
||||||
|
sql reset query cache
|
||||||
|
|
||||||
|
$cnt = 0
|
||||||
|
wait_table_dropped:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select count(tbname) from $stb
|
||||||
|
if $data00 != $tblNum then
|
||||||
|
print data00: $data00 tblNum: $tblNum
|
||||||
|
sleep 2000
|
||||||
|
goto wait_table_dropped
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,205 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: alter table and insert more data rows
|
||||||
|
sql alter table $stb drop column c1
|
||||||
|
sql alter table $stb add column f1 double
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql inset into $tb values (now, 10001) (now + 1s, 10002) (now + 2s, 10003) (now + 3s, 10004)
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$addRows = 4 * $tblNum
|
||||||
|
$totalRows = $totalRows + $addRows
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4, waiting dnode4 synced
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
|
||||||
|
wait_dnode4_ready:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
#$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
|
||||||
|
sql reset query cache
|
||||||
|
|
||||||
|
$cnt = 0
|
||||||
|
wait_table_dropped:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select count(*) from $stb
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
print data00: $data00 totalRows: $totalRows
|
||||||
|
sleep 2000
|
||||||
|
goto wait_table_dropped
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,217 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: create more tables and insert data rows
|
||||||
|
$tsStart = $tsEnd + 1000
|
||||||
|
$i = $tblNum
|
||||||
|
$tblNum = $tblNum * 2
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4, waiting dnode4 synced
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
|
||||||
|
wait_dnode4_ready:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
#$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
|
||||||
|
sql reset query cache
|
||||||
|
|
||||||
|
$cnt = 0
|
||||||
|
wait_table_altered:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select count(*) from $stb
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
print data00: $data00
|
||||||
|
sleep 2000
|
||||||
|
goto wait_table_altered
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,169 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: drop db
|
||||||
|
sql drop database $db
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
sql reset query cache
|
||||||
|
$cnt = 0
|
||||||
|
wait_database_dropped:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql show databases
|
||||||
|
if $rows != 0 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_database_dropped
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,203 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: drop some tables
|
||||||
|
$i = 1
|
||||||
|
$dropTblNum = 21
|
||||||
|
|
||||||
|
while $i < $dropTblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql drop table if exists $tb
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tblNum = $tblNum - 20
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4, waiting dnode4 synced
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
|
||||||
|
wait_dnode4_ready:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
#$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_ready
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
|
||||||
|
sql reset query cache
|
||||||
|
|
||||||
|
$cnt = 0
|
||||||
|
wait_table_dropped:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select count(tbname) from $stb
|
||||||
|
if $data00 != $tblNum then
|
||||||
|
print data00: $data00 tblNum: $tblNum
|
||||||
|
sleep 2000
|
||||||
|
goto wait_table_dropped
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,193 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
#system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
#sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: insert more data rows
|
||||||
|
$tsStart = $tsEnd + 1000
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4, while alter table and insert data in other thead when dnode4 is syncing
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
run_back unique/arbitrator/sync_replica_alterTable_background_add.sim
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
#in background.sim, add one column and insert 200 rows
|
||||||
|
$totalRows = $totalRows + 200
|
||||||
|
|
||||||
|
$cnt = 0
|
||||||
|
wait_table_altered:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select count(*) from $stb
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
print data00: $data00
|
||||||
|
sleep 2000
|
||||||
|
goto wait_table_altered
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,193 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
#system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
#sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: insert more data rows
|
||||||
|
$tsStart = $tsEnd + 1000
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4, while alter table and insert data in other thead when dnode4 is syncing
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
run_back unique/arbitrator/sync_replica_alterTable_background_drop.sim
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
#in background.sim, drop one column and add one new column, then insert 200 rows
|
||||||
|
$totalRows = $totalRows + 200
|
||||||
|
|
||||||
|
$cnt = 0
|
||||||
|
wait_table_altered:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select count(*) from $stb
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
print data00: $data00
|
||||||
|
sleep 2000
|
||||||
|
goto wait_table_altered
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,193 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: insert more data rows
|
||||||
|
$tsStart = $tsEnd + 1000
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4, while alter table and insert data in other thead when dnode4 is syncing
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
run_back unique/arbitrator/sync_replica_alterTable_background_add.sim
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
#in background.sim, add one column and insert 200 rows
|
||||||
|
$totalRows = $totalRows + 200
|
||||||
|
|
||||||
|
$cnt = 0
|
||||||
|
wait_table_altered:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select count(*) from $stb
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
print data00: $data00 totalRows: $totalRows
|
||||||
|
sleep 2000
|
||||||
|
goto wait_table_altered
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,193 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
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/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 100
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
print create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 500
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
$tsEnd = 0
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
$tsEnd = $tsStart + $totalRows / $tblNum
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
||||||
|
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
||||||
|
#$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
#$dnode5Status = $data4_5
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: insert more data rows
|
||||||
|
$tsStart = $tsEnd + 1000
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: restart dnode4, while alter table and insert data in other thead when dnode4 is syncing
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
run_back unique/arbitrator/sync_replica_alterTable_background_drop.sim
|
||||||
|
|
||||||
|
print ============== step6: check result
|
||||||
|
#in background.sim, drop one column and add one new column, then insert 200 rows
|
||||||
|
$totalRows = $totalRows + 200
|
||||||
|
|
||||||
|
$cnt = 0
|
||||||
|
wait_table_altered:
|
||||||
|
$cnt = $cnt + 1
|
||||||
|
if $cnt == 20 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select count(*) from $stb
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
print data00: $data00
|
||||||
|
sleep 2000
|
||||||
|
goto wait_table_altered
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
$stb = stb
|
||||||
|
print =============== sync_replica_alterTable_background_add.sim step0: alter table and insert data
|
||||||
|
$totalTableNum = 100
|
||||||
|
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
#sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
print alter table $stb add column f1 float
|
||||||
|
sql alter table $stb add column f1 float
|
||||||
|
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$alterTblNum = 51
|
||||||
|
|
||||||
|
$i = 1
|
||||||
|
while $i < $alterTblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql insert into $tb values (now, 10001, 10001) (now + 1s, 10002, 10002) (now + 2s, 10003, 10003) (now + 3s, 10004, 10004)
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
$stb = stb
|
||||||
|
print =============== sync_replica_alterTable_background_drop.sim step0: alter table and insert data
|
||||||
|
$totalTableNum = 100
|
||||||
|
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
#sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
sql alter table $stb drop column c1
|
||||||
|
sql alter table $stb add column f1 double
|
||||||
|
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$alterTblNum = 51
|
||||||
|
|
||||||
|
$i = 1
|
||||||
|
while $i < $alterTblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql insert into $tb values (now, 10001) (now + 1s, 10002) (now + 2s, 10003) (now + 3s, 10004)
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -171,6 +171,7 @@ if $data2_3 != 2 then
|
||||||
endi
|
endi
|
||||||
|
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
sleep 5000
|
||||||
|
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
sleep 1000
|
sleep 1000
|
||||||
|
@ -227,6 +228,7 @@ if $data2_3 != null then
|
||||||
endi
|
endi
|
||||||
|
|
||||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
|
sleep 5000
|
||||||
|
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
sleep 1000
|
sleep 1000
|
||||||
|
|
|
@ -163,7 +163,7 @@ print dnode4 ==> $dnode4Role
|
||||||
print ============================== step5
|
print ============================== step5
|
||||||
print ========= add dnode2
|
print ========= add dnode2
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode3 -s start
|
system sh/exec.sh -n dnode3 -s start
|
||||||
sql create dnode $hostname3
|
sql create dnode $hostname3
|
||||||
sleep 9000
|
sleep 9000
|
||||||
|
|
|
@ -381,6 +381,7 @@ if $dnode7Vnodes != 3 then
|
||||||
endi
|
endi
|
||||||
|
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
|
sleep 5000
|
||||||
|
|
||||||
print ============================== step11
|
print ============================== step11
|
||||||
print ========= add db4
|
print ========= add db4
|
||||||
|
@ -429,6 +430,7 @@ if $dnode7Vnodes != 4 then
|
||||||
endi
|
endi
|
||||||
|
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
|
sleep 5000
|
||||||
|
|
||||||
print ============================== step13
|
print ============================== step13
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
|
|
|
@ -50,7 +50,7 @@ print ======== step2 stop dnode
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
sleep 5000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode2 -s start
|
system sh/exec.sh -n dnode2 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql select * from tb order by ts desc
|
sql select * from tb order by ts desc
|
||||||
print ===> rows $rows
|
print ===> rows $rows
|
||||||
|
@ -101,7 +101,7 @@ print ======== step5 stop dnode
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
sleep 5000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode2 -s start
|
system sh/exec.sh -n dnode2 -s start
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql select * from tb
|
sql select * from tb
|
||||||
print ===> rows $rows
|
print ===> rows $rows
|
||||||
|
|
|
@ -69,7 +69,7 @@ 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 dnode2 -s stop -x SIGINT
|
||||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
|
|
||||||
sleep 1000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
system sh/exec.sh -n dnode2 -s start
|
system sh/exec.sh -n dnode2 -s start
|
||||||
system sh/exec.sh -n dnode3 -s start
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
|
|
@ -171,7 +171,7 @@ print ========= step6
|
||||||
system sh/exec.sh -n dnode2 -s start
|
system sh/exec.sh -n dnode2 -s start
|
||||||
sleep 5000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql insert into d1.t1 values(1589529000014, 4)
|
sql insert into d1.t1 values(1589529000014, 4)
|
||||||
sql insert into d2.t2 values(1589529000024, 4)
|
sql insert into d2.t2 values(1589529000024, 4)
|
||||||
|
@ -206,7 +206,7 @@ print ========= step7
|
||||||
system sh/exec.sh -n dnode3 -s start
|
system sh/exec.sh -n dnode3 -s start
|
||||||
sleep 5000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql insert into d1.t1 values(1589529000015, 5)
|
sql insert into d1.t1 values(1589529000015, 5)
|
||||||
sql insert into d2.t2 values(1589529000025, 5)
|
sql insert into d2.t2 values(1589529000025, 5)
|
||||||
|
@ -237,7 +237,7 @@ print ========= step8
|
||||||
system sh/exec.sh -n dnode4 -s start
|
system sh/exec.sh -n dnode4 -s start
|
||||||
sleep 5000
|
sleep 5000
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql insert into d1.t1 values(1589529000016, 6)
|
sql insert into d1.t1 values(1589529000016, 6)
|
||||||
sql insert into d2.t2 values(1589529000026, 6)
|
sql insert into d2.t2 values(1589529000026, 6)
|
||||||
|
|
|
@ -118,7 +118,7 @@ endi
|
||||||
|
|
||||||
print ======== step9 stop dnode2
|
print ======== step9 stop dnode2
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
sleep 3000
|
sleep 5000
|
||||||
|
|
||||||
sql insert into d5.t5 values(now, 3)
|
sql insert into d5.t5 values(now, 3)
|
||||||
sql insert into d2.t2 values(now, 3)
|
sql insert into d2.t2 values(now, 3)
|
||||||
|
|
|
@ -84,6 +84,7 @@ if $data2_3 != 2 then
|
||||||
endi
|
endi
|
||||||
|
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
sleep 5000
|
||||||
|
|
||||||
print ========== step3
|
print ========== step3
|
||||||
sql create dnode $hostname4
|
sql create dnode $hostname4
|
||||||
|
@ -210,6 +211,7 @@ if $data2_5 != 3 then
|
||||||
endi
|
endi
|
||||||
|
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
sleep 5000
|
||||||
|
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
sleep 1000
|
sleep 1000
|
||||||
|
|
|
@ -99,7 +99,7 @@ if $data2_4 != 2 then
|
||||||
endi
|
endi
|
||||||
|
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
sleep 5000
|
||||||
print ========== step
|
print ========== step
|
||||||
sql create dnode $hostname5
|
sql create dnode $hostname5
|
||||||
system sh/exec.sh -n dnode5 -s start
|
system sh/exec.sh -n dnode5 -s start
|
||||||
|
@ -239,6 +239,7 @@ if $data2_5 != 3 then
|
||||||
endi
|
endi
|
||||||
|
|
||||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
|
sleep 5000
|
||||||
|
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
sleep 1000
|
sleep 1000
|
||||||
|
|
|
@ -140,6 +140,7 @@ if $data2_3 != 3 then
|
||||||
endi
|
endi
|
||||||
|
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
sleep 5000
|
||||||
|
|
||||||
sql reset query cache
|
sql reset query cache
|
||||||
sleep 1000
|
sleep 1000
|
||||||
|
|
|
@ -110,6 +110,7 @@ if $data2_2 != null then
|
||||||
endi
|
endi
|
||||||
|
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
sleep 5000
|
||||||
|
|
||||||
print ========== step5
|
print ========== step5
|
||||||
sql create dnode $hostname4
|
sql create dnode $hostname4
|
||||||
|
|
|
@ -76,7 +76,7 @@ endi
|
||||||
print ========== step3
|
print ========== step3
|
||||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
sql drop dnode $hostname2
|
sql drop dnode $hostname2
|
||||||
sleep 4000
|
sleep 5000
|
||||||
|
|
||||||
sql show dnodes
|
sql show dnodes
|
||||||
print dnode1 openVnodes $data2_1
|
print dnode1 openVnodes $data2_1
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue