Merge branch develop into test/jenkins
This commit is contained in:
commit
d691870372
|
@ -66,6 +66,77 @@ static bool bnCheckFree(SDnodeObj *pDnode) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void bnSwapVnodeGid(SVnodeGid *pVnodeGid1, SVnodeGid *pVnodeGid2) {
|
||||||
|
SVnodeGid tmp = *pVnodeGid1;
|
||||||
|
*pVnodeGid1 = *pVnodeGid2;
|
||||||
|
*pVnodeGid2 = tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void bnAdjustVnodeIndex(SVgObj *pInVg) {
|
||||||
|
int32_t d0Id = pInVg->vnodeGid[0].dnodeId;
|
||||||
|
int32_t d1Id = pInVg->vnodeGid[1].dnodeId;
|
||||||
|
int32_t d2Id = pInVg->vnodeGid[2].dnodeId;
|
||||||
|
|
||||||
|
int32_t vgId = pInVg->vgId;
|
||||||
|
int32_t d0Num = 0;
|
||||||
|
int32_t d1Num = 0;
|
||||||
|
int32_t d2Num = 0;
|
||||||
|
|
||||||
|
void *pIter = NULL;
|
||||||
|
while (1) {
|
||||||
|
SVgObj *pVgroup = NULL;
|
||||||
|
pIter = mnodeGetNextVgroup(pIter, &pVgroup);
|
||||||
|
if (pVgroup == NULL) break;
|
||||||
|
|
||||||
|
if (pVgroup->vgId != vgId) {
|
||||||
|
if (pVgroup->vnodeGid[0].dnodeId == d0Id) d0Num++;
|
||||||
|
if (pVgroup->vnodeGid[0].dnodeId == d1Id) d1Num++;
|
||||||
|
if (pVgroup->vnodeGid[0].dnodeId == d2Id) d2Num++;
|
||||||
|
}
|
||||||
|
|
||||||
|
mnodeDecVgroupRef(pVgroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pInVg->numOfVnodes == 1) {
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pInVg->numOfVnodes == 2) {
|
||||||
|
mDebug("vgId:%d, dnode:%d num:%d dnode:%d num:%d", pInVg->vgId, d0Id, d0Num, d1Id, d1Num);
|
||||||
|
if (d0Num > d1Num) {
|
||||||
|
mDebug("vgId:%d, adjust vnode index 0 to 1", pInVg->vgId);
|
||||||
|
bnSwapVnodeGid(&pInVg->vnodeGid[0], &pInVg->vnodeGid[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pInVg->numOfVnodes >= 3) {
|
||||||
|
mDebug("vgId:%d, dnode:%d num:%d dnode:%d num:%d dnode:%d num:%d", pInVg->vgId, d0Id, d0Num, d1Id, d1Num, d2Id, d2Num);
|
||||||
|
if (d0Num <= d1Num && d0Num <= d2Num) {
|
||||||
|
if (d1Num > d2Num) {
|
||||||
|
mDebug("vgId:%d, adjust vnode index 1 to 2", pInVg->vgId);
|
||||||
|
bnSwapVnodeGid(&pInVg->vnodeGid[1], &pInVg->vnodeGid[2]);
|
||||||
|
}
|
||||||
|
} else if (d1Num <= d2Num && d1Num <= d0Num) {
|
||||||
|
mDebug("vgId:%d, adjust vnode index 0 to 1", pInVg->vgId);
|
||||||
|
bnSwapVnodeGid(&pInVg->vnodeGid[0], &pInVg->vnodeGid[1]);
|
||||||
|
if (d0Num > d2Num) {
|
||||||
|
mDebug("vgId:%d, adjust vnode index 1 to 2", pInVg->vgId);
|
||||||
|
bnSwapVnodeGid(&pInVg->vnodeGid[1], &pInVg->vnodeGid[2]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mDebug("vgId:%d, adjust vnode index 0 to 2", pInVg->vgId);
|
||||||
|
bnSwapVnodeGid(&pInVg->vnodeGid[0], &pInVg->vnodeGid[2]);
|
||||||
|
if (d1Num > d0Num) {
|
||||||
|
mDebug("vgId:%d, adjust vnode index 1 to 2", pInVg->vgId);
|
||||||
|
bnSwapVnodeGid(&pInVg->vnodeGid[1], &pInVg->vnodeGid[2]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < pInVg->numOfVnodes; ++i) {
|
||||||
|
mDebug("vgId:%d index:%d dnodeId:%d", pInVg->vgId, i, pInVg->vnodeGid[i].dnodeId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void bnDiscardVnode(SVgObj *pVgroup, SVnodeGid *pVnodeGid) {
|
static void bnDiscardVnode(SVgObj *pVgroup, SVnodeGid *pVnodeGid) {
|
||||||
mDebug("vgId:%d, dnode:%d is dropping", pVgroup->vgId, pVnodeGid->dnodeId);
|
mDebug("vgId:%d, dnode:%d is dropping", pVgroup->vgId, pVnodeGid->dnodeId);
|
||||||
|
|
||||||
|
@ -88,15 +159,10 @@ static void bnDiscardVnode(SVgObj *pVgroup, SVnodeGid *pVnodeGid) {
|
||||||
memcpy(pVgroup->vnodeGid, vnodeGid, TSDB_MAX_REPLICA * sizeof(SVnodeGid));
|
memcpy(pVgroup->vnodeGid, vnodeGid, TSDB_MAX_REPLICA * sizeof(SVnodeGid));
|
||||||
pVgroup->numOfVnodes = numOfVnodes;
|
pVgroup->numOfVnodes = numOfVnodes;
|
||||||
|
|
||||||
|
bnAdjustVnodeIndex(pVgroup);
|
||||||
mnodeUpdateVgroup(pVgroup);
|
mnodeUpdateVgroup(pVgroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bnSwapVnodeGid(SVnodeGid *pVnodeGid1, SVnodeGid *pVnodeGid2) {
|
|
||||||
SVnodeGid tmp = *pVnodeGid1;
|
|
||||||
*pVnodeGid1 = *pVnodeGid2;
|
|
||||||
*pVnodeGid2 = tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t bnAllocVnodes(SVgObj *pVgroup) {
|
int32_t bnAllocVnodes(SVgObj *pVgroup) {
|
||||||
int32_t dnode = 0;
|
int32_t dnode = 0;
|
||||||
int32_t vnodes = 0;
|
int32_t vnodes = 0;
|
||||||
|
@ -147,6 +213,7 @@ int32_t bnAllocVnodes(SVgObj *pVgroup) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bnAdjustVnodeIndex(pVgroup);
|
||||||
bnReleaseDnodes();
|
bnReleaseDnodes();
|
||||||
bnUnLock();
|
bnUnLock();
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
|
@ -233,6 +300,7 @@ static int32_t bnAddVnode(SVgObj *pVgroup, SDnodeObj *pSrcDnode, SDnodeObj *pDes
|
||||||
vnodeGids[numOfVnodes].pDnode = pDestDnode;
|
vnodeGids[numOfVnodes].pDnode = pDestDnode;
|
||||||
numOfVnodes++;
|
numOfVnodes++;
|
||||||
|
|
||||||
|
// move the src vnode to the end
|
||||||
for (int32_t v = 0; v < numOfVnodes; ++v) {
|
for (int32_t v = 0; v < numOfVnodes; ++v) {
|
||||||
if (pSrcDnode != NULL && pSrcDnode->dnodeId == vnodeGids[v].dnodeId) {
|
if (pSrcDnode != NULL && pSrcDnode->dnodeId == vnodeGids[v].dnodeId) {
|
||||||
bnSwapVnodeGid(&vnodeGids[v], &vnodeGids[numOfVnodes - 1]);
|
bnSwapVnodeGid(&vnodeGids[v], &vnodeGids[numOfVnodes - 1]);
|
||||||
|
@ -241,6 +309,11 @@ static int32_t bnAddVnode(SVgObj *pVgroup, SDnodeObj *pSrcDnode, SDnodeObj *pDes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// adjust the vgroup postion
|
||||||
|
if (pSrcDnode == NULL) {
|
||||||
|
bnAdjustVnodeIndex(pVgroup);
|
||||||
|
}
|
||||||
|
|
||||||
memcpy(&pVgroup->vnodeGid, &vnodeGids, sizeof(SVnodeGid) * TSDB_MAX_REPLICA);
|
memcpy(&pVgroup->vnodeGid, &vnodeGids, sizeof(SVnodeGid) * TSDB_MAX_REPLICA);
|
||||||
pVgroup->numOfVnodes = numOfVnodes;
|
pVgroup->numOfVnodes = numOfVnodes;
|
||||||
atomic_add_fetch_32(&pDestDnode->openVnodes, 1);
|
atomic_add_fetch_32(&pDestDnode->openVnodes, 1);
|
||||||
|
|
|
@ -1413,13 +1413,25 @@ static void parseFileSendDataBlock(void *param, TAOS_RES *tres, int code) {
|
||||||
if (taos_errno(pSql) != TSDB_CODE_SUCCESS) { // handle error
|
if (taos_errno(pSql) != TSDB_CODE_SUCCESS) { // handle error
|
||||||
assert(taos_errno(pSql) == code);
|
assert(taos_errno(pSql) == code);
|
||||||
|
|
||||||
taos_free_result(pSql);
|
do {
|
||||||
tfree(pSupporter);
|
if (code == TSDB_CODE_TDB_TABLE_RECONFIGURE) {
|
||||||
fclose(fp);
|
assert(pSql->res.numOfRows == 0);
|
||||||
|
int32_t errc = fseek(fp, 0, SEEK_SET);
|
||||||
|
if (errc < 0) {
|
||||||
|
tscError("%p failed to seek SEEK_SET since:%s", pSql, tstrerror(errno));
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pParentSql->res.code = code;
|
taos_free_result(pSql);
|
||||||
tscQueueAsyncRes(pParentSql);
|
tfree(pSupporter);
|
||||||
return;
|
fclose(fp);
|
||||||
|
|
||||||
|
pParentSql->res.code = code;
|
||||||
|
tscQueueAsyncRes(pParentSql);
|
||||||
|
return;
|
||||||
|
} while (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// accumulate the total submit records
|
// accumulate the total submit records
|
||||||
|
|
|
@ -890,13 +890,13 @@ int tscBuildQueryMsg(SSqlObj *pSql, SSqlInfo *pInfo) {
|
||||||
for (int32_t j = 0; j < pGroupbyExpr->numOfGroupCols; ++j) {
|
for (int32_t j = 0; j < pGroupbyExpr->numOfGroupCols; ++j) {
|
||||||
SColIndex* pCol = taosArrayGet(pGroupbyExpr->columnInfo, j);
|
SColIndex* pCol = taosArrayGet(pGroupbyExpr->columnInfo, j);
|
||||||
|
|
||||||
*((int16_t *)pMsg) = pCol->colId;
|
*((int16_t *)pMsg) = htons(pCol->colId);
|
||||||
pMsg += sizeof(pCol->colId);
|
pMsg += sizeof(pCol->colId);
|
||||||
|
|
||||||
*((int16_t *)pMsg) += pCol->colIndex;
|
*((int16_t *)pMsg) += htons(pCol->colIndex);
|
||||||
pMsg += sizeof(pCol->colIndex);
|
pMsg += sizeof(pCol->colIndex);
|
||||||
|
|
||||||
*((int16_t *)pMsg) += pCol->flag;
|
*((int16_t *)pMsg) += htons(pCol->flag);
|
||||||
pMsg += sizeof(pCol->flag);
|
pMsg += sizeof(pCol->flag);
|
||||||
|
|
||||||
memcpy(pMsg, pCol->name, tListLen(pCol->name));
|
memcpy(pMsg, pCol->name, tListLen(pCol->name));
|
||||||
|
|
|
@ -69,14 +69,17 @@ TSKEY tscGetSubscriptionProgress(void* sub, int64_t uid, TSKEY dflt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void tscUpdateSubscriptionProgress(void* sub, int64_t uid, TSKEY ts) {
|
void tscUpdateSubscriptionProgress(void* sub, int64_t uid, TSKEY ts) {
|
||||||
if( sub == NULL)
|
if( sub == NULL) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SSub* pSub = (SSub*)sub;
|
SSub* pSub = (SSub*)sub;
|
||||||
|
|
||||||
SSubscriptionProgress target = {.uid = uid, .key = ts};
|
SSubscriptionProgress target = {.uid = uid, .key = ts};
|
||||||
SSubscriptionProgress* p = taosArraySearch(pSub->progress, &target, tscCompareSubscriptionProgress);
|
SSubscriptionProgress* p = taosArraySearch(pSub->progress, &target, tscCompareSubscriptionProgress);
|
||||||
if (p != NULL) {
|
if (p != NULL) {
|
||||||
p->key = ts;
|
p->key = ts;
|
||||||
|
tscDebug("subscribe:%s, uid:%"PRIu64" update sub start ts:%"PRId64, pSub->topic, p->uid, p->key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -502,6 +505,7 @@ TAOS_RES *taos_consume(TAOS_SUB *tsub) {
|
||||||
SQueryInfo *pQueryInfo = tscGetQueryInfoDetail(pCmd, 0);
|
SQueryInfo *pQueryInfo = tscGetQueryInfoDetail(pCmd, 0);
|
||||||
if (taosArrayGetSize(pSub->progress) > 0) { // fix crash in single tabel subscription
|
if (taosArrayGetSize(pSub->progress) > 0) { // fix crash in single tabel subscription
|
||||||
pQueryInfo->window.skey = ((SSubscriptionProgress*)taosArrayGet(pSub->progress, 0))->key;
|
pQueryInfo->window.skey = ((SSubscriptionProgress*)taosArrayGet(pSub->progress, 0))->key;
|
||||||
|
tscDebug("subscribe:%s set subscribe skey:%"PRId64, pSub->topic, pQueryInfo->window.skey);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pSub->pTimer == NULL) {
|
if (pSub->pTimer == NULL) {
|
||||||
|
|
|
@ -164,7 +164,7 @@ extern float tsMinimalLogDirGB;
|
||||||
extern float tsReservedTmpDirectorySpace;
|
extern float tsReservedTmpDirectorySpace;
|
||||||
extern float tsMinimalDataDirGB;
|
extern float tsMinimalDataDirGB;
|
||||||
extern int32_t tsTotalMemoryMB;
|
extern int32_t tsTotalMemoryMB;
|
||||||
extern int32_t tsVersion;
|
extern uint32_t tsVersion;
|
||||||
|
|
||||||
// build info
|
// build info
|
||||||
extern char version[];
|
extern char version[];
|
||||||
|
|
|
@ -204,7 +204,7 @@ float tsAvailDataDirGB = 0;
|
||||||
float tsReservedTmpDirectorySpace = 1.0f;
|
float tsReservedTmpDirectorySpace = 1.0f;
|
||||||
float tsMinimalDataDirGB = 1.0f;
|
float tsMinimalDataDirGB = 1.0f;
|
||||||
int32_t tsTotalMemoryMB = 0;
|
int32_t tsTotalMemoryMB = 0;
|
||||||
int32_t tsVersion = 0;
|
uint32_t tsVersion = 0;
|
||||||
|
|
||||||
// log
|
// log
|
||||||
int32_t tsNumOfLogLines = 10000000;
|
int32_t tsNumOfLogLines = 10000000;
|
||||||
|
@ -1478,15 +1478,20 @@ int32_t taosCheckGlobalCfg() {
|
||||||
|
|
||||||
// todo refactor
|
// todo refactor
|
||||||
tsVersion = 0;
|
tsVersion = 0;
|
||||||
for (int i = 0; i < 10; i++) {
|
for (int ver = 0, i = 0; i < TSDB_VERSION_LEN; ++i) {
|
||||||
if (version[i] >= '0' && version[i] <= '9') {
|
if (version[i] >= '0' && version[i] <= '9') {
|
||||||
tsVersion = tsVersion * 10 + (version[i] - '0');
|
ver = ver * 10 + (version[i] - '0');
|
||||||
|
} else if (version[i] == '.') {
|
||||||
|
tsVersion |= ver & 0xFF;
|
||||||
|
tsVersion <<= 8;
|
||||||
|
|
||||||
|
ver = 0;
|
||||||
} else if (version[i] == 0) {
|
} else if (version[i] == 0) {
|
||||||
|
tsVersion |= ver & 0xFF;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tsVersion = 10 * tsVersion;
|
|
||||||
|
|
||||||
tsDnodeShellPort = tsServerPort + TSDB_PORT_DNODESHELL; // udp[6035-6039] tcp[6035]
|
tsDnodeShellPort = tsServerPort + TSDB_PORT_DNODESHELL; // udp[6035-6039] tcp[6035]
|
||||||
tsDnodeDnodePort = tsServerPort + TSDB_PORT_DNODEDNODE; // udp/tcp
|
tsDnodeDnodePort = tsServerPort + TSDB_PORT_DNODEDNODE; // udp/tcp
|
||||||
|
|
|
@ -67,6 +67,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_RPC_INVALID_RESPONSE_TYPE, 0, 0x0012, "Invalid re
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_RPC_INVALID_TIME_STAMP, 0, 0x0013, "Client and server's time is not synchronized")
|
TAOS_DEFINE_ERROR(TSDB_CODE_RPC_INVALID_TIME_STAMP, 0, 0x0013, "Client and server's time is not synchronized")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_APP_NOT_READY, 0, 0x0014, "Database not ready")
|
TAOS_DEFINE_ERROR(TSDB_CODE_APP_NOT_READY, 0, 0x0014, "Database not ready")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_RPC_FQDN_ERROR, 0, 0x0015, "Unable to resolve FQDN")
|
TAOS_DEFINE_ERROR(TSDB_CODE_RPC_FQDN_ERROR, 0, 0x0015, "Unable to resolve FQDN")
|
||||||
|
TAOS_DEFINE_ERROR(TSDB_CODE_RPC_INVALID_VERSION, 0, 0x0016, "Invalid app version")
|
||||||
|
|
||||||
//common & util
|
//common & util
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_COM_OPS_NOT_SUPPORT, 0, 0x0100, "Operation not supported")
|
TAOS_DEFINE_ERROR(TSDB_CODE_COM_OPS_NOT_SUPPORT, 0, 0x0100, "Operation not supported")
|
||||||
|
|
|
@ -1722,6 +1722,10 @@ static int32_t tableApplyFunctionsOnBlock(SQueryRuntimeEnv *pRuntimeEnv, SDataBl
|
||||||
blockwiseApplyFunctions(pRuntimeEnv, pStatis, pDataBlockInfo, pResultRowInfo, searchFn, pDataBlock);
|
blockwiseApplyFunctions(pRuntimeEnv, pStatis, pDataBlockInfo, pResultRowInfo, searchFn, pDataBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// update the lastkey of current table for projection/aggregation query
|
||||||
|
TSKEY lastKey = QUERY_IS_ASC_QUERY(pQuery) ? pDataBlockInfo->window.ekey : pDataBlockInfo->window.skey;
|
||||||
|
pTableQueryInfo->lastKey = lastKey + GET_FORWARD_DIRECTION_FACTOR(pQuery->order.order);
|
||||||
|
|
||||||
// interval query with limit applied
|
// interval query with limit applied
|
||||||
int32_t numOfRes = 0;
|
int32_t numOfRes = 0;
|
||||||
if (QUERY_IS_INTERVAL_QUERY(pQuery) || pRuntimeEnv->groupbyNormalCol) {
|
if (QUERY_IS_INTERVAL_QUERY(pQuery) || pRuntimeEnv->groupbyNormalCol) {
|
||||||
|
@ -4299,7 +4303,9 @@ static void doCopyQueryResultToMsg(SQInfo *pQInfo, int32_t numOfRows, char *data
|
||||||
*(int32_t*)data = htonl(numOfTables);
|
*(int32_t*)data = htonl(numOfTables);
|
||||||
data += sizeof(int32_t);
|
data += sizeof(int32_t);
|
||||||
|
|
||||||
|
int32_t total = 0;
|
||||||
STableIdInfo* item = taosHashIterate(pQInfo->arrTableIdInfo, NULL);
|
STableIdInfo* item = taosHashIterate(pQInfo->arrTableIdInfo, NULL);
|
||||||
|
|
||||||
while(item) {
|
while(item) {
|
||||||
STableIdInfo* pDst = (STableIdInfo*)data;
|
STableIdInfo* pDst = (STableIdInfo*)data;
|
||||||
pDst->uid = htobe64(item->uid);
|
pDst->uid = htobe64(item->uid);
|
||||||
|
@ -4307,9 +4313,14 @@ static void doCopyQueryResultToMsg(SQInfo *pQInfo, int32_t numOfRows, char *data
|
||||||
pDst->key = htobe64(item->key);
|
pDst->key = htobe64(item->key);
|
||||||
|
|
||||||
data += sizeof(STableIdInfo);
|
data += sizeof(STableIdInfo);
|
||||||
|
total++;
|
||||||
|
|
||||||
|
qDebug("QInfo:%p set subscribe info, tid:%d, uid:%"PRIu64", skey:%"PRId64, pQInfo, item->tid, item->uid, item->key);
|
||||||
item = taosHashIterate(pQInfo->arrTableIdInfo, item);
|
item = taosHashIterate(pQInfo->arrTableIdInfo, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qDebug("QInfo:%p set %d subscribe info", pQInfo, total);
|
||||||
|
|
||||||
// Check if query is completed or not for stable query or normal table query respectively.
|
// Check if query is completed or not for stable query or normal table query respectively.
|
||||||
if (Q_STATUS_EQUAL(pQuery->status, QUERY_COMPLETED)) {
|
if (Q_STATUS_EQUAL(pQuery->status, QUERY_COMPLETED)) {
|
||||||
if (pQInfo->runtimeEnv.stableQuery) {
|
if (pQInfo->runtimeEnv.stableQuery) {
|
||||||
|
@ -6214,13 +6225,13 @@ static int32_t convertQueryMsg(SQueryTableMsg *pQueryMsg, SArray **pTableIdList,
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int32_t i = 0; i < pQueryMsg->numOfGroupCols; ++i) {
|
for (int32_t i = 0; i < pQueryMsg->numOfGroupCols; ++i) {
|
||||||
(*groupbyCols)[i].colId = *(int16_t *)pMsg;
|
(*groupbyCols)[i].colId = htons(*(int16_t *)pMsg);
|
||||||
pMsg += sizeof((*groupbyCols)[i].colId);
|
pMsg += sizeof((*groupbyCols)[i].colId);
|
||||||
|
|
||||||
(*groupbyCols)[i].colIndex = *(int16_t *)pMsg;
|
(*groupbyCols)[i].colIndex = htons(*(int16_t *)pMsg);
|
||||||
pMsg += sizeof((*groupbyCols)[i].colIndex);
|
pMsg += sizeof((*groupbyCols)[i].colIndex);
|
||||||
|
|
||||||
(*groupbyCols)[i].flag = *(int16_t *)pMsg;
|
(*groupbyCols)[i].flag = htons(*(int16_t *)pMsg);
|
||||||
pMsg += sizeof((*groupbyCols)[i].flag);
|
pMsg += sizeof((*groupbyCols)[i].flag);
|
||||||
|
|
||||||
memcpy((*groupbyCols)[i].name, pMsg, tListLen(groupbyCols[i]->name));
|
memcpy((*groupbyCols)[i].name, pMsg, tListLen(groupbyCols[i]->name));
|
||||||
|
|
|
@ -20,10 +20,6 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define RPC_CONN_UDPS 0
|
|
||||||
#define RPC_CONN_UDPC 1
|
|
||||||
#define RPC_CONN_TCPS 2
|
|
||||||
#define RPC_CONN_TCPC 3
|
|
||||||
#define RPC_CONN_TCP 2
|
#define RPC_CONN_TCP 2
|
||||||
|
|
||||||
extern int tsRpcOverhead;
|
extern int tsRpcOverhead;
|
||||||
|
@ -58,6 +54,7 @@ typedef struct {
|
||||||
char empty[1]; // reserved
|
char empty[1]; // reserved
|
||||||
uint8_t msgType; // message type
|
uint8_t msgType; // message type
|
||||||
int32_t msgLen; // message length including the header iteslf
|
int32_t msgLen; // message length including the header iteslf
|
||||||
|
uint32_t msgVer;
|
||||||
int32_t code; // code in response message
|
int32_t code; // code in response message
|
||||||
uint8_t content[0]; // message body starts from here
|
uint8_t content[0]; // message body starts from here
|
||||||
} SRpcHead;
|
} SRpcHead;
|
||||||
|
|
|
@ -142,7 +142,6 @@ static int32_t tsRpcNum = 0;
|
||||||
#define RPC_CONN_UDPC 1
|
#define RPC_CONN_UDPC 1
|
||||||
#define RPC_CONN_TCPS 2
|
#define RPC_CONN_TCPS 2
|
||||||
#define RPC_CONN_TCPC 3
|
#define RPC_CONN_TCPC 3
|
||||||
#define RPC_CONN_TCP 2
|
|
||||||
|
|
||||||
void *(*taosInitConn[])(uint32_t ip, uint16_t port, char *label, int threads, void *fp, void *shandle) = {
|
void *(*taosInitConn[])(uint32_t ip, uint16_t port, char *label, int threads, void *fp, void *shandle) = {
|
||||||
taosInitUdpConnection,
|
taosInitUdpConnection,
|
||||||
|
@ -959,6 +958,11 @@ static SRpcConn *rpcProcessMsgHead(SRpcInfo *pRpc, SRecvInfo *pRecv, SRpcReqCont
|
||||||
terrno = TSDB_CODE_RPC_INVALID_SESSION_ID; return NULL;
|
terrno = TSDB_CODE_RPC_INVALID_SESSION_ID; return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rpcIsReq(pHead->msgType) && htonl(pHead->msgVer) != tsVersion >> 8) {
|
||||||
|
tDebug("%s sid:%d, invalid client version:%x/%x %s", pRpc->label, sid, htonl(pHead->msgVer), tsVersion, taosMsg[pHead->msgType]);
|
||||||
|
terrno = TSDB_CODE_RPC_INVALID_VERSION; return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
pConn = rpcGetConnObj(pRpc, sid, pRecv);
|
pConn = rpcGetConnObj(pRpc, sid, pRecv);
|
||||||
if (pConn == NULL) {
|
if (pConn == NULL) {
|
||||||
tDebug("%s %p, failed to get connection obj(%s)", pRpc->label, (void *)pHead->ahandle, tstrerror(terrno));
|
tDebug("%s %p, failed to get connection obj(%s)", pRpc->label, (void *)pHead->ahandle, tstrerror(terrno));
|
||||||
|
@ -1212,6 +1216,7 @@ static void rpcSendReqHead(SRpcConn *pConn) {
|
||||||
pHead = (SRpcHead *)msg;
|
pHead = (SRpcHead *)msg;
|
||||||
pHead->version = 1;
|
pHead->version = 1;
|
||||||
pHead->msgType = pConn->outType;
|
pHead->msgType = pConn->outType;
|
||||||
|
pHead->msgVer = htonl(tsVersion >> 8);
|
||||||
pHead->spi = pConn->spi;
|
pHead->spi = pConn->spi;
|
||||||
pHead->encrypt = 0;
|
pHead->encrypt = 0;
|
||||||
pHead->tranId = pConn->outTranId;
|
pHead->tranId = pConn->outTranId;
|
||||||
|
@ -1282,6 +1287,7 @@ static void rpcSendReqToServer(SRpcInfo *pRpc, SRpcReqContext *pContext) {
|
||||||
|
|
||||||
// set the message header
|
// set the message header
|
||||||
pHead->version = 1;
|
pHead->version = 1;
|
||||||
|
pHead->msgVer = htonl(tsVersion >> 8);
|
||||||
pHead->msgType = msgType;
|
pHead->msgType = msgType;
|
||||||
pHead->encrypt = 0;
|
pHead->encrypt = 0;
|
||||||
pConn->tranId++;
|
pConn->tranId++;
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
#ifndef _TS_BUILD_H_
|
|
||||||
#define _TS_BUILD_H_
|
|
||||||
|
|
||||||
extern const char tsVersion[];
|
|
||||||
extern const char tsBuildInfo[];
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -230,7 +230,13 @@ python3 test.py -f tools/lowaTest.py
|
||||||
python3 test.py -f tools/taosdemoTest2.py
|
python3 test.py -f tools/taosdemoTest2.py
|
||||||
|
|
||||||
# subscribe
|
# subscribe
|
||||||
|
<<<<<<< HEAD
|
||||||
python3 test.py -f subscribe/singlemeter.py
|
python3 test.py -f subscribe/singlemeter.py
|
||||||
#python3 test.py -f subscribe/stability.py
|
#python3 test.py -f subscribe/stability.py
|
||||||
python3 test.py -f subscribe/supertable.py
|
python3 test.py -f subscribe/supertable.py
|
||||||
|
=======
|
||||||
|
#python3 test.py -f subscribe/singlemeter.py
|
||||||
|
#python3 test.py -f subscribe/stability.py
|
||||||
|
#python3 test.py -f subscribe/supertable.py
|
||||||
|
>>>>>>> develop
|
||||||
|
|
||||||
|
|
|
@ -286,6 +286,8 @@ cd ../../../debug; make
|
||||||
./test.sh -f unique/dnode/balance3.sim
|
./test.sh -f unique/dnode/balance3.sim
|
||||||
./test.sh -f unique/dnode/balancex.sim
|
./test.sh -f unique/dnode/balancex.sim
|
||||||
./test.sh -f unique/dnode/data1.sim
|
./test.sh -f unique/dnode/data1.sim
|
||||||
|
./test.sh -f unique/dnode/m2.sim
|
||||||
|
./test.sh -f unique/dnode/m3.sim
|
||||||
./test.sh -f unique/dnode/offline1.sim
|
./test.sh -f unique/dnode/offline1.sim
|
||||||
./test.sh -f unique/dnode/offline2.sim
|
./test.sh -f unique/dnode/offline2.sim
|
||||||
./test.sh -f unique/dnode/offline3.sim
|
./test.sh -f unique/dnode/offline3.sim
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
./test.sh -f unique/arbitrator/sync_replica2_dropDb.sim
|
./test.sh -f unique/arbitrator/sync_replica2_dropDb.sim
|
||||||
./test.sh -f unique/arbitrator/sync_replica2_dropTable.sim
|
./test.sh -f unique/arbitrator/sync_replica2_dropTable.sim
|
||||||
#./test.sh -f unique/arbitrator/sync_replica3_alterTable_add.sim
|
./test.sh -f unique/arbitrator/sync_replica3_alterTable_add.sim
|
||||||
./test.sh -f unique/arbitrator/sync_replica3_alterTable_drop.sim
|
./test.sh -f unique/arbitrator/sync_replica3_alterTable_drop.sim
|
||||||
./test.sh -f unique/arbitrator/sync_replica3_dropDb.sim
|
./test.sh -f unique/arbitrator/sync_replica3_dropDb.sim
|
||||||
./test.sh -f unique/arbitrator/sync_replica3_dropTable.sim
|
./test.sh -f unique/arbitrator/sync_replica3_dropTable.sim
|
||||||
|
|
|
@ -29,6 +29,8 @@ cd ../../../debug; make
|
||||||
./test.sh -f unique/dnode/balance2.sim
|
./test.sh -f unique/dnode/balance2.sim
|
||||||
./test.sh -f unique/dnode/balance3.sim
|
./test.sh -f unique/dnode/balance3.sim
|
||||||
./test.sh -f unique/dnode/balancex.sim
|
./test.sh -f unique/dnode/balancex.sim
|
||||||
|
./test.sh -f unique/dnode/m2.sim
|
||||||
|
./test.sh -f unique/dnode/m3.sim
|
||||||
./test.sh -f unique/dnode/offline1.sim
|
./test.sh -f unique/dnode/offline1.sim
|
||||||
./test.sh -f unique/dnode/offline2.sim
|
./test.sh -f unique/dnode/offline2.sim
|
||||||
./test.sh -f unique/dnode/offline3.sim
|
./test.sh -f unique/dnode/offline3.sim
|
||||||
|
|
|
@ -340,7 +340,7 @@ print dnode1 $data4_1
|
||||||
print dnode2 $data4_2
|
print dnode2 $data4_2
|
||||||
print dnode3 $data4_3
|
print dnode3 $data4_3
|
||||||
print dnode4 $data4_4
|
print dnode4 $data4_4
|
||||||
print dnode4 $data4_5
|
print dnode5 $data4_5
|
||||||
|
|
||||||
if $data4_5 != ready then
|
if $data4_5 != ready then
|
||||||
goto step13
|
goto step13
|
||||||
|
@ -380,13 +380,13 @@ $dnode5Vnodes = $data2_5
|
||||||
print dnode5 $dnode2Vnodes
|
print dnode5 $dnode2Vnodes
|
||||||
|
|
||||||
if $dnode1Vnodes != 2 then
|
if $dnode1Vnodes != 2 then
|
||||||
return -1
|
goto step13
|
||||||
endi
|
endi
|
||||||
if $dnode4Vnodes != 2 then
|
if $dnode4Vnodes != 2 then
|
||||||
return -1
|
goto step13
|
||||||
endi
|
endi
|
||||||
if $dnode5Vnodes != 2 then
|
if $dnode5Vnodes != 2 then
|
||||||
return -1
|
goto step13
|
||||||
endi
|
endi
|
||||||
|
|
||||||
print ============================== step14
|
print ============================== step14
|
||||||
|
|
|
@ -0,0 +1,367 @@
|
||||||
|
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 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 mnodeEqualVnodeNum -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c mnodeEqualVnodeNum -v 4
|
||||||
|
system sh/cfg.sh -n dnode5 -c mnodeEqualVnodeNum -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
|
||||||
|
|
||||||
|
print ========== step1
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
$x = 0
|
||||||
|
step1:
|
||||||
|
$x = $x + 1
|
||||||
|
sleep 1000
|
||||||
|
if $x == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
print dnode1 $data4_1
|
||||||
|
print dnode2 $data4_2
|
||||||
|
print dnode3 $data4_3
|
||||||
|
|
||||||
|
if $data4_1 != ready then
|
||||||
|
goto step1
|
||||||
|
endi
|
||||||
|
if $data4_2 != ready then
|
||||||
|
goto step1
|
||||||
|
endi
|
||||||
|
if $data4_3 != ready then
|
||||||
|
goto step1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ========== step2
|
||||||
|
|
||||||
|
sql create database d1 replica 2
|
||||||
|
sql create table d1.t1 (t timestamp, i int)
|
||||||
|
sql insert into d1.t1 values(now+1s, 15)
|
||||||
|
sql insert into d1.t1 values(now+2s, 14)
|
||||||
|
sql insert into d1.t1 values(now+3s, 13)
|
||||||
|
sql insert into d1.t1 values(now+4s, 12)
|
||||||
|
sql insert into d1.t1 values(now+5s, 11)
|
||||||
|
|
||||||
|
sql create database d2 replica 2
|
||||||
|
sql create table d2.t2 (t timestamp, i int)
|
||||||
|
sql insert into d2.t2 values(now+1s, 25)
|
||||||
|
sql insert into d2.t2 values(now+2s, 24)
|
||||||
|
sql insert into d2.t2 values(now+3s, 23)
|
||||||
|
sql insert into d2.t2 values(now+4s, 22)
|
||||||
|
sql insert into d2.t2 values(now+5s, 21)
|
||||||
|
|
||||||
|
sql create database d3 replica 2
|
||||||
|
sql create table d3.t3 (t timestamp, i int)
|
||||||
|
sql insert into d3.t3 values(now+1s, 35)
|
||||||
|
sql insert into d3.t3 values(now+2s, 34)
|
||||||
|
sql insert into d3.t3 values(now+3s, 33)
|
||||||
|
sql insert into d3.t3 values(now+4s, 32)
|
||||||
|
sql insert into d3.t3 values(now+5s, 31)
|
||||||
|
|
||||||
|
sql create database d4 replica 2
|
||||||
|
sql create table d4.t4 (t timestamp, i int)
|
||||||
|
sql insert into d4.t4 values(now+1s, 45)
|
||||||
|
sql insert into d4.t4 values(now+2s, 44)
|
||||||
|
sql insert into d4.t4 values(now+3s, 43)
|
||||||
|
sql insert into d4.t4 values(now+4s, 42)
|
||||||
|
sql insert into d4.t4 values(now+5s, 41)
|
||||||
|
|
||||||
|
print ========== step2.1
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
print dnode1 openVnodes $data2_1
|
||||||
|
print dnode2 openVnodes $data2_2
|
||||||
|
print dnode3 openVnodes $data2_3
|
||||||
|
|
||||||
|
if $data2_1 != 0 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data2_2 != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data2_3 != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d1.vgroups;
|
||||||
|
print d1.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
|
||||||
|
sql show d2.vgroups;
|
||||||
|
print d2.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
|
||||||
|
sql show d3.vgroups;
|
||||||
|
print d3.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
|
||||||
|
sql show d4.vgroups;
|
||||||
|
print d4.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
|
||||||
|
print ========== step3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname5
|
||||||
|
system sh/exec.sh -n dnode5 -s start
|
||||||
|
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
show3:
|
||||||
|
$x = $x + 1
|
||||||
|
sleep 1000
|
||||||
|
if $x == 40 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
print dnode1 openVnodes $data2_1
|
||||||
|
print dnode2 openVnodes $data2_2
|
||||||
|
print dnode3 openVnodes $data2_3
|
||||||
|
print dnode4 openVnodes $data2_4
|
||||||
|
print dnode5 openVnodes $data2_5
|
||||||
|
|
||||||
|
if $data2_2 != 2 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
if $data2_3 != 2 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
if $data2_4 != 2 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
if $data2_5 != 2 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d1.vgroups;
|
||||||
|
print d1.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d2.vgroups;
|
||||||
|
print d2.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d3.vgroups;
|
||||||
|
print d3.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d4.vgroups;
|
||||||
|
print d4.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ========== step4
|
||||||
|
sql drop dnode $hostname2
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
show4:
|
||||||
|
$x = $x + 1
|
||||||
|
sleep 1000
|
||||||
|
if $x == 40 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
print dnode1 openVnodes $data2_1
|
||||||
|
print dnode2 openVnodes $data2_2
|
||||||
|
print dnode3 openVnodes $data2_3
|
||||||
|
print dnode4 openVnodes $data2_4
|
||||||
|
print dnode5 openVnodes $data2_5
|
||||||
|
|
||||||
|
if $data2_2 != null then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d1.vgroups;
|
||||||
|
print d1.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d2.vgroups;
|
||||||
|
print d2.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d3.vgroups;
|
||||||
|
print d3.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d4.vgroups;
|
||||||
|
print d4.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql reset query cache
|
||||||
|
sleep 100
|
||||||
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
|
||||||
|
print ========== step5
|
||||||
|
sql drop dnode $hostname3
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
show5:
|
||||||
|
$x = $x + 1
|
||||||
|
sleep 1000
|
||||||
|
if $x == 40 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
print dnode1 openVnodes $data2_1
|
||||||
|
print dnode2 openVnodes $data2_2
|
||||||
|
print dnode3 openVnodes $data2_3
|
||||||
|
print dnode4 openVnodes $data2_4
|
||||||
|
print dnode5 openVnodes $data2_5
|
||||||
|
|
||||||
|
if $data2_2 != null then
|
||||||
|
goto show5
|
||||||
|
endi
|
||||||
|
if $data2_3 != null then
|
||||||
|
goto show5
|
||||||
|
endi
|
||||||
|
if $data2_4 != 4 then
|
||||||
|
goto show5
|
||||||
|
endi
|
||||||
|
if $data2_5 != 4 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d1.vgroups;
|
||||||
|
print d1.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show5
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d2.vgroups;
|
||||||
|
print d2.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show5
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d3.vgroups;
|
||||||
|
print d3.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show5
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d4.vgroups;
|
||||||
|
print d4.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data03 != 2 then
|
||||||
|
goto show5
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql reset query cache
|
||||||
|
sleep 100
|
||||||
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
|
|
||||||
|
print ========== step6
|
||||||
|
sql select * from d1.t1 order by t desc
|
||||||
|
print $data01 $data11 $data21 $data31 $data41
|
||||||
|
if $data01 != 11 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data11 != 12 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data21 != 13 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data31 != 14 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data41 != 15 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from d2.t2 order by t desc
|
||||||
|
print $data01 $data11 $data21 $data31 $data41
|
||||||
|
if $data01 != 21 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data11 != 22 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data21 != 23 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data31 != 24 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data41 != 25 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from d3.t3 order by t desc
|
||||||
|
print $data01 $data11 $data21 $data31 $data41
|
||||||
|
if $data01 != 31 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data11 != 32 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data21 != 33 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data31 != 34 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data41 != 35 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from d4.t4 order by t desc
|
||||||
|
print $data01 $data11 $data21 $data31 $data41
|
||||||
|
if $data01 != 41 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data11 != 42 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data21 != 43 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data31 != 44 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data41 != 45 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
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
|
|
@ -0,0 +1,359 @@
|
||||||
|
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 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 mnodeEqualVnodeNum -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c mnodeEqualVnodeNum -v 4
|
||||||
|
system sh/cfg.sh -n dnode5 -c mnodeEqualVnodeNum -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
|
||||||
|
|
||||||
|
print ========== step1
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
$x = 0
|
||||||
|
step1:
|
||||||
|
$x = $x + 1
|
||||||
|
sleep 1000
|
||||||
|
if $x == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
print dnode1 $data4_1
|
||||||
|
print dnode2 $data4_2
|
||||||
|
print dnode3 $data4_3
|
||||||
|
print dnode4 $data4_4
|
||||||
|
|
||||||
|
if $data4_1 != ready then
|
||||||
|
goto step1
|
||||||
|
endi
|
||||||
|
if $data4_2 != ready then
|
||||||
|
goto step1
|
||||||
|
endi
|
||||||
|
if $data4_3 != ready then
|
||||||
|
goto step1
|
||||||
|
endi
|
||||||
|
if $data4_4 != ready then
|
||||||
|
goto step1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ========== step2
|
||||||
|
|
||||||
|
sql create database d1 replica 3
|
||||||
|
sql create table d1.t1 (t timestamp, i int)
|
||||||
|
sql insert into d1.t1 values(now+1s, 15)
|
||||||
|
sql insert into d1.t1 values(now+2s, 14)
|
||||||
|
sql insert into d1.t1 values(now+3s, 13)
|
||||||
|
sql insert into d1.t1 values(now+4s, 12)
|
||||||
|
sql insert into d1.t1 values(now+5s, 11)
|
||||||
|
|
||||||
|
sql create database d2 replica 3
|
||||||
|
sql create table d2.t2 (t timestamp, i int)
|
||||||
|
sql insert into d2.t2 values(now+1s, 25)
|
||||||
|
sql insert into d2.t2 values(now+2s, 24)
|
||||||
|
sql insert into d2.t2 values(now+3s, 23)
|
||||||
|
sql insert into d2.t2 values(now+4s, 22)
|
||||||
|
sql insert into d2.t2 values(now+5s, 21)
|
||||||
|
|
||||||
|
sql create database d3 replica 3
|
||||||
|
sql create table d3.t3 (t timestamp, i int)
|
||||||
|
sql insert into d3.t3 values(now+1s, 35)
|
||||||
|
sql insert into d3.t3 values(now+2s, 34)
|
||||||
|
sql insert into d3.t3 values(now+3s, 33)
|
||||||
|
sql insert into d3.t3 values(now+4s, 32)
|
||||||
|
sql insert into d3.t3 values(now+5s, 31)
|
||||||
|
|
||||||
|
sql create database d4 replica 3
|
||||||
|
sql create table d4.t4 (t timestamp, i int)
|
||||||
|
sql insert into d4.t4 values(now+1s, 45)
|
||||||
|
sql insert into d4.t4 values(now+2s, 44)
|
||||||
|
sql insert into d4.t4 values(now+3s, 43)
|
||||||
|
sql insert into d4.t4 values(now+4s, 42)
|
||||||
|
sql insert into d4.t4 values(now+5s, 41)
|
||||||
|
|
||||||
|
print ========== step2.1
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
print dnode1 openVnodes $data2_1
|
||||||
|
print dnode2 openVnodes $data2_2
|
||||||
|
print dnode3 openVnodes $data2_3
|
||||||
|
print dnode4 openVnodes $data2_4
|
||||||
|
|
||||||
|
if $data2_1 != 0 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data2_2 != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data2_3 != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data2_4 != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d1.vgroups;
|
||||||
|
print d1.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d2.vgroups;
|
||||||
|
print d2.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 3 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d3.vgroups;
|
||||||
|
print d3.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 2 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d4.vgroups;
|
||||||
|
print d4.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ========== step3
|
||||||
|
sql create dnode $hostname5
|
||||||
|
system sh/exec.sh -n dnode5 -s start
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
show3:
|
||||||
|
$x = $x + 1
|
||||||
|
sleep 1000
|
||||||
|
if $x == 40 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
print dnode1 openVnodes $data2_1
|
||||||
|
print dnode2 openVnodes $data2_2
|
||||||
|
print dnode3 openVnodes $data2_3
|
||||||
|
print dnode4 openVnodes $data2_4
|
||||||
|
print dnode5 openVnodes $data2_5
|
||||||
|
|
||||||
|
if $data2_2 != 3 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
if $data2_3 != 3 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
if $data2_4 != 3 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
if $data2_5 != 3 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d1.vgroups;
|
||||||
|
print d1.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 5 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data03 != 3 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d2.vgroups;
|
||||||
|
print d2.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 5 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data03 != 3 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d3.vgroups;
|
||||||
|
print d3.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 2 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data03 != 3 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d4.vgroups;
|
||||||
|
print d4.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data03 != 3 then
|
||||||
|
goto show3
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ========== step4
|
||||||
|
sql drop dnode $hostname2
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
show4:
|
||||||
|
$x = $x + 1
|
||||||
|
sleep 1000
|
||||||
|
if $x == 40 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
print dnode1 openVnodes $data2_1
|
||||||
|
print dnode2 openVnodes $data2_2
|
||||||
|
print dnode3 openVnodes $data2_3
|
||||||
|
print dnode4 openVnodes $data2_4
|
||||||
|
print dnode5 openVnodes $data2_5
|
||||||
|
|
||||||
|
if $data2_2 != null then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
if $data2_3 != 4 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
if $data2_4 != 4 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
if $data2_5 != 4 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d1.vgroups;
|
||||||
|
print d1.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 5 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data03 != 3 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d2.vgroups;
|
||||||
|
print d2.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 3 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data03 != 3 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d3.vgroups;
|
||||||
|
print d3.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data03 != 3 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show d4.vgroups;
|
||||||
|
print d4.vgroups $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
|
||||||
|
if $data04 != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data03 != 3 then
|
||||||
|
goto show4
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql reset query cache
|
||||||
|
sleep 100
|
||||||
|
|
||||||
|
print ========== step5
|
||||||
|
sql select * from d1.t1 order by t desc
|
||||||
|
print $data01 $data11 $data21 $data31 $data41
|
||||||
|
if $data01 != 11 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data11 != 12 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data21 != 13 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data31 != 14 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data41 != 15 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from d2.t2 order by t desc
|
||||||
|
print $data01 $data11 $data21 $data31 $data41
|
||||||
|
if $data01 != 21 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data11 != 22 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data21 != 23 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data31 != 24 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data41 != 25 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from d3.t3 order by t desc
|
||||||
|
print $data01 $data11 $data21 $data31 $data41
|
||||||
|
if $data01 != 31 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data11 != 32 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data21 != 33 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data31 != 34 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data41 != 35 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from d4.t4 order by t desc
|
||||||
|
print $data01 $data11 $data21 $data31 $data41
|
||||||
|
if $data01 != 41 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data11 != 42 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data21 != 43 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data31 != 44 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data41 != 45 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
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
|
|
@ -194,36 +194,35 @@ print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $dat
|
||||||
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
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
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 $data5_4 $data6_4 $data7_4 $data8_4 $data9_4
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 $data5_4 $data6_4 $data7_4 $data8_4 $data9_4
|
||||||
$d2v2status = $data5_4
|
|
||||||
$d2v3status = $data5_2
|
|
||||||
$d2v4status = $data5_3
|
|
||||||
|
|
||||||
$d1v2status = $data7_4
|
if $data5_4 != master then
|
||||||
$d1v3status = $data7_2
|
print $data5_4
|
||||||
$d1v4status = $data7_3
|
|
||||||
|
|
||||||
if $d2v2status != master then
|
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d2v3status != master then
|
if $data5_3 != slave then
|
||||||
|
print $data5_2
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d2v4status != master then
|
if $data5_2 != master then
|
||||||
|
print $data5_3
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $d1v2status != slave then
|
if $data7_4 != slave then
|
||||||
|
print $data7_4
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d1v3status != slave then
|
if $data7_3 != master then
|
||||||
|
print $data7_3
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d1v4status != slave then
|
if $data7_2 != slave then
|
||||||
|
print $data7_2
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
|
@ -264,4 +263,13 @@ sql select count(*) from $stb
|
||||||
print data00 $data00
|
print data00 $data00
|
||||||
if $data00 != $totalRows then
|
if $data00 != $totalRows then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n 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
|
|
@ -196,36 +196,29 @@ print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $dat
|
||||||
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
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
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 $data5_4 $data6_4 $data7_4 $data8_4 $data9_4
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 $data5_4 $data6_4 $data7_4 $data8_4 $data9_4
|
||||||
$d2v2status = $data5_4
|
|
||||||
$d2v3status = $data5_2
|
|
||||||
$d2v4status = $data5_3
|
|
||||||
|
|
||||||
$d1v2status = $data7_4
|
if $data5_4 != master then
|
||||||
$d1v3status = $data7_2
|
|
||||||
$d1v4status = $data7_3
|
|
||||||
|
|
||||||
if $d2v2status != master then
|
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d2v3status != master then
|
if $data5_3 != slave then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d2v4status != master then
|
if $data5_2 != master then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $d1v2status != slave then
|
if $data7_4 != slave then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d1v3status != slave then
|
if $data7_3 != master then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d1v4status != slave then
|
if $data7_2 != slave then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
|
@ -266,4 +259,13 @@ sql select count(*) from $stb
|
||||||
print data00 $data00
|
print data00 $data00
|
||||||
if $data00 != $totalRows then
|
if $data00 != $totalRows then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n 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
|
|
@ -194,36 +194,29 @@ print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $dat
|
||||||
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
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
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 $data5_4 $data6_4 $data7_4 $data8_4 $data9_4
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 $data5_4 $data6_4 $data7_4 $data8_4 $data9_4
|
||||||
$d2v2status = $data5_4
|
|
||||||
$d2v3status = $data5_2
|
|
||||||
$d2v4status = $data5_3
|
|
||||||
|
|
||||||
$d1v2status = $data7_4
|
if $data5_4 != master then
|
||||||
$d1v3status = $data7_2
|
|
||||||
$d1v4status = $data7_3
|
|
||||||
|
|
||||||
if $d2v2status != master then
|
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d2v3status != master then
|
if $data5_3 != slave then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d2v4status != master then
|
if $data5_2 != master then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $d1v2status != slave then
|
if $data7_4 != slave then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d1v3status != slave then
|
if $data7_3 != master then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $d1v4status != slave then
|
if $data7_2 != slave then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode1_vgroup_slave
|
goto wait_dnode1_vgroup_slave
|
||||||
endi
|
endi
|
||||||
|
@ -264,4 +257,13 @@ sql select count(*) from $stb
|
||||||
print data00 $data00
|
print data00 $data00
|
||||||
if $data00 != $totalRows then
|
if $data00 != $totalRows then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n 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
|
Loading…
Reference in New Issue