Merge branch 'feature/crash_gen' of https://github.com/taosdata/TDengine into feature/crash_gen
This commit is contained in:
commit
f2da3ef290
|
@ -18,7 +18,7 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
_ "github.com/taosdata/TDengine/src/connector/go/src/taosSql"
|
_ "github.com/taosdata/TDengine/src/connector/go/taosSql"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -634,6 +634,7 @@ func insertData(threadIndex, start, end int, wg *sync.WaitGroup, successRows []
|
||||||
if appendRows == batch {
|
if appendRows == batch {
|
||||||
// executebatch
|
// executebatch
|
||||||
insertSql := buffers.String()
|
insertSql := buffers.String()
|
||||||
|
connection.Exec("use " + db)
|
||||||
affectedRows := executeBatchInsert(insertSql, connection)
|
affectedRows := executeBatchInsert(insertSql, connection)
|
||||||
|
|
||||||
successRows[threadIndex] += affectedRows
|
successRows[threadIndex] += affectedRows
|
||||||
|
@ -658,6 +659,7 @@ func insertData(threadIndex, start, end int, wg *sync.WaitGroup, successRows []
|
||||||
if appendRows > 0 {
|
if appendRows > 0 {
|
||||||
// executebatch
|
// executebatch
|
||||||
insertSql := buffers.String()
|
insertSql := buffers.String()
|
||||||
|
connection.Exec("use " + db)
|
||||||
affectedRows := executeBatchInsert(insertSql, connection)
|
affectedRows := executeBatchInsert(insertSql, connection)
|
||||||
|
|
||||||
successRows[threadIndex] += affectedRows
|
successRows[threadIndex] += affectedRows
|
||||||
|
|
Binary file not shown.
|
@ -238,9 +238,8 @@ void tscProcessMsgFromServer(SRpcMsg *rpcMsg, SRpcIpSet *pIpSet) {
|
||||||
} else {
|
} else {
|
||||||
STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0);
|
STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0);
|
||||||
if (rpcMsg->code == TSDB_CODE_NOT_ACTIVE_TABLE || rpcMsg->code == TSDB_CODE_INVALID_TABLE_ID ||
|
if (rpcMsg->code == TSDB_CODE_NOT_ACTIVE_TABLE || rpcMsg->code == TSDB_CODE_INVALID_TABLE_ID ||
|
||||||
rpcMsg->code == TSDB_CODE_INVALID_VNODE_ID || rpcMsg->code == TSDB_CODE_NOT_ACTIVE_VNODE ||
|
rpcMsg->code == TSDB_CODE_INVALID_VGROUP_ID || rpcMsg->code == TSDB_CODE_NOT_ACTIVE_VNODE ||
|
||||||
rpcMsg->code == TSDB_CODE_NETWORK_UNAVAIL || rpcMsg->code == TSDB_CODE_NOT_ACTIVE_TABLE ||
|
rpcMsg->code == TSDB_CODE_NETWORK_UNAVAIL || rpcMsg->code == TSDB_CODE_TABLE_ID_MISMATCH) {
|
||||||
rpcMsg->code == TSDB_CODE_TABLE_ID_MISMATCH) {
|
|
||||||
/*
|
/*
|
||||||
* not_active_table: 1. the virtual node may fail to create table, since the procedure of create table is asynchronized,
|
* not_active_table: 1. the virtual node may fail to create table, since the procedure of create table is asynchronized,
|
||||||
* the virtual node may have not create table till now, so try again by using the new metermeta.
|
* the virtual node may have not create table till now, so try again by using the new metermeta.
|
||||||
|
|
|
@ -591,7 +591,10 @@ void taos_free_result_imp(TAOS_RES *res, int keepCmd) {
|
||||||
tscProcessSql(pSql);
|
tscProcessSql(pSql);
|
||||||
|
|
||||||
// waits for response and then goes on
|
// waits for response and then goes on
|
||||||
sem_wait(&pSql->rspSem);
|
STscObj* pTscObj = pSql->pTscObj;
|
||||||
|
if (pTscObj->pSql == pSql) {
|
||||||
|
sem_wait(&pSql->rspSem);
|
||||||
|
}
|
||||||
} else { // if no free resource msg is sent to vnode, we free this object immediately.
|
} else { // if no free resource msg is sent to vnode, we free this object immediately.
|
||||||
STscObj* pTscObj = pSql->pTscObj;
|
STscObj* pTscObj = pSql->pTscObj;
|
||||||
|
|
||||||
|
|
|
@ -57,9 +57,9 @@ int32_t tscInitRpc(const char *user, const char *secret, void** pDnodeConn) {
|
||||||
memset(&rpcInit, 0, sizeof(rpcInit));
|
memset(&rpcInit, 0, sizeof(rpcInit));
|
||||||
rpcInit.localPort = 0;
|
rpcInit.localPort = 0;
|
||||||
rpcInit.label = "TSC";
|
rpcInit.label = "TSC";
|
||||||
rpcInit.numOfThreads = tscNumOfThreads;
|
rpcInit.numOfThreads = 1; // every DB connection has only one thread
|
||||||
rpcInit.cfp = tscProcessMsgFromServer;
|
rpcInit.cfp = tscProcessMsgFromServer;
|
||||||
rpcInit.sessions = tsMaxVnodeConnections;
|
rpcInit.sessions = tsMaxConnections;
|
||||||
rpcInit.connType = TAOS_CONN_CLIENT;
|
rpcInit.connType = TAOS_CONN_CLIENT;
|
||||||
rpcInit.user = (char*)user;
|
rpcInit.user = (char*)user;
|
||||||
rpcInit.idleTime = 2000;
|
rpcInit.idleTime = 2000;
|
||||||
|
@ -121,7 +121,7 @@ void taos_init_imp() {
|
||||||
}
|
}
|
||||||
|
|
||||||
tscInitMsgsFp();
|
tscInitMsgsFp();
|
||||||
int queueSize = tsMaxVnodeConnections + tsMaxMeterConnections + tsMaxMgmtConnections + tsMaxMgmtConnections;
|
int queueSize = tsMaxConnections*2;
|
||||||
|
|
||||||
if (tscEmbedded == 0) {
|
if (tscEmbedded == 0) {
|
||||||
tscNumOfThreads = tsNumOfCores * tsNumOfThreadsPerCore / 2.0;
|
tscNumOfThreads = tsNumOfCores * tsNumOfThreadsPerCore / 2.0;
|
||||||
|
@ -137,7 +137,7 @@ void taos_init_imp() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
tscTmr = taosTmrInit(tsMaxMgmtConnections * 2, 200, 60000, "TSC");
|
tscTmr = taosTmrInit(tsMaxConnections * 2, 200, 60000, "TSC");
|
||||||
if(0 == tscEmbedded){
|
if(0 == tscEmbedded){
|
||||||
taosTmrReset(tscCheckDiskUsage, 10, NULL, tscTmr, &tscCheckDiskUsageTmr);
|
taosTmrReset(tscCheckDiskUsage, 10, NULL, tscTmr, &tscCheckDiskUsageTmr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,16 +87,14 @@ extern int16_t tsWAL;
|
||||||
extern int32_t tsReplications;
|
extern int32_t tsReplications;
|
||||||
|
|
||||||
extern int16_t tsAffectedRowsMod;
|
extern int16_t tsAffectedRowsMod;
|
||||||
extern int32_t tsNumOfMPeers;
|
extern int32_t tsNumOfMnodes;
|
||||||
extern int32_t tsMaxShellConns;
|
extern int32_t tsMaxShellConns;
|
||||||
extern int32_t tsMaxTables;
|
extern int32_t tsMaxTables;
|
||||||
|
|
||||||
extern char tsDefaultDB[];
|
extern char tsDefaultDB[];
|
||||||
extern char tsDefaultUser[];
|
extern char tsDefaultUser[];
|
||||||
extern char tsDefaultPass[];
|
extern char tsDefaultPass[];
|
||||||
extern int32_t tsMaxMeterConnections;
|
extern int32_t tsMaxConnections;
|
||||||
extern int32_t tsMaxVnodeConnections;
|
|
||||||
extern int32_t tsMaxMgmtConnections;
|
|
||||||
|
|
||||||
extern int32_t tsBalanceInterval;
|
extern int32_t tsBalanceInterval;
|
||||||
extern int32_t tsOfflineThreshold;
|
extern int32_t tsOfflineThreshold;
|
||||||
|
|
|
@ -105,15 +105,13 @@ int32_t tsReplications = TSDB_DEFAULT_REPLICA_NUM;
|
||||||
* 1: affected rows include those duplicate records
|
* 1: affected rows include those duplicate records
|
||||||
*/
|
*/
|
||||||
int16_t tsAffectedRowsMod = 0;
|
int16_t tsAffectedRowsMod = 0;
|
||||||
int32_t tsNumOfMPeers = 3;
|
int32_t tsNumOfMnodes = 3;
|
||||||
int32_t tsMaxShellConns = 2000;
|
int32_t tsMaxShellConns = 5000;
|
||||||
|
|
||||||
char tsDefaultDB[TSDB_DB_NAME_LEN] = {0};
|
char tsDefaultDB[TSDB_DB_NAME_LEN] = {0};
|
||||||
char tsDefaultUser[64] = "root";
|
char tsDefaultUser[64] = "root";
|
||||||
char tsDefaultPass[64] = "taosdata";
|
char tsDefaultPass[64] = "taosdata";
|
||||||
int32_t tsMaxMeterConnections = 10000;
|
int32_t tsMaxConnections = 50;
|
||||||
int32_t tsMaxMgmtConnections = 2000;
|
|
||||||
int32_t tsMaxVnodeConnections = 10000;
|
|
||||||
|
|
||||||
int32_t tsBalanceInterval = 300; // seconds
|
int32_t tsBalanceInterval = 300; // seconds
|
||||||
int32_t tsOfflineThreshold = 86400*100; // seconds 10days
|
int32_t tsOfflineThreshold = 86400*100; // seconds 10days
|
||||||
|
@ -407,8 +405,8 @@ static void doInitGlobalConfig() {
|
||||||
cfg.unitType = TAOS_CFG_UTYPE_NONE;
|
cfg.unitType = TAOS_CFG_UTYPE_NONE;
|
||||||
taosInitConfigOption(cfg);
|
taosInitConfigOption(cfg);
|
||||||
|
|
||||||
cfg.option = "numOfMPeers";
|
cfg.option = "numOfMnodes";
|
||||||
cfg.ptr = &tsNumOfMPeers;
|
cfg.ptr = &tsNumOfMnodes;
|
||||||
cfg.valType = TAOS_CFG_VTYPE_INT32;
|
cfg.valType = TAOS_CFG_VTYPE_INT32;
|
||||||
cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
|
cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
|
||||||
cfg.minValue = 1;
|
cfg.minValue = 1;
|
||||||
|
@ -680,7 +678,7 @@ static void doInitGlobalConfig() {
|
||||||
cfg.unitType = TAOS_CFG_UTYPE_NONE;
|
cfg.unitType = TAOS_CFG_UTYPE_NONE;
|
||||||
taosInitConfigOption(cfg);
|
taosInitConfigOption(cfg);
|
||||||
|
|
||||||
cfg.option = "wallevel";
|
cfg.option = "walLevel";
|
||||||
cfg.ptr = &tsWAL;
|
cfg.ptr = &tsWAL;
|
||||||
cfg.valType = TAOS_CFG_VTYPE_INT16;
|
cfg.valType = TAOS_CFG_VTYPE_INT16;
|
||||||
cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
|
cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
|
||||||
|
@ -814,32 +812,12 @@ static void doInitGlobalConfig() {
|
||||||
cfg.unitType = TAOS_CFG_UTYPE_NONE;
|
cfg.unitType = TAOS_CFG_UTYPE_NONE;
|
||||||
taosInitConfigOption(cfg);
|
taosInitConfigOption(cfg);
|
||||||
|
|
||||||
cfg.option = "maxMeterConnections";
|
cfg.option = "maxConnections";
|
||||||
cfg.ptr = &tsMaxMeterConnections;
|
cfg.ptr = &tsMaxConnections;
|
||||||
cfg.valType = TAOS_CFG_VTYPE_INT32;
|
cfg.valType = TAOS_CFG_VTYPE_INT32;
|
||||||
cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
|
cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
|
||||||
cfg.minValue = 10;
|
cfg.minValue = 1;
|
||||||
cfg.maxValue = 50000000;
|
cfg.maxValue = 100;
|
||||||
cfg.ptrLength = 0;
|
|
||||||
cfg.unitType = TAOS_CFG_UTYPE_NONE;
|
|
||||||
taosInitConfigOption(cfg);
|
|
||||||
|
|
||||||
cfg.option = "maxMgmtConnections";
|
|
||||||
cfg.ptr = &tsMaxMgmtConnections;
|
|
||||||
cfg.valType = TAOS_CFG_VTYPE_INT32;
|
|
||||||
cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
|
|
||||||
cfg.minValue = 10;
|
|
||||||
cfg.maxValue = 50000000;
|
|
||||||
cfg.ptrLength = 0;
|
|
||||||
cfg.unitType = TAOS_CFG_UTYPE_NONE;
|
|
||||||
taosInitConfigOption(cfg);
|
|
||||||
|
|
||||||
cfg.option = "maxVnodeConnections";
|
|
||||||
cfg.ptr = &tsMaxVnodeConnections;
|
|
||||||
cfg.valType = TAOS_CFG_VTYPE_INT32;
|
|
||||||
cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW;
|
|
||||||
cfg.minValue = 10;
|
|
||||||
cfg.maxValue = 50000000;
|
|
||||||
cfg.ptrLength = 0;
|
cfg.ptrLength = 0;
|
||||||
cfg.unitType = TAOS_CFG_UTYPE_NONE;
|
cfg.unitType = TAOS_CFG_UTYPE_NONE;
|
||||||
taosInitConfigOption(cfg);
|
taosInitConfigOption(cfg);
|
||||||
|
|
|
@ -369,7 +369,8 @@ static void dnodeUpdateMnodeInfos(SDMMnodeInfos *pMnodes) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool dnodeReadMnodeInfos() {
|
static bool dnodeReadMnodeInfos() {
|
||||||
char ipFile[TSDB_FILENAME_LEN] = {0};
|
char ipFile[TSDB_FILENAME_LEN*2] = {0};
|
||||||
|
|
||||||
sprintf(ipFile, "%s/mnodeIpList.json", tsDnodeDir);
|
sprintf(ipFile, "%s/mnodeIpList.json", tsDnodeDir);
|
||||||
FILE *fp = fopen(ipFile, "r");
|
FILE *fp = fopen(ipFile, "r");
|
||||||
if (!fp) {
|
if (!fp) {
|
||||||
|
@ -537,7 +538,8 @@ static void dnodeSendStatusMsg(void *handle, void *tmrId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool dnodeReadDnodeCfg() {
|
static bool dnodeReadDnodeCfg() {
|
||||||
char dnodeCfgFile[TSDB_FILENAME_LEN] = {0};
|
char dnodeCfgFile[TSDB_FILENAME_LEN*2] = {0};
|
||||||
|
|
||||||
sprintf(dnodeCfgFile, "%s/dnodeCfg.json", tsDnodeDir);
|
sprintf(dnodeCfgFile, "%s/dnodeCfg.json", tsDnodeDir);
|
||||||
|
|
||||||
FILE *fp = fopen(dnodeCfgFile, "r");
|
FILE *fp = fopen(dnodeCfgFile, "r");
|
||||||
|
|
|
@ -84,7 +84,7 @@ int32_t dnodeInitShell() {
|
||||||
rpcInit.label = "SHELL";
|
rpcInit.label = "SHELL";
|
||||||
rpcInit.numOfThreads = numOfThreads;
|
rpcInit.numOfThreads = numOfThreads;
|
||||||
rpcInit.cfp = dnodeProcessMsgFromShell;
|
rpcInit.cfp = dnodeProcessMsgFromShell;
|
||||||
rpcInit.sessions = TSDB_SESSIONS_PER_DNODE;
|
rpcInit.sessions = tsMaxShellConns;
|
||||||
rpcInit.connType = TAOS_CONN_SERVER;
|
rpcInit.connType = TAOS_CONN_SERVER;
|
||||||
rpcInit.idleTime = tsShellActivityTimer * 1000;
|
rpcInit.idleTime = tsShellActivityTimer * 1000;
|
||||||
rpcInit.afp = dnodeRetrieveUserAuthInfo;
|
rpcInit.afp = dnodeRetrieveUserAuthInfo;
|
||||||
|
@ -168,6 +168,44 @@ static int dnodeRetrieveUserAuthInfo(char *user, char *spi, char *encrypt, char
|
||||||
return rpcRsp.code;
|
return rpcRsp.code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *dnodeSendCfgTableToRecv(int32_t vgId, int32_t sid) {
|
||||||
|
dTrace("vgId:%d, sid:%d send config table msg to mnode", vgId, sid);
|
||||||
|
|
||||||
|
int32_t contLen = sizeof(SDMConfigTableMsg);
|
||||||
|
SDMConfigTableMsg *pMsg = rpcMallocCont(contLen);
|
||||||
|
|
||||||
|
pMsg->dnodeId = htonl(dnodeGetDnodeId());
|
||||||
|
pMsg->vgId = htonl(vgId);
|
||||||
|
pMsg->sid = htonl(sid);
|
||||||
|
|
||||||
|
SRpcMsg rpcMsg = {0};
|
||||||
|
rpcMsg.pCont = pMsg;
|
||||||
|
rpcMsg.contLen = contLen;
|
||||||
|
rpcMsg.msgType = TSDB_MSG_TYPE_DM_CONFIG_TABLE;
|
||||||
|
|
||||||
|
SRpcMsg rpcRsp = {0};
|
||||||
|
dnodeSendMsgToDnodeRecv(&rpcMsg, &rpcRsp);
|
||||||
|
terrno = rpcRsp.code;
|
||||||
|
|
||||||
|
if (rpcRsp.code != 0) {
|
||||||
|
rpcFreeCont(rpcRsp.pCont);
|
||||||
|
dError("vgId:%d, sid:%d failed to config table from mnode", vgId, sid);
|
||||||
|
return NULL;
|
||||||
|
} else {
|
||||||
|
dPrint("vgId:%d, sid:%d config table msg is received", vgId, sid);
|
||||||
|
|
||||||
|
// delete this after debug finished
|
||||||
|
SMDCreateTableMsg *pTable = rpcRsp.pCont;
|
||||||
|
int16_t numOfColumns = htons(pTable->numOfColumns);
|
||||||
|
int16_t numOfTags = htons(pTable->numOfTags);
|
||||||
|
int32_t sid = htonl(pTable->sid);
|
||||||
|
uint64_t uid = htobe64(pTable->uid);
|
||||||
|
dPrint("table:%s, numOfColumns:%d numOfTags:%d sid:%d uid:%d", pTable->tableId, numOfColumns, numOfTags, sid, uid);
|
||||||
|
|
||||||
|
return rpcRsp.pCont;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SDnodeStatisInfo dnodeGetStatisInfo() {
|
SDnodeStatisInfo dnodeGetStatisInfo() {
|
||||||
SDnodeStatisInfo info = {0};
|
SDnodeStatisInfo info = {0};
|
||||||
if (dnodeGetRunStatus() == TSDB_DNODE_RUN_STATUS_RUNING) {
|
if (dnodeGetRunStatus() == TSDB_DNODE_RUN_STATUS_RUNING) {
|
||||||
|
|
|
@ -29,7 +29,11 @@ int32_t main(int32_t argc, char *argv[]) {
|
||||||
for (int32_t i = 1; i < argc; ++i) {
|
for (int32_t i = 1; i < argc; ++i) {
|
||||||
if (strcmp(argv[i], "-c") == 0) {
|
if (strcmp(argv[i], "-c") == 0) {
|
||||||
if (i < argc - 1) {
|
if (i < argc - 1) {
|
||||||
strcpy(configDir, argv[++i]);
|
if (strlen(argv[++i]) > TSDB_FILENAME_LEN - 1) {
|
||||||
|
printf("config file path overflow");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
strcpy(configDir, argv[i]);
|
||||||
} 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);
|
||||||
|
|
|
@ -129,7 +129,10 @@ void *dnodeAllocateVnodeWqueue(void *pVnode) {
|
||||||
|
|
||||||
if (pWorker->qset == NULL) {
|
if (pWorker->qset == NULL) {
|
||||||
pWorker->qset = taosOpenQset();
|
pWorker->qset = taosOpenQset();
|
||||||
if (pWorker->qset == NULL) return NULL;
|
if (pWorker->qset == NULL) {
|
||||||
|
taosCloseQueue(queue);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
taosAddIntoQset(pWorker->qset, queue, pVnode);
|
taosAddIntoQset(pWorker->qset, queue, pVnode);
|
||||||
pWorker->qall = taosAllocateQall();
|
pWorker->qall = taosAllocateQall();
|
||||||
|
|
|
@ -44,9 +44,10 @@ void dnodeGetMnodeIpSetForShell(void *ipSet);
|
||||||
void * dnodeGetMnodeInfos();
|
void * dnodeGetMnodeInfos();
|
||||||
int32_t dnodeGetDnodeId();
|
int32_t dnodeGetDnodeId();
|
||||||
|
|
||||||
void dnodeAddClientRspHandle(uint8_t msgType, void (*fp)(SRpcMsg *rpcMsg));
|
void dnodeAddClientRspHandle(uint8_t msgType, void (*fp)(SRpcMsg *rpcMsg));
|
||||||
void dnodeSendMsgToDnode(SRpcIpSet *ipSet, SRpcMsg *rpcMsg);
|
void dnodeSendMsgToDnode(SRpcIpSet *ipSet, SRpcMsg *rpcMsg);
|
||||||
void dnodeSendMsgToDnodeRecv(SRpcMsg *rpcMsg, SRpcMsg *rpcRsp);
|
void dnodeSendMsgToDnodeRecv(SRpcMsg *rpcMsg, SRpcMsg *rpcRsp);
|
||||||
|
void *dnodeSendCfgTableToRecv(int32_t vgId, int32_t sid);
|
||||||
|
|
||||||
void *dnodeAllocateVnodeWqueue(void *pVnode);
|
void *dnodeAllocateVnodeWqueue(void *pVnode);
|
||||||
void dnodeFreeVnodeWqueue(void *queue);
|
void dnodeFreeVnodeWqueue(void *queue);
|
||||||
|
|
|
@ -338,9 +338,6 @@ void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size);
|
||||||
#define TSDB_ORDER_ASC 1
|
#define TSDB_ORDER_ASC 1
|
||||||
#define TSDB_ORDER_DESC 2
|
#define TSDB_ORDER_DESC 2
|
||||||
|
|
||||||
#define TSDB_SESSIONS_PER_VNODE (300)
|
|
||||||
#define TSDB_SESSIONS_PER_DNODE (TSDB_SESSIONS_PER_VNODE * TSDB_MAX_VNODES)
|
|
||||||
|
|
||||||
#define TSDB_DEFAULT_MNODES_HASH_SIZE 5
|
#define TSDB_DEFAULT_MNODES_HASH_SIZE 5
|
||||||
#define TSDB_DEFAULT_DNODES_HASH_SIZE 10
|
#define TSDB_DEFAULT_DNODES_HASH_SIZE 10
|
||||||
#define TSDB_DEFAULT_ACCOUNTS_HASH_SIZE 10
|
#define TSDB_DEFAULT_ACCOUNTS_HASH_SIZE 10
|
||||||
|
|
|
@ -72,9 +72,8 @@ TAOS_DEFINE_ERROR(TSDB_CODE_NO_RESOURCE, 0, 0x0018, "no resource"
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_OPS_NOT_SUPPORT, 0, 0x0019, "operations not support")
|
TAOS_DEFINE_ERROR(TSDB_CODE_OPS_NOT_SUPPORT, 0, 0x0019, "operations not support")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_OPTION, 0, 0x001A, "invalid option")
|
TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_OPTION, 0, 0x001A, "invalid option")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_NOT_CONFIGURED, 0, 0x001B, "not configured")
|
TAOS_DEFINE_ERROR(TSDB_CODE_NOT_CONFIGURED, 0, 0x001B, "not configured")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_NODE_OFFLINE, 0, 0x001C, "node offline")
|
TAOS_DEFINE_ERROR(TSDB_CODE_NETWORK_UNAVAIL, 0, 0x001C, "network unavailable")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_NETWORK_UNAVAIL, 0, 0x001D, "network unavailable")
|
TAOS_DEFINE_ERROR(TSDB_CODE_AUTH_REQUIRED, 0, 0x001D, "auth required")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_AUTH_REQUIRED, 0, 0x001E, "auth required")
|
|
||||||
|
|
||||||
// db
|
// db
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_DB_NOT_SELECTED, 0, 0x0100, "db not selected")
|
TAOS_DEFINE_ERROR(TSDB_CODE_DB_NOT_SELECTED, 0, 0x0100, "db not selected")
|
||||||
|
@ -148,15 +147,14 @@ TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_CPU_LIMITED, 0, 0x038F, "grant cpu li
|
||||||
|
|
||||||
// server
|
// server
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_VGROUP_ID, 0, 0x0400, "invalid vgroup id")
|
TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_VGROUP_ID, 0, 0x0400, "invalid vgroup id")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_VNODE_ID, 0, 0x0401, "invalid vnode id")
|
TAOS_DEFINE_ERROR(TSDB_CODE_NOT_ACTIVE_VNODE, 0, 0x0401, "not active vnode")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_NOT_ACTIVE_VNODE, 0, 0x0402, "not active vnode")
|
TAOS_DEFINE_ERROR(TSDB_CODE_VG_INIT_FAILED, 0, 0x0402, "vgroup init failed")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_VG_INIT_FAILED, 0, 0x0403, "vg init failed")
|
TAOS_DEFINE_ERROR(TSDB_CODE_SERV_NO_DISKSPACE, 0, 0x0403, "server no diskspace")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_SERV_NO_DISKSPACE, 0, 0x0404, "server no diskspace")
|
TAOS_DEFINE_ERROR(TSDB_CODE_SERV_OUT_OF_MEMORY, 0, 0x0404, "server out of memory")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_SERV_OUT_OF_MEMORY, 0, 0x0405, "server out of memory")
|
TAOS_DEFINE_ERROR(TSDB_CODE_NO_DISK_PERMISSIONS, 0, 0x0405, "no disk permissions")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_NO_DISK_PERMISSIONS, 0, 0x0406, "no disk permissions")
|
TAOS_DEFINE_ERROR(TSDB_CODE_FILE_CORRUPTED, 0, 0x0406, "file corrupted")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_FILE_CORRUPTED, 0, 0x0407, "file corrupted")
|
TAOS_DEFINE_ERROR(TSDB_CODE_MEMORY_CORRUPTED, 0, 0x0407, "memory corrupted")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_MEMORY_CORRUPTED, 0, 0x0408, "memory corrupted")
|
TAOS_DEFINE_ERROR(TSDB_CODE_NOT_SUCH_FILE_OR_DIR, 0, 0x0408, "no such file or directory")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_NOT_SUCH_FILE_OR_DIR, 0, 0x0409, "no such file or directory")
|
|
||||||
|
|
||||||
// client
|
// client
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_CLIENT_VERSION, 0, 0x0481, "invalid client version")
|
TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_CLIENT_VERSION, 0, 0x0481, "invalid client version")
|
||||||
|
|
|
@ -676,9 +676,9 @@ typedef struct {
|
||||||
} SCMCreateDnodeMsg, SCMDropDnodeMsg;
|
} SCMCreateDnodeMsg, SCMDropDnodeMsg;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint32_t dnode;
|
int32_t dnodeId;
|
||||||
int32_t vnode;
|
int32_t vgId;
|
||||||
int32_t sid;
|
int32_t sid;
|
||||||
} SDMConfigTableMsg;
|
} SDMConfigTableMsg;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -97,7 +97,11 @@ void shellParseArgument(int argc, char *argv[], struct arguments *arguments) {
|
||||||
}
|
}
|
||||||
} else if (strcmp(argv[i], "-c") == 0) {
|
} else if (strcmp(argv[i], "-c") == 0) {
|
||||||
if (i < argc - 1) {
|
if (i < argc - 1) {
|
||||||
strcpy(configDir, argv[++i]);
|
if (strlen(argv[++i]) > TSDB_FILENAME_LEN - 1) {
|
||||||
|
fprintf(stderr, "config file path: %s overflow max len %d\n", argv[i], TSDB_FILENAME_LEN - 1);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
strcpy(configDir, argv[i]);
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "Option -c requires an argument\n");
|
fprintf(stderr, "Option -c requires an argument\n");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
|
|
@ -81,6 +81,11 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
||||||
fprintf(stderr, "Invalid path %s\n", arg);
|
fprintf(stderr, "Invalid path %s\n", arg);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (strlen(full_path.we_wordv[0]) > TSDB_FILENAME_LEN - 1) {
|
||||||
|
fprintf(stderr, "config file path: %s overflow max len %d\n", full_path.we_wordv[0], TSDB_FILENAME_LEN - 1);
|
||||||
|
wordfree(&full_path);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
strcpy(configDir, full_path.we_wordv[0]);
|
strcpy(configDir, full_path.we_wordv[0]);
|
||||||
wordfree(&full_path);
|
wordfree(&full_path);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -77,7 +77,11 @@ void shellParseArgument(int argc, char *argv[], struct arguments *arguments) {
|
||||||
}
|
}
|
||||||
} else if (strcmp(argv[i], "-c") == 0) {
|
} else if (strcmp(argv[i], "-c") == 0) {
|
||||||
if (i < argc - 1) {
|
if (i < argc - 1) {
|
||||||
strcpy(configDir, argv[++i]);
|
if (strlen(argv[++i]) > TSDB_FILENAME_LEN - 1) {
|
||||||
|
fprintf(stderr, "config file path: %s overflow max len %d\n", argv[i], TSDB_FILENAME_LEN - 1);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
strcpy(configDir, argv[i]);
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "Option -c requires an argument\n");
|
fprintf(stderr, "Option -c requires an argument\n");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
|
|
@ -49,7 +49,7 @@ static struct argp_option options[] = {
|
||||||
{0, 'h', "host", 0, "The host to connect to TDEngine. Default is localhost.", 0},
|
{0, 'h', "host", 0, "The host to connect to TDEngine. Default is localhost.", 0},
|
||||||
{0, 'p', "port", 0, "The TCP/IP port number to use for the connection. Default is 0.", 1},
|
{0, 'p', "port", 0, "The TCP/IP port number to use for the connection. Default is 0.", 1},
|
||||||
{0, 'u', "user", 0, "The TDEngine user name to use when connecting to the server. Default is 'root'.", 2},
|
{0, 'u', "user", 0, "The TDEngine user name to use when connecting to the server. Default is 'root'.", 2},
|
||||||
{0, 'a', "password", 0, "The password to use when connecting to the server. Default is 'taosdata'.", 3},
|
{0, 'P', "password", 0, "The password to use when connecting to the server. Default is 'taosdata'.", 3},
|
||||||
{0, 'd', "database", 0, "Destination database. Default is 'test'.", 3},
|
{0, 'd', "database", 0, "Destination database. Default is 'test'.", 3},
|
||||||
{0, 'm', "table_prefix", 0, "Table prefix name. Default is 't'.", 3},
|
{0, 'm', "table_prefix", 0, "Table prefix name. Default is 't'.", 3},
|
||||||
{0, 'M', 0, 0, "Use metric flag.", 13},
|
{0, 'M', 0, 0, "Use metric flag.", 13},
|
||||||
|
@ -58,12 +58,15 @@ static struct argp_option options[] = {
|
||||||
{0, 'b', "type_of_cols", 0, "The data_type of columns: 'INT', 'TINYINT', 'SMALLINT', 'BIGINT', 'FLOAT', 'DOUBLE', 'BINARY'. Default is 'INT'.", 7},
|
{0, 'b', "type_of_cols", 0, "The data_type of columns: 'INT', 'TINYINT', 'SMALLINT', 'BIGINT', 'FLOAT', 'DOUBLE', 'BINARY'. Default is 'INT'.", 7},
|
||||||
{0, 'w', "length_of_binary", 0, "The length of data_type 'BINARY'. Only applicable when type of cols is 'BINARY'. Default is 8", 8},
|
{0, 'w', "length_of_binary", 0, "The length of data_type 'BINARY'. Only applicable when type of cols is 'BINARY'. Default is 8", 8},
|
||||||
{0, 'l', "num_of_cols_per_record", 0, "The number of columns per record. Default is 3.", 8},
|
{0, 'l', "num_of_cols_per_record", 0, "The number of columns per record. Default is 3.", 8},
|
||||||
{0, 'c', "num_of_conns", 0, "The number of connections. Default is 10.", 9},
|
{0, 'T', "num_of_threads", 0, "The number of threads. Default is 10.", 9},
|
||||||
{0, 'r', "num_of_records_per_req", 0, "The number of records per request. Default is 1000.", 10},
|
{0, 'r', "num_of_records_per_req", 0, "The number of records per request. Default is 1000.", 10},
|
||||||
{0, 't', "num_of_tables", 0, "The number of tables. Default is 10000.", 11},
|
{0, 't', "num_of_tables", 0, "The number of tables. Default is 10000.", 11},
|
||||||
{0, 'n', "num_of_records_per_table", 0, "The number of records per table. Default is 100000.", 12},
|
{0, 'n', "num_of_records_per_table", 0, "The number of records per table. Default is 100000.", 12},
|
||||||
{0, 'f', "config_directory", 0, "Configuration directory. Default is '/etc/taos/'.", 14},
|
{0, 'c', "config_directory", 0, "Configuration directory. Default is '/etc/taos/'.", 14},
|
||||||
{0, 'x', 0, 0, "Insert only flag.", 13},
|
{0, 'x', 0, 0, "Insert only flag.", 13},
|
||||||
|
{0, 'O', "order", 0, "Insert mode--0: In order, 1: Out of order. Default is in order.", 14},
|
||||||
|
{0, 'R', "rate", 0, "Out of order data's rate--if order=1 Default 10, min: 0, max: 50.", 14},
|
||||||
|
{0, 'D', "delete table", 0, "Delete data methods——0: don't delete, 1: delete by table, 2: delete by stable, 3: delete by database", 14},
|
||||||
{0}};
|
{0}};
|
||||||
|
|
||||||
/* Used by main to communicate with parse_opt. */
|
/* Used by main to communicate with parse_opt. */
|
||||||
|
@ -81,11 +84,14 @@ typedef struct DemoArguments {
|
||||||
char *datatype[MAX_NUM_DATATYPE];
|
char *datatype[MAX_NUM_DATATYPE];
|
||||||
int len_of_binary;
|
int len_of_binary;
|
||||||
int num_of_CPR;
|
int num_of_CPR;
|
||||||
int num_of_connections;
|
int num_of_threads;
|
||||||
int num_of_RPR;
|
int num_of_RPR;
|
||||||
int num_of_tables;
|
int num_of_tables;
|
||||||
int num_of_DPT;
|
int num_of_DPT;
|
||||||
int abort;
|
int abort;
|
||||||
|
int order;
|
||||||
|
int rate;
|
||||||
|
int method_of_delete;
|
||||||
char **arg_list;
|
char **arg_list;
|
||||||
} SDemoArguments;
|
} SDemoArguments;
|
||||||
|
|
||||||
|
@ -106,7 +112,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
||||||
case 'u':
|
case 'u':
|
||||||
arguments->user = arg;
|
arguments->user = arg;
|
||||||
break;
|
break;
|
||||||
case 'a':
|
case 'P':
|
||||||
arguments->password = arg;
|
arguments->password = arg;
|
||||||
break;
|
break;
|
||||||
case 'o':
|
case 'o':
|
||||||
|
@ -115,8 +121,8 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
||||||
case 'q':
|
case 'q':
|
||||||
arguments->mode = atoi(arg);
|
arguments->mode = atoi(arg);
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'T':
|
||||||
arguments->num_of_connections = atoi(arg);
|
arguments->num_of_threads = atoi(arg);
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r':
|
||||||
arguments->num_of_RPR = atoi(arg);
|
arguments->num_of_RPR = atoi(arg);
|
||||||
|
@ -176,7 +182,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
||||||
case 'x':
|
case 'x':
|
||||||
arguments->insert_only = true;
|
arguments->insert_only = true;
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'c':
|
||||||
if (wordexp(arg, &full_path, 0) != 0) {
|
if (wordexp(arg, &full_path, 0) != 0) {
|
||||||
fprintf(stderr, "Invalid path %s\n", arg);
|
fprintf(stderr, "Invalid path %s\n", arg);
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -184,6 +190,30 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
||||||
taos_options(TSDB_OPTION_CONFIGDIR, full_path.we_wordv[0]);
|
taos_options(TSDB_OPTION_CONFIGDIR, full_path.we_wordv[0]);
|
||||||
wordfree(&full_path);
|
wordfree(&full_path);
|
||||||
break;
|
break;
|
||||||
|
case 'O':
|
||||||
|
arguments->order = atoi(arg);
|
||||||
|
if (arguments->order > 1 || arguments->order < 0)
|
||||||
|
{
|
||||||
|
arguments->order = 0;
|
||||||
|
} else if (arguments->order == 1)
|
||||||
|
{
|
||||||
|
arguments->rate = 10;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'R':
|
||||||
|
arguments->rate = atoi(arg);
|
||||||
|
if (arguments->order == 1 && (arguments->rate > 50 || arguments->rate <= 0))
|
||||||
|
{
|
||||||
|
arguments->rate = 10;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'D':
|
||||||
|
arguments->method_of_delete = atoi(arg);
|
||||||
|
if (arguments->method_of_delete < 0 || arguments->method_of_delete > 3)
|
||||||
|
{
|
||||||
|
arguments->method_of_delete = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case OPT_ABORT:
|
case OPT_ABORT:
|
||||||
arguments->abort = 1;
|
arguments->abort = 1;
|
||||||
break;
|
break;
|
||||||
|
@ -217,6 +247,8 @@ typedef struct {
|
||||||
int ncols_per_record;
|
int ncols_per_record;
|
||||||
int nrecords_per_table;
|
int nrecords_per_table;
|
||||||
int nrecords_per_request;
|
int nrecords_per_request;
|
||||||
|
int data_of_order;
|
||||||
|
int data_of_rate;
|
||||||
int64_t start_time;
|
int64_t start_time;
|
||||||
bool do_aggreFunc;
|
bool do_aggreFunc;
|
||||||
|
|
||||||
|
@ -236,6 +268,8 @@ typedef struct {
|
||||||
int ncols_per_record;
|
int ncols_per_record;
|
||||||
char **data_type;
|
char **data_type;
|
||||||
int len_of_binary;
|
int len_of_binary;
|
||||||
|
int data_of_order;
|
||||||
|
int data_of_rate;
|
||||||
|
|
||||||
sem_t *mutex_sem;
|
sem_t *mutex_sem;
|
||||||
int *notFinished;
|
int *notFinished;
|
||||||
|
@ -258,6 +292,8 @@ void *readMetric(void *sarg);
|
||||||
|
|
||||||
void *syncWrite(void *sarg);
|
void *syncWrite(void *sarg);
|
||||||
|
|
||||||
|
void *deleteTable();
|
||||||
|
|
||||||
void *asyncWrite(void *sarg);
|
void *asyncWrite(void *sarg);
|
||||||
|
|
||||||
void generateData(char *res, char **data_type, int num_of_cols, int64_t timestamp, int len_of_binary);
|
void generateData(char *res, char **data_type, int num_of_cols, int64_t timestamp, int len_of_binary);
|
||||||
|
@ -291,11 +327,14 @@ int main(int argc, char *argv[]) {
|
||||||
},
|
},
|
||||||
8, // len_of_binary
|
8, // len_of_binary
|
||||||
1, // num_of_CPR
|
1, // num_of_CPR
|
||||||
1, // num_of_connections
|
1, // num_of_connections/thread
|
||||||
1, // num_of_RPR
|
1, // num_of_RPR
|
||||||
1, // num_of_tables
|
1, // num_of_tables
|
||||||
50000, // num_of_DPT
|
50000, // num_of_DPT
|
||||||
0, // abort
|
0, // abort
|
||||||
|
0, // order
|
||||||
|
0, // rate
|
||||||
|
0, // method_of_delete
|
||||||
NULL // arg_list
|
NULL // arg_list
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -304,7 +343,7 @@ int main(int argc, char *argv[]) {
|
||||||
// For demo use, change default values for some parameters;
|
// For demo use, change default values for some parameters;
|
||||||
arguments.num_of_tables = 10000;
|
arguments.num_of_tables = 10000;
|
||||||
arguments.num_of_CPR = 3;
|
arguments.num_of_CPR = 3;
|
||||||
arguments.num_of_connections = 10;
|
arguments.num_of_threads = 10;
|
||||||
arguments.num_of_DPT = 100000;
|
arguments.num_of_DPT = 100000;
|
||||||
arguments.num_of_RPR = 1000;
|
arguments.num_of_RPR = 1000;
|
||||||
arguments.use_metric = true;
|
arguments.use_metric = true;
|
||||||
|
@ -330,8 +369,11 @@ int main(int argc, char *argv[]) {
|
||||||
char *tb_prefix = arguments.tb_prefix;
|
char *tb_prefix = arguments.tb_prefix;
|
||||||
int len_of_binary = arguments.len_of_binary;
|
int len_of_binary = arguments.len_of_binary;
|
||||||
int ncols_per_record = arguments.num_of_CPR;
|
int ncols_per_record = arguments.num_of_CPR;
|
||||||
|
int order = arguments.order;
|
||||||
|
int rate = arguments.rate;
|
||||||
|
int method_of_delete = arguments.method_of_delete;
|
||||||
int ntables = arguments.num_of_tables;
|
int ntables = arguments.num_of_tables;
|
||||||
int nconnections = arguments.num_of_connections;
|
int threads = arguments.num_of_threads;
|
||||||
int nrecords_per_table = arguments.num_of_DPT;
|
int nrecords_per_table = arguments.num_of_DPT;
|
||||||
int nrecords_per_request = arguments.num_of_RPR;
|
int nrecords_per_request = arguments.num_of_RPR;
|
||||||
bool use_metric = arguments.use_metric;
|
bool use_metric = arguments.use_metric;
|
||||||
|
@ -371,12 +413,19 @@ int main(int argc, char *argv[]) {
|
||||||
printf("# Binary Length(If applicable): %d\n",
|
printf("# Binary Length(If applicable): %d\n",
|
||||||
(strcasestr(dataString, "BINARY") != NULL) ? len_of_binary : -1);
|
(strcasestr(dataString, "BINARY") != NULL) ? len_of_binary : -1);
|
||||||
printf("# Number of Columns per record: %d\n", ncols_per_record);
|
printf("# Number of Columns per record: %d\n", ncols_per_record);
|
||||||
printf("# Number of Connections: %d\n", nconnections);
|
printf("# Number of Threads: %d\n", threads);
|
||||||
printf("# Number of Tables: %d\n", ntables);
|
printf("# Number of Tables: %d\n", ntables);
|
||||||
printf("# Number of Data per Table: %d\n", nrecords_per_table);
|
printf("# Number of Data per Table: %d\n", nrecords_per_table);
|
||||||
printf("# Records/Request: %d\n", nrecords_per_request);
|
printf("# Records/Request: %d\n", nrecords_per_request);
|
||||||
printf("# Database name: %s\n", db_name);
|
printf("# Database name: %s\n", db_name);
|
||||||
printf("# Table prefix: %s\n", tb_prefix);
|
printf("# Table prefix: %s\n", tb_prefix);
|
||||||
|
if (order == 1)
|
||||||
|
{
|
||||||
|
printf("# Data order: %d\n", order);
|
||||||
|
printf("# Data out of order rate: %d\n", rate);
|
||||||
|
|
||||||
|
}
|
||||||
|
printf("# Delete method: %d\n", method_of_delete);
|
||||||
printf("# Test time: %d-%02d-%02d %02d:%02d:%02d\n", tm.tm_year + 1900, tm.tm_mon + 1,
|
printf("# Test time: %d-%02d-%02d %02d:%02d:%02d\n", tm.tm_year + 1900, tm.tm_mon + 1,
|
||||||
tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
|
tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
|
||||||
printf("###################################################################\n\n");
|
printf("###################################################################\n\n");
|
||||||
|
@ -392,12 +441,18 @@ int main(int argc, char *argv[]) {
|
||||||
fprintf(fp, "# Binary Length(If applicable): %d\n",
|
fprintf(fp, "# Binary Length(If applicable): %d\n",
|
||||||
(strcasestr(dataString, "BINARY") != NULL) ? len_of_binary : -1);
|
(strcasestr(dataString, "BINARY") != NULL) ? len_of_binary : -1);
|
||||||
fprintf(fp, "# Number of Columns per record: %d\n", ncols_per_record);
|
fprintf(fp, "# Number of Columns per record: %d\n", ncols_per_record);
|
||||||
fprintf(fp, "# Number of Connections: %d\n", nconnections);
|
fprintf(fp, "# Number of Threads: %d\n", threads);
|
||||||
fprintf(fp, "# Number of Tables: %d\n", ntables);
|
fprintf(fp, "# Number of Tables: %d\n", ntables);
|
||||||
fprintf(fp, "# Number of Data per Table: %d\n", nrecords_per_table);
|
fprintf(fp, "# Number of Data per Table: %d\n", nrecords_per_table);
|
||||||
fprintf(fp, "# Records/Request: %d\n", nrecords_per_request);
|
fprintf(fp, "# Records/Request: %d\n", nrecords_per_request);
|
||||||
fprintf(fp, "# Database name: %s\n", db_name);
|
fprintf(fp, "# Database name: %s\n", db_name);
|
||||||
fprintf(fp, "# Table prefix: %s\n", tb_prefix);
|
fprintf(fp, "# Table prefix: %s\n", tb_prefix);
|
||||||
|
if (order == 1)
|
||||||
|
{
|
||||||
|
printf("# Data order: %d\n", order);
|
||||||
|
printf("# Data out of order rate: %d\n", rate);
|
||||||
|
|
||||||
|
}
|
||||||
fprintf(fp, "# Test time: %d-%02d-%02d %02d:%02d:%02d\n", tm.tm_year + 1900, tm.tm_mon + 1,
|
fprintf(fp, "# Test time: %d-%02d-%02d %02d:%02d:%02d\n", tm.tm_year + 1900, tm.tm_mon + 1,
|
||||||
tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
|
tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
|
||||||
fprintf(fp, "###################################################################\n\n");
|
fprintf(fp, "###################################################################\n\n");
|
||||||
|
@ -414,7 +469,7 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
sprintf(command, "drop database %s;", db_name);
|
sprintf(command, "drop database %s;", db_name);
|
||||||
taos_query(taos, command);
|
taos_query(taos, command);
|
||||||
sleep(3);
|
|
||||||
|
|
||||||
sprintf(command, "create database %s;", db_name);
|
sprintf(command, "create database %s;", db_name);
|
||||||
taos_query(taos, command);
|
taos_query(taos, command);
|
||||||
|
@ -479,22 +534,22 @@ int main(int argc, char *argv[]) {
|
||||||
taos_close(taos);
|
taos_close(taos);
|
||||||
}
|
}
|
||||||
/* Wait for table to create */
|
/* Wait for table to create */
|
||||||
sleep(5);
|
|
||||||
|
|
||||||
/* Insert data */
|
/* Insert data */
|
||||||
double ts = getCurrentTime();
|
double ts = getCurrentTime();
|
||||||
printf("Inserting data......\n");
|
printf("Inserting data......\n");
|
||||||
pthread_t *pids = malloc(nconnections * sizeof(pthread_t));
|
pthread_t *pids = malloc(threads * sizeof(pthread_t));
|
||||||
info *infos = malloc(nconnections * sizeof(info));
|
info *infos = malloc(threads * sizeof(info));
|
||||||
|
|
||||||
int a = ntables / nconnections;
|
int a = ntables / threads;
|
||||||
if (a < 1) {
|
if (a < 1) {
|
||||||
nconnections = ntables;
|
threads = ntables;
|
||||||
a = 1;
|
a = 1;
|
||||||
}
|
}
|
||||||
int b = ntables % nconnections;
|
int b = ntables % threads;
|
||||||
int last = 0;
|
int last = 0;
|
||||||
for (int i = 0; i < nconnections; i++) {
|
for (int i = 0; i < threads; i++) {
|
||||||
info *t_info = infos + i;
|
info *t_info = infos + i;
|
||||||
t_info->threadID = i;
|
t_info->threadID = i;
|
||||||
strcpy(t_info->db_name, db_name);
|
strcpy(t_info->db_name, db_name);
|
||||||
|
@ -507,6 +562,8 @@ int main(int argc, char *argv[]) {
|
||||||
t_info->len_of_binary = len_of_binary;
|
t_info->len_of_binary = len_of_binary;
|
||||||
t_info->nrecords_per_request = nrecords_per_request;
|
t_info->nrecords_per_request = nrecords_per_request;
|
||||||
t_info->start_table_id = last;
|
t_info->start_table_id = last;
|
||||||
|
t_info->data_of_order = order;
|
||||||
|
t_info->data_of_rate = rate;
|
||||||
t_info->end_table_id = i < b ? last + a : last + a - 1;
|
t_info->end_table_id = i < b ? last + a : last + a - 1;
|
||||||
last = t_info->end_table_id + 1;
|
last = t_info->end_table_id + 1;
|
||||||
|
|
||||||
|
@ -520,15 +577,15 @@ int main(int argc, char *argv[]) {
|
||||||
pthread_create(pids + i, NULL, asyncWrite, t_info);
|
pthread_create(pids + i, NULL, asyncWrite, t_info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int i = 0; i < nconnections; i++) {
|
for (int i = 0; i < threads; i++) {
|
||||||
pthread_join(pids[i], NULL);
|
pthread_join(pids[i], NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
double t = getCurrentTime() - ts;
|
double t = getCurrentTime() - ts;
|
||||||
if (query_mode == SYNC) {
|
if (query_mode == SYNC) {
|
||||||
printf("SYNC Insert with %d connections:\n", nconnections);
|
printf("SYNC Insert with %d connections:\n", threads);
|
||||||
} else {
|
} else {
|
||||||
printf("ASYNC Insert with %d connections:\n", nconnections);
|
printf("ASYNC Insert with %d connections:\n", threads);
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(fp, "|%10.d | %10.2f | %10.2f | %10.4f |\n\n",
|
fprintf(fp, "|%10.d | %10.2f | %10.2f | %10.4f |\n\n",
|
||||||
|
@ -540,7 +597,7 @@ int main(int argc, char *argv[]) {
|
||||||
t, ntables * nrecords_per_table, nrecords_per_request,
|
t, ntables * nrecords_per_table, nrecords_per_request,
|
||||||
ntables * nrecords_per_table / t);
|
ntables * nrecords_per_table / t);
|
||||||
|
|
||||||
for (int i = 0; i < nconnections; i++) {
|
for (int i = 0; i < threads; i++) {
|
||||||
info *t_info = infos + i;
|
info *t_info = infos + i;
|
||||||
taos_close(t_info->taos);
|
taos_close(t_info->taos);
|
||||||
sem_destroy(&(t_info->mutex_sem));
|
sem_destroy(&(t_info->mutex_sem));
|
||||||
|
@ -551,6 +608,55 @@ int main(int argc, char *argv[]) {
|
||||||
free(infos);
|
free(infos);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
|
if (method_of_delete != 0)
|
||||||
|
{
|
||||||
|
TAOS *dtaos = taos_connect(ip_addr, user, pass, db_name, port);
|
||||||
|
double dts = getCurrentTime();
|
||||||
|
printf("Deleteing %d table(s)......\n", ntables);
|
||||||
|
|
||||||
|
switch (method_of_delete)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
// delete by table
|
||||||
|
/* Create all the tables; */
|
||||||
|
for (int i = 0; i < ntables; i++) {
|
||||||
|
sprintf(command, "drop table %s.%s%d;", db_name, tb_prefix, i);
|
||||||
|
queryDB(dtaos, command);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
// delete by stable
|
||||||
|
if (!use_metric) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprintf(command, "drop table %s.meters;", db_name);
|
||||||
|
queryDB(dtaos, command);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
// delete by database
|
||||||
|
sprintf(command, "drop database %s;", db_name);
|
||||||
|
queryDB(dtaos, command);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Table(s) droped!\n");
|
||||||
|
taos_close(dtaos);
|
||||||
|
|
||||||
|
double dt = getCurrentTime() - dts;
|
||||||
|
printf("Spent %.4f seconds to drop %d tables\n", dt, ntables);
|
||||||
|
|
||||||
|
FILE *fp = fopen(arguments.output_file, "a");
|
||||||
|
fprintf(fp, "Spent %.4f seconds to drop %d tables\n", dt, ntables);
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!insert_only) {
|
if (!insert_only) {
|
||||||
// query data
|
// query data
|
||||||
pthread_t read_id;
|
pthread_t read_id;
|
||||||
|
@ -735,7 +841,15 @@ void *syncWrite(void *sarg) {
|
||||||
pstr += sprintf(pstr, "insert into %s.%s%d values", winfo->db_name, winfo->tb_prefix, tID);
|
pstr += sprintf(pstr, "insert into %s.%s%d values", winfo->db_name, winfo->tb_prefix, tID);
|
||||||
int k;
|
int k;
|
||||||
for (k = 0; k < winfo->nrecords_per_request;) {
|
for (k = 0; k < winfo->nrecords_per_request;) {
|
||||||
generateData(data, data_type, ncols_per_record, tmp_time++, len_of_binary);
|
int rand_num = rand() % 100;
|
||||||
|
if (winfo->data_of_order ==1 && rand_num < winfo->data_of_rate)
|
||||||
|
{
|
||||||
|
long d = tmp_time - rand() % 1000000 + rand_num;
|
||||||
|
generateData(data, data_type, ncols_per_record, d, len_of_binary);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
generateData(data, data_type, ncols_per_record, tmp_time += 1000, len_of_binary);
|
||||||
|
}
|
||||||
pstr += sprintf(pstr, " %s", data);
|
pstr += sprintf(pstr, " %s", data);
|
||||||
inserted++;
|
inserted++;
|
||||||
k++;
|
k++;
|
||||||
|
@ -774,6 +888,8 @@ void *asyncWrite(void *sarg) {
|
||||||
tb_info->mutex_sem = &(winfo->mutex_sem);
|
tb_info->mutex_sem = &(winfo->mutex_sem);
|
||||||
tb_info->notFinished = &(winfo->notFinished);
|
tb_info->notFinished = &(winfo->notFinished);
|
||||||
tb_info->lock_sem = &(winfo->lock_sem);
|
tb_info->lock_sem = &(winfo->lock_sem);
|
||||||
|
tb_info->data_of_order = winfo->data_of_order;
|
||||||
|
tb_info->data_of_rate = winfo->data_of_rate;
|
||||||
|
|
||||||
/* char buff[BUFFER_SIZE] = "\0"; */
|
/* char buff[BUFFER_SIZE] = "\0"; */
|
||||||
/* sprintf(buff, "insert into %s values (0, 0)", tb_info->tb_name); */
|
/* sprintf(buff, "insert into %s values (0, 0)", tb_info->tb_name); */
|
||||||
|
@ -815,7 +931,15 @@ void callBack(void *param, TAOS_RES *res, int code) {
|
||||||
pstr += sprintf(pstr, "insert into %s values", tb_info->tb_name);
|
pstr += sprintf(pstr, "insert into %s values", tb_info->tb_name);
|
||||||
|
|
||||||
for (int i = 0; i < tb_info->nrecords_per_request; i++) {
|
for (int i = 0; i < tb_info->nrecords_per_request; i++) {
|
||||||
generateData(data, datatype, ncols_per_record, tmp_time++, len_of_binary);
|
int rand_num = rand() % 100;
|
||||||
|
if (tb_info->data_of_order ==1 && rand_num < tb_info->data_of_rate)
|
||||||
|
{
|
||||||
|
long d = tmp_time - rand() % 1000000 + rand_num;
|
||||||
|
generateData(data, datatype, ncols_per_record, d, len_of_binary);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
generateData(data, datatype, ncols_per_record, tmp_time += 1000, len_of_binary);
|
||||||
|
}
|
||||||
pstr += sprintf(pstr, "%s", data);
|
pstr += sprintf(pstr, "%s", data);
|
||||||
tb_info->counter++;
|
tb_info->counter++;
|
||||||
|
|
||||||
|
|
|
@ -160,7 +160,7 @@ void mnodeStopSystem() {
|
||||||
|
|
||||||
static void mnodeInitTimer() {
|
static void mnodeInitTimer() {
|
||||||
if (tsMnodeTmr == NULL) {
|
if (tsMnodeTmr == NULL) {
|
||||||
tsMnodeTmr = taosTmrInit((tsMaxShellConns)*3, 200, 3600000, "MND");
|
tsMnodeTmr = taosTmrInit(tsMaxShellConns, 200, 3600000, "MND");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -358,8 +358,8 @@ void sdbIncRef(void *handle, void *pObj) {
|
||||||
SSdbTable *pTable = handle;
|
SSdbTable *pTable = handle;
|
||||||
int32_t * pRefCount = (int32_t *)(pObj + pTable->refCountPos);
|
int32_t * pRefCount = (int32_t *)(pObj + pTable->refCountPos);
|
||||||
atomic_add_fetch_32(pRefCount, 1);
|
atomic_add_fetch_32(pRefCount, 1);
|
||||||
if (0 && (pTable->tableId == SDB_TABLE_MNODE || pTable->tableId == SDB_TABLE_DNODE)) {
|
if (0 && (pTable->tableId == SDB_TABLE_CTABLE || pTable->tableId == SDB_TABLE_DB)) {
|
||||||
sdbTrace("add ref to table:%s record:%s:%d", pTable->tableName, sdbGetKeyStrFromObj(pTable, pObj), *pRefCount);
|
sdbTrace("add ref to table:%s record:%p:%s:%d", pTable->tableName, pObj, sdbGetKeyStrFromObj(pTable, pObj), *pRefCount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -369,13 +369,13 @@ void sdbDecRef(void *handle, void *pObj) {
|
||||||
SSdbTable *pTable = handle;
|
SSdbTable *pTable = handle;
|
||||||
int32_t * pRefCount = (int32_t *)(pObj + pTable->refCountPos);
|
int32_t * pRefCount = (int32_t *)(pObj + pTable->refCountPos);
|
||||||
int32_t refCount = atomic_sub_fetch_32(pRefCount, 1);
|
int32_t refCount = atomic_sub_fetch_32(pRefCount, 1);
|
||||||
if (0 && (pTable->tableId == SDB_TABLE_MNODE || pTable->tableId == SDB_TABLE_DNODE)) {
|
if (0 && (pTable->tableId == SDB_TABLE_CTABLE || pTable->tableId == SDB_TABLE_DB)) {
|
||||||
sdbTrace("def ref of table:%s record:%s:%d", pTable->tableName, sdbGetKeyStrFromObj(pTable, pObj), *pRefCount);
|
sdbTrace("def ref of table:%s record:%p:%s:%d", pTable->tableName, pObj, sdbGetKeyStrFromObj(pTable, pObj), *pRefCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t *updateEnd = pObj + pTable->refCountPos - 1;
|
int8_t *updateEnd = pObj + pTable->refCountPos - 1;
|
||||||
if (refCount <= 0 && *updateEnd) {
|
if (refCount <= 0 && *updateEnd) {
|
||||||
sdbTrace("table:%s, record:%s:%d is destroyed", pTable->tableName, sdbGetKeyStrFromObj(pTable, pObj), *pRefCount);
|
sdbTrace("table:%s, record:%p:%s:%d is destroyed", pTable->tableName, pObj, sdbGetKeyStrFromObj(pTable, pObj), *pRefCount);
|
||||||
SSdbOper oper = {.pObj = pObj};
|
SSdbOper oper = {.pObj = pObj};
|
||||||
(*pTable->destroyFp)(&oper);
|
(*pTable->destroyFp)(&oper);
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,6 +132,7 @@ static int32_t mnodeProcessShowMsg(SMnodeMsg *pMsg) {
|
||||||
int32_t size = sizeof(SCMShowRsp) + sizeof(SSchema) * TSDB_MAX_COLUMNS + TSDB_EXTRA_PAYLOAD_SIZE;
|
int32_t size = sizeof(SCMShowRsp) + sizeof(SSchema) * TSDB_MAX_COLUMNS + TSDB_EXTRA_PAYLOAD_SIZE;
|
||||||
SCMShowRsp *pShowRsp = rpcMallocCont(size);
|
SCMShowRsp *pShowRsp = rpcMallocCont(size);
|
||||||
if (pShowRsp == NULL) {
|
if (pShowRsp == NULL) {
|
||||||
|
mnodeFreeShowObj(pShow);
|
||||||
return TSDB_CODE_SERV_OUT_OF_MEMORY;
|
return TSDB_CODE_SERV_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
pShowRsp->qhandle = htobe64((uint64_t) pShow);
|
pShowRsp->qhandle = htobe64((uint64_t) pShow);
|
||||||
|
|
|
@ -484,7 +484,10 @@ static int32_t mnodeSuperTableActionDecode(SSdbOper *pOper) {
|
||||||
if (pStable == NULL) return TSDB_CODE_SERV_OUT_OF_MEMORY;
|
if (pStable == NULL) return TSDB_CODE_SERV_OUT_OF_MEMORY;
|
||||||
|
|
||||||
int32_t len = strlen(pOper->rowData);
|
int32_t len = strlen(pOper->rowData);
|
||||||
if (len > TSDB_TABLE_ID_LEN) return TSDB_CODE_INVALID_TABLE_ID;
|
if (len > TSDB_TABLE_ID_LEN){
|
||||||
|
free(pStable);
|
||||||
|
return TSDB_CODE_INVALID_TABLE_ID;
|
||||||
|
}
|
||||||
pStable->info.tableId = strdup(pOper->rowData);
|
pStable->info.tableId = strdup(pOper->rowData);
|
||||||
len++;
|
len++;
|
||||||
|
|
||||||
|
@ -1877,38 +1880,25 @@ static SChildTableObj* mnodeGetTableByPos(int32_t vnode, int32_t sid) {
|
||||||
|
|
||||||
static int32_t mnodeProcessTableCfgMsg(SMnodeMsg *pMsg) {
|
static int32_t mnodeProcessTableCfgMsg(SMnodeMsg *pMsg) {
|
||||||
SDMConfigTableMsg *pCfg = pMsg->rpcMsg.pCont;
|
SDMConfigTableMsg *pCfg = pMsg->rpcMsg.pCont;
|
||||||
pCfg->dnode = htonl(pCfg->dnode);
|
pCfg->dnodeId = htonl(pCfg->dnodeId);
|
||||||
pCfg->vnode = htonl(pCfg->vnode);
|
pCfg->vgId = htonl(pCfg->vgId);
|
||||||
pCfg->sid = htonl(pCfg->sid);
|
pCfg->sid = htonl(pCfg->sid);
|
||||||
mTrace("dnode:%s, vnode:%d, sid:%d, receive table config msg", taosIpStr(pCfg->dnode), pCfg->vnode, pCfg->sid);
|
mTrace("dnode:%d, vgId:%d sid:%d, receive table config msg", pCfg->dnodeId, pCfg->vgId, pCfg->sid);
|
||||||
|
|
||||||
SChildTableObj *pTable = mnodeGetTableByPos(pCfg->vnode, pCfg->sid);
|
SChildTableObj *pTable = mnodeGetTableByPos(pCfg->vgId, pCfg->sid);
|
||||||
if (pTable == NULL) {
|
if (pTable == NULL) {
|
||||||
mError("dnode:%s, vnode:%d, sid:%d, table not found", taosIpStr(pCfg->dnode), pCfg->vnode, pCfg->sid);
|
mError("dnode:%d, vgId:%d sid:%d, table not found", pCfg->dnodeId, pCfg->vgId, pCfg->sid);
|
||||||
return TSDB_CODE_NOT_ACTIVE_TABLE;
|
return TSDB_CODE_NOT_ACTIVE_TABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
SMDCreateTableMsg *pMDCreate = NULL;
|
SMDCreateTableMsg *pCreate = NULL;
|
||||||
pMDCreate = mnodeBuildCreateChildTableMsg(NULL, (SChildTableObj *)pTable);
|
pCreate = mnodeBuildCreateChildTableMsg(NULL, (SChildTableObj *)pTable);
|
||||||
if (pMDCreate == NULL) {
|
|
||||||
mnodeDecTableRef(pTable);
|
|
||||||
return terrno;
|
|
||||||
}
|
|
||||||
|
|
||||||
SDnodeObj *pDnode = mnodeGetDnode(pCfg->dnode);
|
|
||||||
SRpcIpSet ipSet = mnodeGetIpSetFromIp(pDnode->dnodeEp);
|
|
||||||
SRpcMsg rpcRsp = {
|
|
||||||
.handle = NULL,
|
|
||||||
.pCont = pMDCreate,
|
|
||||||
.contLen = htonl(pMDCreate->contLen),
|
|
||||||
.code = 0,
|
|
||||||
.msgType = TSDB_MSG_TYPE_MD_CREATE_TABLE
|
|
||||||
};
|
|
||||||
dnodeSendMsgToDnode(&ipSet, &rpcRsp);
|
|
||||||
|
|
||||||
mnodeDecTableRef(pTable);
|
mnodeDecTableRef(pTable);
|
||||||
mnodeDecDnodeRef(pDnode);
|
|
||||||
|
|
||||||
|
if (pCreate == NULL) return terrno;
|
||||||
|
|
||||||
|
pMsg->rpcRsp.rsp = pCreate;
|
||||||
|
pMsg->rpcRsp.len = htonl(pCreate->contLen);
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1926,7 +1916,6 @@ static void mnodeProcessDropChildTableRsp(SRpcMsg *rpcMsg) {
|
||||||
if (rpcMsg->code != TSDB_CODE_SUCCESS) {
|
if (rpcMsg->code != TSDB_CODE_SUCCESS) {
|
||||||
mError("table:%s, failed to drop in dnode, reason:%s", pTable->info.tableId, tstrerror(rpcMsg->code));
|
mError("table:%s, failed to drop in dnode, reason:%s", pTable->info.tableId, tstrerror(rpcMsg->code));
|
||||||
dnodeSendRpcMnodeWriteRsp(mnodeMsg, rpcMsg->code);
|
dnodeSendRpcMnodeWriteRsp(mnodeMsg, rpcMsg->code);
|
||||||
mnodeDecTableRef(pTable);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -281,7 +281,7 @@ int tgReadSchema(char *fileName) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void tgInitHandle(HttpServer *pServer) {
|
void tgInitHandle(HttpServer *pServer) {
|
||||||
char fileName[256] = {0};
|
char fileName[TSDB_FILENAME_LEN*2] = {0};
|
||||||
sprintf(fileName, "%s/taos.telegraf.cfg", configDir);
|
sprintf(fileName, "%s/taos.telegraf.cfg", configDir);
|
||||||
if (tgReadSchema(fileName) <= 0) {
|
if (tgReadSchema(fileName) <= 0) {
|
||||||
tgFreeSchemas();
|
tgFreeSchemas();
|
||||||
|
|
|
@ -242,6 +242,11 @@ void taosReadGlobalLogCfg() {
|
||||||
wordexp_t full_path;
|
wordexp_t full_path;
|
||||||
wordexp(configDir, &full_path, 0);
|
wordexp(configDir, &full_path, 0);
|
||||||
if (full_path.we_wordv != NULL && full_path.we_wordv[0] != NULL) {
|
if (full_path.we_wordv != NULL && full_path.we_wordv[0] != NULL) {
|
||||||
|
if (strlen(full_path.we_wordv[0]) > TSDB_FILENAME_LEN - 1) {
|
||||||
|
printf("\nconfig file: %s path overflow max len %d, all variables are set to default\n", full_path.we_wordv[0], TSDB_FILENAME_LEN - 1);
|
||||||
|
wordfree(&full_path);
|
||||||
|
return;
|
||||||
|
}
|
||||||
strcpy(configDir, full_path.we_wordv[0]);
|
strcpy(configDir, full_path.we_wordv[0]);
|
||||||
} else {
|
} else {
|
||||||
printf("configDir:%s not there, use default value: /etc/taos", configDir);
|
printf("configDir:%s not there, use default value: /etc/taos", configDir);
|
||||||
|
|
|
@ -18,24 +18,24 @@
|
||||||
#include "taoserror.h"
|
#include "taoserror.h"
|
||||||
#include "tqueue.h"
|
#include "tqueue.h"
|
||||||
|
|
||||||
typedef struct _taos_qnode {
|
typedef struct STaosQnode {
|
||||||
int type;
|
int type;
|
||||||
struct _taos_qnode *next;
|
struct STaosQnode *next;
|
||||||
char item[];
|
char item[];
|
||||||
} STaosQnode;
|
} STaosQnode;
|
||||||
|
|
||||||
typedef struct _taos_q {
|
typedef struct STaosQueue {
|
||||||
int32_t itemSize;
|
int32_t itemSize;
|
||||||
int32_t numOfItems;
|
int32_t numOfItems;
|
||||||
struct _taos_qnode *head;
|
struct STaosQnode *head;
|
||||||
struct _taos_qnode *tail;
|
struct STaosQnode *tail;
|
||||||
struct _taos_q *next; // for queue set
|
struct STaosQueue *next; // for queue set
|
||||||
struct _taos_qset *qset; // for queue set
|
struct STaosQset *qset; // for queue set
|
||||||
void *ahandle; // for queue set
|
void *ahandle; // for queue set
|
||||||
pthread_mutex_t mutex;
|
pthread_mutex_t mutex;
|
||||||
} STaosQueue;
|
} STaosQueue;
|
||||||
|
|
||||||
typedef struct _taos_qset {
|
typedef struct STaosQset {
|
||||||
STaosQueue *head;
|
STaosQueue *head;
|
||||||
STaosQueue *current;
|
STaosQueue *current;
|
||||||
pthread_mutex_t mutex;
|
pthread_mutex_t mutex;
|
||||||
|
@ -44,7 +44,7 @@ typedef struct _taos_qset {
|
||||||
tsem_t sem;
|
tsem_t sem;
|
||||||
} STaosQset;
|
} STaosQset;
|
||||||
|
|
||||||
typedef struct _taos_qall {
|
typedef struct STaosQall {
|
||||||
STaosQnode *current;
|
STaosQnode *current;
|
||||||
STaosQnode *start;
|
STaosQnode *start;
|
||||||
int32_t itemSize;
|
int32_t itemSize;
|
||||||
|
@ -95,6 +95,7 @@ void *taosAllocateQitem(int size) {
|
||||||
void taosFreeQitem(void *param) {
|
void taosFreeQitem(void *param) {
|
||||||
if (param == NULL) return;
|
if (param == NULL) return;
|
||||||
|
|
||||||
|
uTrace("item:%p is freed", param);
|
||||||
char *temp = (char *)param;
|
char *temp = (char *)param;
|
||||||
temp -= sizeof(STaosQnode);
|
temp -= sizeof(STaosQnode);
|
||||||
free(temp);
|
free(temp);
|
||||||
|
@ -104,6 +105,7 @@ int taosWriteQitem(taos_queue param, int type, void *item) {
|
||||||
STaosQueue *queue = (STaosQueue *)param;
|
STaosQueue *queue = (STaosQueue *)param;
|
||||||
STaosQnode *pNode = (STaosQnode *)(((char *)item) - sizeof(STaosQnode));
|
STaosQnode *pNode = (STaosQnode *)(((char *)item) - sizeof(STaosQnode));
|
||||||
pNode->type = type;
|
pNode->type = type;
|
||||||
|
pNode->next = NULL;
|
||||||
|
|
||||||
pthread_mutex_lock(&queue->mutex);
|
pthread_mutex_lock(&queue->mutex);
|
||||||
|
|
||||||
|
@ -143,7 +145,7 @@ int taosReadQitem(taos_queue param, int *type, void **pitem) {
|
||||||
queue->numOfItems--;
|
queue->numOfItems--;
|
||||||
if (queue->qset) atomic_sub_fetch_32(&queue->qset->numOfItems, 1);
|
if (queue->qset) atomic_sub_fetch_32(&queue->qset->numOfItems, 1);
|
||||||
code = 1;
|
code = 1;
|
||||||
uTrace("item:%p is read out from queue, items:%d", *pitem, queue->numOfItems);
|
uTrace("item:%p is read out from queue:%p, type:%d items:%d", *pitem, *type, queue->numOfItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_mutex_unlock(&queue->mutex);
|
pthread_mutex_unlock(&queue->mutex);
|
||||||
|
@ -337,6 +339,7 @@ int taosReadQitemFromQset(taos_qset param, int *type, void **pitem, void **phand
|
||||||
queue->numOfItems--;
|
queue->numOfItems--;
|
||||||
atomic_sub_fetch_32(&qset->numOfItems, 1);
|
atomic_sub_fetch_32(&qset->numOfItems, 1);
|
||||||
code = 1;
|
code = 1;
|
||||||
|
uTrace("item:%p is read out from queue:%p, type:%d items:%d", *pitem, queue, *type, queue->numOfItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_mutex_unlock(&queue->mutex);
|
pthread_mutex_unlock(&queue->mutex);
|
||||||
|
|
|
@ -152,12 +152,18 @@ class WorkerThread:
|
||||||
self._stepGate.set() # wake up!
|
self._stepGate.set() # wake up!
|
||||||
time.sleep(0) # let the released thread run a bit
|
time.sleep(0) # let the released thread run a bit
|
||||||
|
|
||||||
def execSql(self, sql): # not "execute", since we are out side the DB context
|
def execSql(self, sql): # TODO: expose DbConn directly
|
||||||
if ( gConfig.per_thread_db_connection ):
|
if ( gConfig.per_thread_db_connection ):
|
||||||
return self._dbConn.execute(sql)
|
return self._dbConn.execute(sql)
|
||||||
else:
|
else:
|
||||||
return self._tc.getDbState().getDbConn().execute(sql)
|
return self._tc.getDbState().getDbConn().execute(sql)
|
||||||
|
|
||||||
|
def getDbConn(self):
|
||||||
|
if ( gConfig.per_thread_db_connection ):
|
||||||
|
return self._dbConn
|
||||||
|
else:
|
||||||
|
return self._tc.getDbState().getDbConn()
|
||||||
|
|
||||||
# def querySql(self, sql): # not "execute", since we are out side the DB context
|
# def querySql(self, sql): # not "execute", since we are out side the DB context
|
||||||
# if ( gConfig.per_thread_db_connection ):
|
# if ( gConfig.per_thread_db_connection ):
|
||||||
# return self._dbConn.query(sql)
|
# return self._dbConn.query(sql)
|
||||||
|
@ -432,14 +438,23 @@ class DbConn:
|
||||||
def execute(self, sql):
|
def execute(self, sql):
|
||||||
if ( not self.isOpen ):
|
if ( not self.isOpen ):
|
||||||
raise RuntimeError("Cannot execute database commands until connection is open")
|
raise RuntimeError("Cannot execute database commands until connection is open")
|
||||||
return self._tdSql.execute(sql)
|
logger.debug("[SQL] Executing SQL: {}".format(sql))
|
||||||
|
nRows = self._tdSql.execute(sql)
|
||||||
|
logger.debug("[SQL] Execution Result, nRows = {}, SQL = {}".format(nRows, sql))
|
||||||
|
return nRows
|
||||||
|
|
||||||
def query(self, sql) : # return rows affected
|
def query(self, sql) : # return rows affected
|
||||||
if ( not self.isOpen ):
|
if ( not self.isOpen ):
|
||||||
raise RuntimeError("Cannot query database until connection is open")
|
raise RuntimeError("Cannot query database until connection is open")
|
||||||
return self._tdSql.query(sql)
|
logger.debug("[SQL] Executing SQL: {}".format(sql))
|
||||||
|
nRows = self._tdSql.query(sql)
|
||||||
|
logger.debug("[SQL] Execution Result, nRows = {}, SQL = {}".format(nRows, sql))
|
||||||
|
return nRows
|
||||||
# results are in: return self._tdSql.queryResult
|
# results are in: return self._tdSql.queryResult
|
||||||
|
|
||||||
|
def getQueryResult(self):
|
||||||
|
return self._tdSql.queryResult
|
||||||
|
|
||||||
def _queryAny(self, sql) : # actual query result as an int
|
def _queryAny(self, sql) : # actual query result as an int
|
||||||
if ( not self.isOpen ):
|
if ( not self.isOpen ):
|
||||||
raise RuntimeError("Cannot query database until connection is open")
|
raise RuntimeError("Cannot query database until connection is open")
|
||||||
|
@ -468,8 +483,8 @@ class AnyState:
|
||||||
STATE_VAL_IDX = 0
|
STATE_VAL_IDX = 0
|
||||||
CAN_CREATE_DB = 1
|
CAN_CREATE_DB = 1
|
||||||
CAN_DROP_DB = 2
|
CAN_DROP_DB = 2
|
||||||
CAN_CREATE_FIXED_TABLE = 3
|
CAN_CREATE_FIXED_SUPER_TABLE = 3
|
||||||
CAN_DROP_FIXED_TABLE = 4
|
CAN_DROP_FIXED_SUPER_TABLE = 4
|
||||||
CAN_ADD_DATA = 5
|
CAN_ADD_DATA = 5
|
||||||
CAN_READ_DATA = 6
|
CAN_READ_DATA = 6
|
||||||
|
|
||||||
|
@ -502,10 +517,10 @@ class AnyState:
|
||||||
return self._info[self.CAN_CREATE_DB]
|
return self._info[self.CAN_CREATE_DB]
|
||||||
def canDropDb(self):
|
def canDropDb(self):
|
||||||
return self._info[self.CAN_DROP_DB]
|
return self._info[self.CAN_DROP_DB]
|
||||||
def canCreateFixedTable(self):
|
def canCreateFixedSuperTable(self):
|
||||||
return self._info[self.CAN_CREATE_FIXED_TABLE]
|
return self._info[self.CAN_CREATE_FIXED_SUPER_TABLE]
|
||||||
def canDropFixedTable(self):
|
def canDropFixedSuperTable(self):
|
||||||
return self._info[self.CAN_DROP_FIXED_TABLE]
|
return self._info[self.CAN_DROP_FIXED_SUPER_TABLE]
|
||||||
def canAddData(self):
|
def canAddData(self):
|
||||||
return self._info[self.CAN_ADD_DATA]
|
return self._info[self.CAN_ADD_DATA]
|
||||||
def canReadData(self):
|
def canReadData(self):
|
||||||
|
@ -602,9 +617,9 @@ class StateDbOnly(AnyState):
|
||||||
# self.assertHasTask(tasks, DropDbTask) # implied by hasSuccess
|
# self.assertHasTask(tasks, DropDbTask) # implied by hasSuccess
|
||||||
self.assertAtMostOneSuccess(tasks, DropDbTask)
|
self.assertAtMostOneSuccess(tasks, DropDbTask)
|
||||||
# self._state = self.STATE_EMPTY
|
# self._state = self.STATE_EMPTY
|
||||||
elif ( self.hasSuccess(tasks, CreateFixedTableTask) ): # did not drop db, create table success
|
elif ( self.hasSuccess(tasks, CreateFixedSuperTableTask) ): # did not drop db, create table success
|
||||||
# self.assertHasTask(tasks, CreateFixedTableTask) # tried to create table
|
# self.assertHasTask(tasks, CreateFixedTableTask) # tried to create table
|
||||||
self.assertAtMostOneSuccess(tasks, CreateFixedTableTask) # at most 1 attempt is successful
|
self.assertAtMostOneSuccess(tasks, CreateFixedSuperTableTask) # at most 1 attempt is successful
|
||||||
self.assertNoTask(tasks, DropDbTask) # should have have tried
|
self.assertNoTask(tasks, DropDbTask) # should have have tried
|
||||||
# if ( not self.hasSuccess(tasks, AddFixedDataTask) ): # just created table, no data yet
|
# if ( not self.hasSuccess(tasks, AddFixedDataTask) ): # just created table, no data yet
|
||||||
# # can't say there's add-data attempts, since they may all fail
|
# # can't say there's add-data attempts, since they may all fail
|
||||||
|
@ -618,7 +633,7 @@ class StateDbOnly(AnyState):
|
||||||
# # raise RuntimeError("Unexpected no-success scenario") # We might just landed all failure tasks,
|
# # raise RuntimeError("Unexpected no-success scenario") # We might just landed all failure tasks,
|
||||||
# self._state = self.STATE_DB_ONLY # no change
|
# self._state = self.STATE_DB_ONLY # no change
|
||||||
|
|
||||||
class StateTableOnly(AnyState):
|
class StateSuperTableOnly(AnyState):
|
||||||
def getInfo(self):
|
def getInfo(self):
|
||||||
return [
|
return [
|
||||||
self.STATE_TABLE_ONLY,
|
self.STATE_TABLE_ONLY,
|
||||||
|
@ -628,8 +643,8 @@ class StateTableOnly(AnyState):
|
||||||
]
|
]
|
||||||
|
|
||||||
def verifyTasksToState(self, tasks, newState):
|
def verifyTasksToState(self, tasks, newState):
|
||||||
if ( self.hasSuccess(tasks, DropFixedTableTask) ): # we are able to drop the table
|
if ( self.hasSuccess(tasks, DropFixedSuperTableTask) ): # we are able to drop the table
|
||||||
self.assertAtMostOneSuccess(tasks, DropFixedTableTask)
|
self.assertAtMostOneSuccess(tasks, DropFixedSuperTableTask)
|
||||||
# self._state = self.STATE_DB_ONLY
|
# self._state = self.STATE_DB_ONLY
|
||||||
# elif ( self.hasSuccess(tasks, AddFixedDataTask) ): # no success dropping the table, but added data
|
# elif ( self.hasSuccess(tasks, AddFixedDataTask) ): # no success dropping the table, but added data
|
||||||
# self.assertNoTask(tasks, DropFixedTableTask) # not true in massively parrallel cases
|
# self.assertNoTask(tasks, DropFixedTableTask) # not true in massively parrallel cases
|
||||||
|
@ -658,16 +673,16 @@ class StateHasData(AnyState):
|
||||||
elif ( newState.equals(AnyState.STATE_DB_ONLY) ): # in DB only
|
elif ( newState.equals(AnyState.STATE_DB_ONLY) ): # in DB only
|
||||||
if ( not self.hasTask(tasks, CreateDbTask)): # without a create_db task
|
if ( not self.hasTask(tasks, CreateDbTask)): # without a create_db task
|
||||||
self.assertNoTask(tasks, DropDbTask) # we must have drop_db task
|
self.assertNoTask(tasks, DropDbTask) # we must have drop_db task
|
||||||
self.hasSuccess(tasks, DropFixedTableTask)
|
self.hasSuccess(tasks, DropFixedSuperTableTask)
|
||||||
self.assertAtMostOneSuccess(tasks, DropFixedTableTask) # TODO: dicy
|
self.assertAtMostOneSuccess(tasks, DropFixedSuperTableTask) # TODO: dicy
|
||||||
elif ( newState.equals(AnyState.STATE_TABLE_ONLY) ): # data deleted
|
elif ( newState.equals(AnyState.STATE_TABLE_ONLY) ): # data deleted
|
||||||
self.assertNoTask(tasks, DropDbTask)
|
self.assertNoTask(tasks, DropDbTask)
|
||||||
self.assertNoTask(tasks, DropFixedTableTask)
|
self.assertNoTask(tasks, DropFixedSuperTableTask)
|
||||||
self.assertNoTask(tasks, AddFixedDataTask)
|
self.assertNoTask(tasks, AddFixedDataTask)
|
||||||
# self.hasSuccess(tasks, DeleteDataTasks)
|
# self.hasSuccess(tasks, DeleteDataTasks)
|
||||||
else:
|
else:
|
||||||
self.assertNoTask(tasks, DropDbTask)
|
self.assertNoTask(tasks, DropDbTask)
|
||||||
self.assertNoTask(tasks, DropFixedTableTask)
|
self.assertNoTask(tasks, DropFixedSuperTableTask)
|
||||||
self.assertIfExistThenSuccess(tasks, ReadFixedDataTask)
|
self.assertIfExistThenSuccess(tasks, ReadFixedDataTask)
|
||||||
|
|
||||||
|
|
||||||
|
@ -681,7 +696,7 @@ class DbState():
|
||||||
self._lock = threading.RLock()
|
self._lock = threading.RLock()
|
||||||
|
|
||||||
self._state = StateInvalid() # starting state
|
self._state = StateInvalid() # starting state
|
||||||
self._stateWeights = [1,3,5,10]
|
self._stateWeights = [1,3,5,10] # indexed with value of STATE_EMPTY, STATE_DB_ONLY, etc.
|
||||||
|
|
||||||
# self.openDbServerConnection()
|
# self.openDbServerConnection()
|
||||||
self._dbConn = DbConn()
|
self._dbConn = DbConn()
|
||||||
|
@ -711,8 +726,8 @@ class DbState():
|
||||||
tIndex = self.tableNumQueue.push()
|
tIndex = self.tableNumQueue.push()
|
||||||
return tIndex
|
return tIndex
|
||||||
|
|
||||||
def getFixedTableName(self):
|
def getFixedSuperTableName(self):
|
||||||
return "fixed_table"
|
return "fs_table"
|
||||||
|
|
||||||
def releaseTable(self, i): # return the table back, so others can use it
|
def releaseTable(self, i): # return the table back, so others can use it
|
||||||
self.tableNumQueue.release(i)
|
self.tableNumQueue.release(i)
|
||||||
|
@ -727,6 +742,12 @@ class DbState():
|
||||||
self._lastInt += 1
|
self._lastInt += 1
|
||||||
return self._lastInt
|
return self._lastInt
|
||||||
|
|
||||||
|
def getNextBinary(self):
|
||||||
|
return "Los_Angeles_{}".format(self.getNextInt())
|
||||||
|
|
||||||
|
def getNextFloat(self):
|
||||||
|
return 0.9 + self.getNextInt()
|
||||||
|
|
||||||
def getTableNameToDelete(self):
|
def getTableNameToDelete(self):
|
||||||
tblNum = self.tableNumQueue.pop() # TODO: race condition!
|
tblNum = self.tableNumQueue.pop() # TODO: race condition!
|
||||||
if ( not tblNum ): # maybe false
|
if ( not tblNum ): # maybe false
|
||||||
|
@ -752,11 +773,12 @@ class DbState():
|
||||||
if endState == None:
|
if endState == None:
|
||||||
continue
|
continue
|
||||||
for tc in allTaskClasses: # what task can further begin from there?
|
for tc in allTaskClasses: # what task can further begin from there?
|
||||||
if tc.canBeginFrom(endState) and (endState not in firstTaskTypes):
|
if tc.canBeginFrom(endState) and (tc not in firstTaskTypes):
|
||||||
taskTypes.append(tc) # gather it
|
taskTypes.append(tc) # gather it
|
||||||
|
|
||||||
if len(taskTypes) <= 0:
|
if len(taskTypes) <= 0:
|
||||||
raise RuntimeError("No suitable task types found for state: {}".format(self._state))
|
raise RuntimeError("No suitable task types found for state: {}".format(self._state))
|
||||||
|
logger.debug("[OPS] Tasks found for state {}: {}".format(self._state, taskTypes))
|
||||||
return taskTypes
|
return taskTypes
|
||||||
|
|
||||||
# tasks.append(ReadFixedDataTask(self)) # always for everybody
|
# tasks.append(ReadFixedDataTask(self)) # always for everybody
|
||||||
|
@ -809,10 +831,10 @@ class DbState():
|
||||||
# logger.debug("Found DB ONLY state")
|
# logger.debug("Found DB ONLY state")
|
||||||
logger.debug("[STT] DB_ONLY found, between {} and {}".format(ts, time.time()))
|
logger.debug("[STT] DB_ONLY found, between {} and {}".format(ts, time.time()))
|
||||||
return StateDbOnly()
|
return StateDbOnly()
|
||||||
if dbc.query("SELECT * FROM db.{}".format(self.getFixedTableName()) ) == 0 : # no data
|
if dbc.query("SELECT * FROM db.{}".format(self.getFixedSuperTableName()) ) == 0 : # no data
|
||||||
# logger.debug("Found TABLE_ONLY state")
|
# logger.debug("Found TABLE_ONLY state")
|
||||||
logger.debug("[STT] TABLE_ONLY found, between {} and {}".format(ts, time.time()))
|
logger.debug("[STT] SUPER_TABLE_ONLY found, between {} and {}".format(ts, time.time()))
|
||||||
return StateTableOnly()
|
return StateSuperTableOnly()
|
||||||
else:
|
else:
|
||||||
# logger.debug("Found HAS_DATA state")
|
# logger.debug("Found HAS_DATA state")
|
||||||
logger.debug("[STT] HAS_DATA found, between {} and {}".format(ts, time.time()))
|
logger.debug("[STT] HAS_DATA found, between {} and {}".format(ts, time.time()))
|
||||||
|
@ -984,7 +1006,7 @@ class ExecutionStats:
|
||||||
logger.info("| Task Execution Times (success/total):")
|
logger.info("| Task Execution Times (success/total):")
|
||||||
execTimesAny = 0
|
execTimesAny = 0
|
||||||
for k, n in self._execTimes.items():
|
for k, n in self._execTimes.items():
|
||||||
execTimesAny += n[1]
|
execTimesAny += n[0]
|
||||||
logger.info("| {0:<24}: {1}/{2}".format(k,n[1],n[0]))
|
logger.info("| {0:<24}: {1}/{2}".format(k,n[1],n[0]))
|
||||||
|
|
||||||
logger.info("| Total Tasks Executed (success or not): {} ".format(execTimesAny))
|
logger.info("| Total Tasks Executed (success or not): {} ".format(execTimesAny))
|
||||||
|
@ -1053,21 +1075,23 @@ class DropDbTask(StateTransitionTask):
|
||||||
wt.execSql("drop database db")
|
wt.execSql("drop database db")
|
||||||
logger.debug("[OPS] database dropped at {}".format(time.time()))
|
logger.debug("[OPS] database dropped at {}".format(time.time()))
|
||||||
|
|
||||||
class CreateFixedTableTask(StateTransitionTask):
|
class CreateFixedSuperTableTask(StateTransitionTask):
|
||||||
@classmethod
|
@classmethod
|
||||||
def getInfo(cls):
|
def getInfo(cls):
|
||||||
return [
|
return [
|
||||||
# [AnyState.STATE_DB_ONLY],
|
# [AnyState.STATE_DB_ONLY],
|
||||||
StateTableOnly()
|
StateSuperTableOnly()
|
||||||
]
|
]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def canBeginFrom(cls, state: AnyState):
|
def canBeginFrom(cls, state: AnyState):
|
||||||
return state.canCreateFixedTable()
|
return state.canCreateFixedSuperTable()
|
||||||
|
|
||||||
def _executeInternal(self, te: TaskExecutor, wt: WorkerThread):
|
def _executeInternal(self, te: TaskExecutor, wt: WorkerThread):
|
||||||
tblName = self._dbState.getFixedTableName()
|
tblName = self._dbState.getFixedSuperTableName()
|
||||||
wt.execSql("create table db.{} (ts timestamp, speed int)".format(tblName))
|
wt.execSql("create table db.{} (ts timestamp, speed int) tags (b binary(20), f float) ".format(tblName))
|
||||||
|
# No need to create the regular tables, INSERT will do that automatically
|
||||||
|
|
||||||
|
|
||||||
class ReadFixedDataTask(StateTransitionTask):
|
class ReadFixedDataTask(StateTransitionTask):
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -1082,11 +1106,17 @@ class ReadFixedDataTask(StateTransitionTask):
|
||||||
return state.canReadData()
|
return state.canReadData()
|
||||||
|
|
||||||
def _executeInternal(self, te: TaskExecutor, wt: WorkerThread):
|
def _executeInternal(self, te: TaskExecutor, wt: WorkerThread):
|
||||||
tblName = self._dbState.getFixedTableName()
|
sTbName = self._dbState.getFixedSuperTableName()
|
||||||
wt.execSql("select * from db.{}".format(tblName)) # TODO: analyze result set later
|
dbc = wt.getDbConn()
|
||||||
|
dbc.query("select TBNAME from db.{}".format(sTbName)) # TODO: analyze result set later
|
||||||
|
rTables = dbc.getQueryResult()
|
||||||
|
# print("rTables[0] = {}, type = {}".format(rTables[0], type(rTables[0])))
|
||||||
|
for rTbName in rTables : # regular tables
|
||||||
|
dbc.query("select * from db.{}".format(rTbName[0])) # TODO: check success failure
|
||||||
|
|
||||||
# tdSql.query(" cars where tbname in ('carzero', 'carone')")
|
# tdSql.query(" cars where tbname in ('carzero', 'carone')")
|
||||||
|
|
||||||
class DropFixedTableTask(StateTransitionTask):
|
class DropFixedSuperTableTask(StateTransitionTask):
|
||||||
@classmethod
|
@classmethod
|
||||||
def getInfo(cls):
|
def getInfo(cls):
|
||||||
return [
|
return [
|
||||||
|
@ -1096,10 +1126,10 @@ class DropFixedTableTask(StateTransitionTask):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def canBeginFrom(cls, state: AnyState):
|
def canBeginFrom(cls, state: AnyState):
|
||||||
return state.canDropFixedTable()
|
return state.canDropFixedSuperTable()
|
||||||
|
|
||||||
def _executeInternal(self, te: TaskExecutor, wt: WorkerThread):
|
def _executeInternal(self, te: TaskExecutor, wt: WorkerThread):
|
||||||
tblName = self._dbState.getFixedTableName()
|
tblName = self._dbState.getFixedSuperTableName()
|
||||||
wt.execSql("drop table db.{}".format(tblName))
|
wt.execSql("drop table db.{}".format(tblName))
|
||||||
|
|
||||||
class AddFixedDataTask(StateTransitionTask):
|
class AddFixedDataTask(StateTransitionTask):
|
||||||
|
@ -1116,8 +1146,14 @@ class AddFixedDataTask(StateTransitionTask):
|
||||||
|
|
||||||
def _executeInternal(self, te: TaskExecutor, wt: WorkerThread):
|
def _executeInternal(self, te: TaskExecutor, wt: WorkerThread):
|
||||||
ds = self._dbState
|
ds = self._dbState
|
||||||
sql = "insert into db.{} values ('{}', {});".format(ds.getFixedTableName(), ds.getNextTick(), ds.getNextInt())
|
wt.execSql("use db") # TODO: seems to be an INSERT bug to require this
|
||||||
wt.execSql(sql)
|
for i in range(10): # 0 to 9
|
||||||
|
sql = "insert into db.reg_table_{} using {} tags ('{}', {}) values ('{}', {});".format(
|
||||||
|
i,
|
||||||
|
ds.getFixedSuperTableName(),
|
||||||
|
ds.getNextBinary(), ds.getNextFloat(),
|
||||||
|
ds.getNextTick(), ds.getNextInt())
|
||||||
|
wt.execSql(sql)
|
||||||
|
|
||||||
|
|
||||||
#---------- Non State-Transition Related Tasks ----------#
|
#---------- Non State-Transition Related Tasks ----------#
|
||||||
|
@ -1150,10 +1186,10 @@ class AddDataTask(Task):
|
||||||
self.logInfo("No table found to add data, skipping...")
|
self.logInfo("No table found to add data, skipping...")
|
||||||
return
|
return
|
||||||
sql = "insert into db.table_{} values ('{}', {});".format(tIndex, ds.getNextTick(), ds.getNextInt())
|
sql = "insert into db.table_{} values ('{}', {});".format(tIndex, ds.getNextTick(), ds.getNextInt())
|
||||||
self.logDebug("Executing SQL: {}".format(sql))
|
self.logDebug("[SQL] Executing SQL: {}".format(sql))
|
||||||
wt.execSql(sql)
|
wt.execSql(sql)
|
||||||
ds.releaseTable(tIndex)
|
ds.releaseTable(tIndex)
|
||||||
self.logDebug("Finished adding data")
|
self.logDebug("[OPS] Finished adding data")
|
||||||
|
|
||||||
|
|
||||||
# Deterministic random number generator
|
# Deterministic random number generator
|
||||||
|
|
|
@ -0,0 +1,215 @@
|
||||||
|
###################################################################
|
||||||
|
# Copyright (c) 2016 by TAOS Technologies, Inc.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# This file is proprietary and confidential to TAOS Technologies.
|
||||||
|
# No part of this file may be reproduced, stored, transmitted,
|
||||||
|
# disclosed or used in any form or by any means other than as
|
||||||
|
# expressly provided by the written permission from Jianhui Tao
|
||||||
|
#
|
||||||
|
###################################################################
|
||||||
|
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import random
|
||||||
|
import threading
|
||||||
|
|
||||||
|
from util.log import *
|
||||||
|
from util.cases import *
|
||||||
|
from util.sql import *
|
||||||
|
from util.dnodes import *
|
||||||
|
|
||||||
|
current_tb = ""
|
||||||
|
last_tb = ""
|
||||||
|
written = 0
|
||||||
|
|
||||||
|
|
||||||
|
class Test (threading.Thread):
|
||||||
|
def __init__(self, threadId, name, sleepTime):
|
||||||
|
threading.Thread.__init__(self)
|
||||||
|
self.threadId = threadId
|
||||||
|
self.name = name
|
||||||
|
self.sleepTime = sleepTime
|
||||||
|
|
||||||
|
self.threadLock = threading.Lock()
|
||||||
|
|
||||||
|
def create_table(self):
|
||||||
|
global current_tb
|
||||||
|
global last_tb
|
||||||
|
global written
|
||||||
|
|
||||||
|
tdLog.info("create a table")
|
||||||
|
current_tb = "tb%d" % int(round(time.time() * 1000))
|
||||||
|
tdLog.info("current table %s" % current_tb)
|
||||||
|
|
||||||
|
if (current_tb == last_tb):
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
tdSql.execute(
|
||||||
|
'create table %s (ts timestamp, speed int)' %
|
||||||
|
current_tb)
|
||||||
|
last_tb = current_tb
|
||||||
|
written = 0
|
||||||
|
|
||||||
|
def insert_data(self):
|
||||||
|
global current_tb
|
||||||
|
global last_tb
|
||||||
|
global written
|
||||||
|
|
||||||
|
tdLog.info("will insert data to table")
|
||||||
|
if (current_tb == ""):
|
||||||
|
tdLog.info("no table, create first")
|
||||||
|
self.create_table()
|
||||||
|
|
||||||
|
tdLog.info("insert data to table")
|
||||||
|
for i in range(0, 10):
|
||||||
|
self.threadLock.acquire()
|
||||||
|
insertRows = 1000
|
||||||
|
tdLog.info("insert %d rows to %s" % (insertRows, current_tb))
|
||||||
|
|
||||||
|
for j in range(0, insertRows):
|
||||||
|
ret = tdSql.execute(
|
||||||
|
'insert into %s values (now + %dm, %d)' %
|
||||||
|
(current_tb, j, j))
|
||||||
|
written = written + 1
|
||||||
|
self.threadLock.release()
|
||||||
|
|
||||||
|
def query_data(self):
|
||||||
|
global current_tb
|
||||||
|
global last_tb
|
||||||
|
global written
|
||||||
|
|
||||||
|
if (written > 0):
|
||||||
|
tdLog.info("query data from table")
|
||||||
|
tdSql.query("select * from %s" % last_tb)
|
||||||
|
tdSql.checkRows(written)
|
||||||
|
|
||||||
|
def create_stable(self):
|
||||||
|
global current_tb
|
||||||
|
global last_tb
|
||||||
|
global written
|
||||||
|
|
||||||
|
tdLog.info("create a super table")
|
||||||
|
|
||||||
|
def restart_database(self):
|
||||||
|
global current_tb
|
||||||
|
global last_tb
|
||||||
|
global written
|
||||||
|
|
||||||
|
tdLog.info("restart databae")
|
||||||
|
tdDnodes.stop(1)
|
||||||
|
tdDnodes.start(1)
|
||||||
|
tdLog.sleep(5)
|
||||||
|
|
||||||
|
def force_restart(self):
|
||||||
|
global current_tb
|
||||||
|
global last_tb
|
||||||
|
global written
|
||||||
|
|
||||||
|
tdLog.info("force restart database")
|
||||||
|
tdDnodes.forcestop(1)
|
||||||
|
tdDnodes.start(1)
|
||||||
|
tdLog.sleep(5)
|
||||||
|
|
||||||
|
def drop_table(self):
|
||||||
|
global current_tb
|
||||||
|
global last_tb
|
||||||
|
global written
|
||||||
|
|
||||||
|
for i in range(0, 10):
|
||||||
|
self.threadLock.acquire()
|
||||||
|
|
||||||
|
tdLog.info("current_tb %s" % current_tb)
|
||||||
|
|
||||||
|
if (current_tb != ""):
|
||||||
|
tdLog.info("drop current tb %s" % current_tb)
|
||||||
|
tdSql.execute("drop table %s" % current_tb)
|
||||||
|
current_tb = ""
|
||||||
|
last_tb = ""
|
||||||
|
written = 0
|
||||||
|
tdLog.sleep(self.sleepTime)
|
||||||
|
self.threadLock.release()
|
||||||
|
|
||||||
|
def reset_query_cache(self):
|
||||||
|
global current_tb
|
||||||
|
global last_tb
|
||||||
|
global written
|
||||||
|
|
||||||
|
tdLog.info("reset query cache")
|
||||||
|
tdSql.execute("reset query cache")
|
||||||
|
tdLog.sleep(1)
|
||||||
|
|
||||||
|
def reset_database(self):
|
||||||
|
global current_tb
|
||||||
|
global last_tb
|
||||||
|
global written
|
||||||
|
|
||||||
|
tdLog.info("reset database")
|
||||||
|
tdDnodes.forcestop(1)
|
||||||
|
tdDnodes.deploy(1)
|
||||||
|
current_tb = ""
|
||||||
|
last_tb = ""
|
||||||
|
written = 0
|
||||||
|
tdDnodes.start(1)
|
||||||
|
tdSql.prepare()
|
||||||
|
|
||||||
|
def delete_datafiles(self):
|
||||||
|
global current_tb
|
||||||
|
global last_tb
|
||||||
|
global written
|
||||||
|
|
||||||
|
tdLog.info("delete data files")
|
||||||
|
dnodesDir = tdDnodes.getDnodesRootDir()
|
||||||
|
dataDir = dnodesDir + '/dnode1/*'
|
||||||
|
deleteCmd = 'rm -rf %s' % dataDir
|
||||||
|
os.system(deleteCmd)
|
||||||
|
|
||||||
|
current_tb = ""
|
||||||
|
last_tb = ""
|
||||||
|
written = 0
|
||||||
|
tdDnodes.start(1)
|
||||||
|
tdSql.prepare()
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
switch = {
|
||||||
|
1: self.create_table,
|
||||||
|
2: self.insert_data,
|
||||||
|
3: self.query_data,
|
||||||
|
4: self.create_stable,
|
||||||
|
5: self.restart_database,
|
||||||
|
6: self.force_restart,
|
||||||
|
7: self.drop_table,
|
||||||
|
8: self.reset_query_cache,
|
||||||
|
9: self.reset_database,
|
||||||
|
10: self.delete_datafiles,
|
||||||
|
}
|
||||||
|
|
||||||
|
switch.get(self.threadId, lambda: "ERROR")()
|
||||||
|
|
||||||
|
|
||||||
|
class TDTestCase:
|
||||||
|
def init(self, conn, logSql):
|
||||||
|
tdLog.debug("start to execute %s" % __file__)
|
||||||
|
tdSql.init(conn.cursor(), logSql)
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
tdSql.prepare()
|
||||||
|
|
||||||
|
test1 = Test(2, "insert_data", 1)
|
||||||
|
test2 = Test(7, "drop_table", 2)
|
||||||
|
|
||||||
|
test1.start()
|
||||||
|
test2.start()
|
||||||
|
test1.join()
|
||||||
|
test2.join()
|
||||||
|
|
||||||
|
tdLog.info("end of test")
|
||||||
|
|
||||||
|
def stop(self):
|
||||||
|
tdSql.close()
|
||||||
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
||||||
|
|
||||||
|
tdCases.addWindows(__file__, TDTestCase())
|
||||||
|
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -163,7 +163,7 @@ class TDDnode:
|
||||||
self.cfg("clog", "1")
|
self.cfg("clog", "1")
|
||||||
self.cfg("statusInterval", "1")
|
self.cfg("statusInterval", "1")
|
||||||
self.cfg("numOfTotalVnodes", "64")
|
self.cfg("numOfTotalVnodes", "64")
|
||||||
self.cfg("numOfMPeers", "3")
|
self.cfg("numOfMnodes", "3")
|
||||||
self.cfg("numOfThreadsPerCore", "2.0")
|
self.cfg("numOfThreadsPerCore", "2.0")
|
||||||
self.cfg("monitor", "0")
|
self.cfg("monitor", "0")
|
||||||
self.cfg("maxVnodeConnections", "30000")
|
self.cfg("maxVnodeConnections", "30000")
|
||||||
|
|
|
@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
|
||||||
system sh/deploy.sh -n dnode1 -i 1
|
system sh/deploy.sh -n dnode1 -i 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c wallevel -v 0
|
system sh/cfg.sh -n dnode1 -c wallevel -v 0
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
||||||
print ========= start dnode1 as master
|
print ========= start dnode1 as master
|
||||||
|
|
|
@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
|
||||||
system sh/deploy.sh -n dnode1 -i 1
|
system sh/deploy.sh -n dnode1 -i 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c wallevel -v 0
|
system sh/cfg.sh -n dnode1 -c wallevel -v 0
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
||||||
print ========= start dnode1 as master
|
print ========= start dnode1 as master
|
||||||
|
|
|
@ -9,9 +9,9 @@ system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/cfg.sh -n dnode1 -c walLevel -v 0
|
system sh/cfg.sh -n dnode1 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -10,10 +10,10 @@ system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -10,10 +10,10 @@ system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -10,10 +10,10 @@ system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -4,10 +4,10 @@ system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/deploy.sh -n dnode4 -i 4
|
system sh/deploy.sh -n dnode4 -i 4
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
||||||
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
||||||
|
|
|
@ -4,10 +4,10 @@ system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/deploy.sh -n dnode4 -i 4
|
system sh/deploy.sh -n dnode4 -i 4
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
||||||
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
||||||
|
|
|
@ -4,10 +4,10 @@ system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/deploy.sh -n dnode4 -i 4
|
system sh/deploy.sh -n dnode4 -i 4
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
||||||
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
||||||
|
|
|
@ -5,10 +5,10 @@ system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/deploy.sh -n dnode4 -i 4
|
system sh/deploy.sh -n dnode4 -i 4
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
||||||
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
||||||
|
|
|
@ -9,10 +9,10 @@ system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -9,10 +9,10 @@ system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -9,10 +9,10 @@ system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
system sh/cfg.sh -n dnode3 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
system sh/cfg.sh -n dnode4 -c walLevel -v 0
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -111,7 +111,7 @@ echo "clog 0" >> $TAOS_CFG
|
||||||
echo "statusInterval 1" >> $TAOS_CFG
|
echo "statusInterval 1" >> $TAOS_CFG
|
||||||
echo "numOfTotalVnodes 4" >> $TAOS_CFG
|
echo "numOfTotalVnodes 4" >> $TAOS_CFG
|
||||||
echo "asyncLog 0" >> $TAOS_CFG
|
echo "asyncLog 0" >> $TAOS_CFG
|
||||||
echo "numOfMPeers 1" >> $TAOS_CFG
|
echo "numOfMnodes 1" >> $TAOS_CFG
|
||||||
echo "locale en_US.UTF-8" >> $TAOS_CFG
|
echo "locale en_US.UTF-8" >> $TAOS_CFG
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -119,7 +119,7 @@ echo "clog 2" >> $TAOS_CFG
|
||||||
echo "statusInterval 1" >> $TAOS_CFG
|
echo "statusInterval 1" >> $TAOS_CFG
|
||||||
echo "numOfTotalVnodes 4" >> $TAOS_CFG
|
echo "numOfTotalVnodes 4" >> $TAOS_CFG
|
||||||
echo "asyncLog 0" >> $TAOS_CFG
|
echo "asyncLog 0" >> $TAOS_CFG
|
||||||
echo "numOfMPeers 1" >> $TAOS_CFG
|
echo "numOfMnodes 1" >> $TAOS_CFG
|
||||||
echo "locale en_US.UTF-8" >> $TAOS_CFG
|
echo "locale en_US.UTF-8" >> $TAOS_CFG
|
||||||
echo "anyIp 0" >> $TAOS_CFG
|
echo "anyIp 0" >> $TAOS_CFG
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,6 @@ system sh/stop_dnodes.sh
|
||||||
system sh/deploy.sh -n dnode1 -i 1
|
system sh/deploy.sh -n dnode1 -i 1
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
|
|
|
@ -10,10 +10,10 @@ 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 dnode3 -c walLevel -v 2
|
||||||
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -5,11 +5,11 @@ system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/deploy.sh -n dnode4 -i 4
|
system sh/deploy.sh -n dnode4 -i 4
|
||||||
system sh/deploy.sh -n dnode5 -i 5
|
system sh/deploy.sh -n dnode5 -i 5
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode5 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode5 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c walLevel -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 dnode2 -c walLevel -v 1
|
||||||
|
|
|
@ -3,9 +3,9 @@ system sh/deploy.sh -n dnode1 -i 1
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 2
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c walLevel -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 dnode2 -c walLevel -v 1
|
||||||
|
|
|
@ -17,14 +17,14 @@ system sh/cfg.sh -n dnode6 -c numOfTotalVnodes -v 4
|
||||||
system sh/cfg.sh -n dnode7 -c numOfTotalVnodes -v 4
|
system sh/cfg.sh -n dnode7 -c numOfTotalVnodes -v 4
|
||||||
system sh/cfg.sh -n dnode8 -c numOfTotalVnodes -v 4
|
system sh/cfg.sh -n dnode8 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode5 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode5 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode6 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode6 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode7 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode7 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode8 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode8 -c numOfMnodes -v 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 0
|
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 0
|
||||||
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 0
|
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 0
|
||||||
|
|
|
@ -17,14 +17,14 @@ system sh/cfg.sh -n dnode6 -c numOfTotalVnodes -v 4
|
||||||
system sh/cfg.sh -n dnode7 -c numOfTotalVnodes -v 4
|
system sh/cfg.sh -n dnode7 -c numOfTotalVnodes -v 4
|
||||||
system sh/cfg.sh -n dnode8 -c numOfTotalVnodes -v 4
|
system sh/cfg.sh -n dnode8 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode5 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode5 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode6 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode6 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode7 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode7 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode8 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode8 -c numOfMnodes -v 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c wallevel -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 dnode2 -c wallevel -v 1
|
||||||
|
|
|
@ -18,14 +18,14 @@ system sh/cfg.sh -n dnode6 -c numOfTotalVnodes -v 4
|
||||||
system sh/cfg.sh -n dnode7 -c numOfTotalVnodes -v 4
|
system sh/cfg.sh -n dnode7 -c numOfTotalVnodes -v 4
|
||||||
system sh/cfg.sh -n dnode8 -c numOfTotalVnodes -v 4
|
system sh/cfg.sh -n dnode8 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode5 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode5 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode6 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode6 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode7 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode7 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode8 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode8 -c numOfMnodes -v 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 0
|
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 0
|
||||||
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 0
|
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 0
|
||||||
|
|
|
@ -6,9 +6,9 @@ system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
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 dnode2 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numofMpeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numofMpeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numofMpeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
|
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -6,9 +6,9 @@ system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
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 dnode2 -c walLevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -6,9 +6,9 @@ system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
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 dnode2 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 10
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 10
|
||||||
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 10
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 10
|
||||||
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 10
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 10
|
||||||
|
|
|
@ -9,10 +9,10 @@ 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 dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode4 -c wallevel -v 2
|
system sh/cfg.sh -n dnode4 -c wallevel -v 2
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -10,10 +10,10 @@ 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 dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode4 -c wallevel -v 2
|
system sh/cfg.sh -n dnode4 -c wallevel -v 2
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -10,10 +10,10 @@ 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 dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode4 -c wallevel -v 2
|
system sh/cfg.sh -n dnode4 -c wallevel -v 2
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -10,10 +10,10 @@ 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 dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode4 -c wallevel -v 2
|
system sh/cfg.sh -n dnode4 -c wallevel -v 2
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -7,9 +7,9 @@ system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
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 dnode2 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -7,9 +7,9 @@ system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
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 dnode2 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -7,9 +7,9 @@ system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
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 dnode2 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -7,9 +7,9 @@ system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
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 dnode2 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -12,9 +12,9 @@ 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 dnode2 -c wallevel -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c wallevel -v 1
|
system sh/cfg.sh -n dnode3 -c wallevel -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMpeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
|
|
||||||
print ========== step1
|
print ========== step1
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
|
|
|
@ -5,10 +5,10 @@ system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/deploy.sh -n dnode4 -i 4
|
system sh/deploy.sh -n dnode4 -i 4
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
||||||
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
||||||
|
|
|
@ -5,10 +5,10 @@ system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/deploy.sh -n dnode4 -i 4
|
system sh/deploy.sh -n dnode4 -i 4
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 10
|
||||||
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 10
|
||||||
|
|
|
@ -3,9 +3,9 @@ system sh/deploy.sh -n dnode1 -i 1
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 2
|
||||||
|
|
||||||
print ============== step1
|
print ============== step1
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
|
|
|
@ -3,9 +3,9 @@ system sh/deploy.sh -n dnode1 -i 1
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 2
|
||||||
|
|
||||||
print ============== step1
|
print ============== step1
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
|
@ -91,7 +91,7 @@ print ============== step5
|
||||||
sleep 2000
|
sleep 2000
|
||||||
sql create dnode $hostname2
|
sql create dnode $hostname2
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
system sh/exec_up.sh -n dnode2 -s start
|
system sh/exec_up.sh -n dnode2 -s start
|
||||||
sleep 8000
|
sleep 8000
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,9 @@ system sh/deploy.sh -n dnode1 -i 1
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 2
|
||||||
|
|
||||||
print ============== step1
|
print ============== step1
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
|
|
|
@ -3,9 +3,9 @@ system sh/deploy.sh -n dnode1 -i 1
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 2
|
||||||
|
|
||||||
print ============== step1
|
print ============== step1
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
|
|
|
@ -3,9 +3,9 @@ system sh/deploy.sh -n dnode1 -i 1
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 2
|
||||||
|
|
||||||
print ============== step1
|
print ============== step1
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
|
@ -89,7 +89,7 @@ endi
|
||||||
print ============== step5
|
print ============== step5
|
||||||
system sh/exec_up.sh -n dnode2 -s stop
|
system sh/exec_up.sh -n dnode2 -s stop
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
sleep 5000
|
sleep 5000
|
||||||
system sh/exec_up.sh -n dnode2 -s start
|
system sh/exec_up.sh -n dnode2 -s start
|
||||||
sql create dnode $hostname2
|
sql create dnode $hostname2
|
||||||
|
|
|
@ -3,9 +3,9 @@ system sh/deploy.sh -n dnode1 -i 1
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
|
|
||||||
print ============== step1
|
print ============== step1
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
|
@ -97,7 +97,7 @@ system sh/exec_up.sh -n dnode2 -s stop
|
||||||
sleep 3000
|
sleep 3000
|
||||||
|
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/exec_up.sh -n dnode2 -s start
|
system sh/exec_up.sh -n dnode2 -s start
|
||||||
|
|
||||||
print ============== step5
|
print ============== step5
|
||||||
|
|
|
@ -5,10 +5,10 @@ system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/deploy.sh -n dnode4 -i 4
|
system sh/deploy.sh -n dnode4 -i 4
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 3
|
||||||
|
|
||||||
print ============== step1
|
print ============== step1
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
|
@ -145,7 +145,7 @@ system sh/exec_up.sh -n dnode2 -s stop
|
||||||
sleep 3000
|
sleep 3000
|
||||||
|
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/exec_up.sh -n dnode2 -s start
|
system sh/exec_up.sh -n dnode2 -s start
|
||||||
|
|
||||||
print ============== step6
|
print ============== step6
|
||||||
|
|
|
@ -3,9 +3,9 @@ system sh/deploy.sh -n dnode1 -i 1
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/deploy.sh -n dnode3 -i 3
|
system sh/deploy.sh -n dnode3 -i 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 2
|
||||||
|
|
||||||
print ============== step1
|
print ============== step1
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
|
|
|
@ -18,8 +18,8 @@ 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 dnode2 -c maxTablesPerVnode -v 4
|
||||||
system sh/cfg.sh -n dnode1 -c tableMetaKeepTimer -v 5
|
system sh/cfg.sh -n dnode1 -c tableMetaKeepTimer -v 5
|
||||||
system sh/cfg.sh -n dnode2 -c tableMetaKeepTimer -v 5
|
system sh/cfg.sh -n dnode2 -c tableMetaKeepTimer -v 5
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
|
|
||||||
$dbPrefix = db
|
$dbPrefix = db
|
||||||
$tbPrefix = tb
|
$tbPrefix = tb
|
||||||
|
|
|
@ -6,8 +6,8 @@ system sh/deploy.sh -n dnode1 -i 1
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/cfg.sh -n dnode1 -c walLevel -v 0
|
system sh/cfg.sh -n dnode1 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -16,8 +16,8 @@ system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 0
|
||||||
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 0
|
system sh/cfg.sh -n dnode2 -c mnodeEqualVnodeNum -v 0
|
||||||
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -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 dnode2 -c maxtablesPerVnode -v 4
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
|
|
||||||
$dbPrefix = tb_db
|
$dbPrefix = tb_db
|
||||||
$tbPrefix = tb_tb
|
$tbPrefix = tb_tb
|
||||||
|
|
|
@ -40,10 +40,10 @@ 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 dnode3 -c maxtablesPerVnode -v 4
|
||||||
system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4
|
system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 3
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 3
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c maxVnodeConnections -v 1000
|
system sh/cfg.sh -n dnode1 -c maxVnodeConnections -v 1000
|
||||||
system sh/cfg.sh -n dnode1 -c maxMeterConnections -v 1000
|
system sh/cfg.sh -n dnode1 -c maxMeterConnections -v 1000
|
||||||
|
|
|
@ -6,8 +6,8 @@ system sh/deploy.sh -n dnode1 -i 1
|
||||||
system sh/deploy.sh -n dnode2 -i 2
|
system sh/deploy.sh -n dnode2 -i 2
|
||||||
system sh/cfg.sh -n dnode1 -c walLevel -v 0
|
system sh/cfg.sh -n dnode1 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
system sh/cfg.sh -n dnode2 -c walLevel -v 0
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2
|
||||||
system sh/exec.sh -n dnode1 -s start
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -8,10 +8,10 @@ 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 dnode2 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -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 dnode4 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -10,10 +10,10 @@ 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 dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode4 -c wallevel -v 2
|
system sh/cfg.sh -n dnode4 -c wallevel -v 2
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numOfMPeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -8,10 +8,10 @@ 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 dnode2 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -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 dnode4 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -6,9 +6,9 @@ system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
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 dnode2 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numofMpeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numofMpeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numofMpeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
|
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
sql connect
|
sql connect
|
||||||
|
|
|
@ -8,10 +8,10 @@ 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 dnode2 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -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 dnode4 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode4 -c numofMpeers -v 1
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
|
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 dnode2 -c mnodeEqualVnodeNum -v 4
|
||||||
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
|
||||||
|
|
|
@ -6,9 +6,9 @@ system sh/deploy.sh -n dnode3 -i 3
|
||||||
system sh/cfg.sh -n dnode1 -c wallevel -v 2
|
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 dnode2 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
system sh/cfg.sh -n dnode3 -c wallevel -v 2
|
||||||
system sh/cfg.sh -n dnode1 -c numofMpeers -v 3
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode2 -c numofMpeers -v 3
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 3
|
||||||
system sh/cfg.sh -n dnode3 -c numofMpeers -v 3
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 3
|
||||||
|
|
||||||
system sh/exec_up.sh -n dnode1 -s start
|
system sh/exec_up.sh -n dnode1 -s start
|
||||||
sql connect
|
sql connect
|
||||||
|
|
Loading…
Reference in New Issue