Merge branch '3.0' of https://github.com/taosdata/TDengine into refact/submit_req
This commit is contained in:
commit
52443d3483
|
@ -201,3 +201,45 @@ TDengine 中时间戳的时区总是由客户端进行处理,而与服务端
|
||||||
OOM 是操作系统的保护机制,当操作系统内存(包括 SWAP )不足时,会杀掉某些进程,从而保证操作系统的稳定运行。通常内存不足主要是如下两个原因导致,一是剩余内存小于 vm.min_free_kbytes ;二是程序请求的内存大于剩余内存。还有一种情况是内存充足但程序占用了特殊的内存地址,也会触发 OOM 。
|
OOM 是操作系统的保护机制,当操作系统内存(包括 SWAP )不足时,会杀掉某些进程,从而保证操作系统的稳定运行。通常内存不足主要是如下两个原因导致,一是剩余内存小于 vm.min_free_kbytes ;二是程序请求的内存大于剩余内存。还有一种情况是内存充足但程序占用了特殊的内存地址,也会触发 OOM 。
|
||||||
|
|
||||||
TDengine 会预先为每个 VNode 分配好内存,每个 Database 的 VNode 个数受 建库时的vgroups参数影响,每个 VNode 占用的内存大小受 buffer参数 影响。要防止 OOM,需要在项目建设之初合理规划内存,并合理设置 SWAP ,除此之外查询过量的数据也有可能导致内存暴涨,这取决于具体的查询语句。TDengine 企业版对内存管理做了优化,采用了新的内存分配器,对稳定性有更高要求的用户可以考虑选择企业版。
|
TDengine 会预先为每个 VNode 分配好内存,每个 Database 的 VNode 个数受 建库时的vgroups参数影响,每个 VNode 占用的内存大小受 buffer参数 影响。要防止 OOM,需要在项目建设之初合理规划内存,并合理设置 SWAP ,除此之外查询过量的数据也有可能导致内存暴涨,这取决于具体的查询语句。TDengine 企业版对内存管理做了优化,采用了新的内存分配器,对稳定性有更高要求的用户可以考虑选择企业版。
|
||||||
|
|
||||||
|
### 19. 在macOS上遇到Too many open files怎么办?
|
||||||
|
|
||||||
|
taosd日志文件报错Too many open file,是由于taosd打开文件数超过系统设置的上限所致。
|
||||||
|
解决方案如下:
|
||||||
|
1. 新建文件 /Library/LaunchDaemons/limit.maxfiles.plist,写入以下内容(以下示例将limit和maxfiles改为10万,可按需修改):
|
||||||
|
```
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
|
||||||
|
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>limit.maxfiles</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>launchctl</string>
|
||||||
|
<string>limit</string>
|
||||||
|
<string>maxfiles</string>
|
||||||
|
<string>100000</string>
|
||||||
|
<string>100000</string>
|
||||||
|
</array>
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
<key>ServiceIPC</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
```
|
||||||
|
2. 修改文件权限
|
||||||
|
```
|
||||||
|
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
|
||||||
|
sudo chmod 644 /Library/LaunchDaemons/limit.maxfiles.plist
|
||||||
|
```
|
||||||
|
3. 加载 plist 文件 (或重启系统后生效。launchd在启动时会自动加载该目录的 plist)
|
||||||
|
```
|
||||||
|
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
|
||||||
|
```
|
||||||
|
4.确认更改后的限制
|
||||||
|
```
|
||||||
|
launchctl limit maxfiles
|
||||||
|
```
|
||||||
|
|
|
@ -1059,6 +1059,7 @@ typedef struct {
|
||||||
int32_t vgId;
|
int32_t vgId;
|
||||||
int8_t syncState;
|
int8_t syncState;
|
||||||
int8_t syncRestore;
|
int8_t syncRestore;
|
||||||
|
int8_t syncCanRead;
|
||||||
int64_t cacheUsage;
|
int64_t cacheUsage;
|
||||||
int64_t numOfTables;
|
int64_t numOfTables;
|
||||||
int64_t numOfTimeSeries;
|
int64_t numOfTimeSeries;
|
||||||
|
|
|
@ -992,15 +992,20 @@ int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
|
||||||
if (tEncodeI32(&encoder, vlen) < 0) return -1;
|
if (tEncodeI32(&encoder, vlen) < 0) return -1;
|
||||||
for (int32_t i = 0; i < vlen; ++i) {
|
for (int32_t i = 0; i < vlen; ++i) {
|
||||||
SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
|
SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i);
|
||||||
|
int64_t reserved = 0;
|
||||||
if (tEncodeI32(&encoder, pload->vgId) < 0) return -1;
|
if (tEncodeI32(&encoder, pload->vgId) < 0) return -1;
|
||||||
if (tEncodeI8(&encoder, pload->syncState) < 0) return -1;
|
if (tEncodeI8(&encoder, pload->syncState) < 0) return -1;
|
||||||
if (tEncodeI8(&encoder, pload->syncRestore) < 0) return -1;
|
if (tEncodeI8(&encoder, pload->syncRestore) < 0) return -1;
|
||||||
|
if (tEncodeI8(&encoder, pload->syncCanRead) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pload->cacheUsage) < 0) return -1;
|
if (tEncodeI64(&encoder, pload->cacheUsage) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pload->numOfTables) < 0) return -1;
|
if (tEncodeI64(&encoder, pload->numOfTables) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pload->numOfTimeSeries) < 0) return -1;
|
if (tEncodeI64(&encoder, pload->numOfTimeSeries) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pload->totalStorage) < 0) return -1;
|
if (tEncodeI64(&encoder, pload->totalStorage) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pload->compStorage) < 0) return -1;
|
if (tEncodeI64(&encoder, pload->compStorage) < 0) return -1;
|
||||||
if (tEncodeI64(&encoder, pload->pointsWritten) < 0) return -1;
|
if (tEncodeI64(&encoder, pload->pointsWritten) < 0) return -1;
|
||||||
|
if (tEncodeI64(&encoder, reserved) < 0) return -1;
|
||||||
|
if (tEncodeI64(&encoder, reserved) < 0) return -1;
|
||||||
|
if (tEncodeI64(&encoder, reserved) < 0) return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// mnode loads
|
// mnode loads
|
||||||
|
@ -1065,15 +1070,20 @@ int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) {
|
||||||
|
|
||||||
for (int32_t i = 0; i < vlen; ++i) {
|
for (int32_t i = 0; i < vlen; ++i) {
|
||||||
SVnodeLoad vload = {0};
|
SVnodeLoad vload = {0};
|
||||||
|
int64_t reserved = 0;
|
||||||
if (tDecodeI32(&decoder, &vload.vgId) < 0) return -1;
|
if (tDecodeI32(&decoder, &vload.vgId) < 0) return -1;
|
||||||
if (tDecodeI8(&decoder, &vload.syncState) < 0) return -1;
|
if (tDecodeI8(&decoder, &vload.syncState) < 0) return -1;
|
||||||
if (tDecodeI8(&decoder, &vload.syncRestore) < 0) return -1;
|
if (tDecodeI8(&decoder, &vload.syncRestore) < 0) return -1;
|
||||||
|
if (tDecodeI8(&decoder, &vload.syncCanRead) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &vload.cacheUsage) < 0) return -1;
|
if (tDecodeI64(&decoder, &vload.cacheUsage) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &vload.numOfTables) < 0) return -1;
|
if (tDecodeI64(&decoder, &vload.numOfTables) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &vload.numOfTimeSeries) < 0) return -1;
|
if (tDecodeI64(&decoder, &vload.numOfTimeSeries) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &vload.totalStorage) < 0) return -1;
|
if (tDecodeI64(&decoder, &vload.totalStorage) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &vload.compStorage) < 0) return -1;
|
if (tDecodeI64(&decoder, &vload.compStorage) < 0) return -1;
|
||||||
if (tDecodeI64(&decoder, &vload.pointsWritten) < 0) return -1;
|
if (tDecodeI64(&decoder, &vload.pointsWritten) < 0) return -1;
|
||||||
|
if (tDecodeI64(&decoder, &reserved) < 0) return -1;
|
||||||
|
if (tDecodeI64(&decoder, &reserved) < 0) return -1;
|
||||||
|
if (tDecodeI64(&decoder, &reserved) < 0) return -1;
|
||||||
if (taosArrayPush(pReq->pVloads, &vload) == NULL) {
|
if (taosArrayPush(pReq->pVloads, &vload) == NULL) {
|
||||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -328,6 +328,7 @@ typedef struct {
|
||||||
int32_t dnodeId;
|
int32_t dnodeId;
|
||||||
ESyncState syncState;
|
ESyncState syncState;
|
||||||
bool syncRestore;
|
bool syncRestore;
|
||||||
|
bool syncCanRead;
|
||||||
} SVnodeGid;
|
} SVnodeGid;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -375,14 +375,18 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) {
|
||||||
}
|
}
|
||||||
bool roleChanged = false;
|
bool roleChanged = false;
|
||||||
for (int32_t vg = 0; vg < pVgroup->replica; ++vg) {
|
for (int32_t vg = 0; vg < pVgroup->replica; ++vg) {
|
||||||
if (pVgroup->vnodeGid[vg].dnodeId == statusReq.dnodeId) {
|
SVnodeGid *pGid = &pVgroup->vnodeGid[vg];
|
||||||
if (pVgroup->vnodeGid[vg].syncState != pVload->syncState ||
|
if (pGid->dnodeId == statusReq.dnodeId) {
|
||||||
pVgroup->vnodeGid[vg].syncRestore != pVload->syncRestore) {
|
if (pGid->syncState != pVload->syncState || pGid->syncRestore != pVload->syncRestore ||
|
||||||
mInfo("vgId:%d, state changed by status msg, old state:%s restored:%d new state:%s restored:%d",
|
pGid->syncCanRead != pVload->syncCanRead) {
|
||||||
pVgroup->vgId, syncStr(pVgroup->vnodeGid[vg].syncState), pVgroup->vnodeGid[vg].syncRestore,
|
mInfo(
|
||||||
syncStr(pVload->syncState), pVload->syncRestore);
|
"vgId:%d, state changed by status msg, old state:%s restored:%d canRead:%d new state:%s restored:%d "
|
||||||
pVgroup->vnodeGid[vg].syncState = pVload->syncState;
|
"canRead:%d",
|
||||||
pVgroup->vnodeGid[vg].syncRestore = pVload->syncRestore;
|
pVgroup->vgId, syncStr(pGid->syncState), pGid->syncRestore, pGid->syncCanRead,
|
||||||
|
syncStr(pVload->syncState), pVload->syncRestore, pVload->syncCanRead);
|
||||||
|
pGid->syncState = pVload->syncState;
|
||||||
|
pGid->syncRestore = pVload->syncRestore;
|
||||||
|
pGid->syncCanRead = pVload->syncCanRead;
|
||||||
roleChanged = true;
|
roleChanged = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -150,12 +150,16 @@ static void mndSetVgroupOffline(SMnode *pMnode, int32_t dnodeId, int64_t curMs)
|
||||||
|
|
||||||
bool roleChanged = false;
|
bool roleChanged = false;
|
||||||
for (int32_t vg = 0; vg < pVgroup->replica; ++vg) {
|
for (int32_t vg = 0; vg < pVgroup->replica; ++vg) {
|
||||||
if (pVgroup->vnodeGid[vg].dnodeId == dnodeId) {
|
SVnodeGid *pGid = &pVgroup->vnodeGid[vg];
|
||||||
if (pVgroup->vnodeGid[vg].syncState != TAOS_SYNC_STATE_OFFLINE) {
|
if (pGid->dnodeId == dnodeId) {
|
||||||
mInfo("vgId:%d, state changed by offline check, old state:%s restored:%d new state:error restored:0",
|
if (pGid->syncState != TAOS_SYNC_STATE_OFFLINE) {
|
||||||
pVgroup->vgId, syncStr(pVgroup->vnodeGid[vg].syncState), pVgroup->vnodeGid[vg].syncRestore);
|
mInfo(
|
||||||
pVgroup->vnodeGid[vg].syncState = TAOS_SYNC_STATE_OFFLINE;
|
"vgId:%d, state changed by offline check, old state:%s restored:%d canRead:%d new state:error restored:0 "
|
||||||
pVgroup->vnodeGid[vg].syncRestore = 0;
|
"canRead:0",
|
||||||
|
pVgroup->vgId, syncStr(pGid->syncState), pGid->syncRestore, pGid->syncCanRead);
|
||||||
|
pGid->syncState = TAOS_SYNC_STATE_OFFLINE;
|
||||||
|
pGid->syncRestore = 0;
|
||||||
|
pGid->syncCanRead = 0;
|
||||||
roleChanged = true;
|
roleChanged = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -491,7 +495,7 @@ void mndPreClose(SMnode *pMnode) {
|
||||||
if (pMnode != NULL) {
|
if (pMnode != NULL) {
|
||||||
syncLeaderTransfer(pMnode->syncMgmt.sync);
|
syncLeaderTransfer(pMnode->syncMgmt.sync);
|
||||||
syncPreStop(pMnode->syncMgmt.sync);
|
syncPreStop(pMnode->syncMgmt.sync);
|
||||||
|
#if 0
|
||||||
while (syncSnapshotRecving(pMnode->syncMgmt.sync)) {
|
while (syncSnapshotRecving(pMnode->syncMgmt.sync)) {
|
||||||
mInfo("vgId:1, snapshot is recving");
|
mInfo("vgId:1, snapshot is recving");
|
||||||
taosMsleep(300);
|
taosMsleep(300);
|
||||||
|
@ -500,6 +504,7 @@ void mndPreClose(SMnode *pMnode) {
|
||||||
mInfo("vgId:1, snapshot is sending");
|
mInfo("vgId:1, snapshot is sending");
|
||||||
taosMsleep(300);
|
taosMsleep(300);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -186,6 +186,7 @@ static int32_t mndVgroupActionUpdate(SSdb *pSdb, SVgObj *pOld, SVgObj *pNew) {
|
||||||
if (pNewGid->dnodeId == pOldGid->dnodeId) {
|
if (pNewGid->dnodeId == pOldGid->dnodeId) {
|
||||||
pNewGid->syncState = pOldGid->syncState;
|
pNewGid->syncState = pOldGid->syncState;
|
||||||
pNewGid->syncRestore = pOldGid->syncRestore;
|
pNewGid->syncRestore = pOldGid->syncRestore;
|
||||||
|
pNewGid->syncCanRead = pOldGid->syncCanRead;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -696,8 +697,16 @@ static int32_t mndRetrieveVgroups(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *p
|
||||||
if (!exist) {
|
if (!exist) {
|
||||||
strcpy(role, "dropping");
|
strcpy(role, "dropping");
|
||||||
} else if (online) {
|
} else if (online) {
|
||||||
bool show = (pVgroup->vnodeGid[i].syncState == TAOS_SYNC_STATE_LEADER && !pVgroup->vnodeGid[i].syncRestore);
|
char *star = "";
|
||||||
snprintf(role, sizeof(role), "%s%s", syncStr(pVgroup->vnodeGid[i].syncState), show ? "*" : "");
|
if (pVgroup->vnodeGid[i].syncState == TAOS_SYNC_STATE_LEADER) {
|
||||||
|
if (!pVgroup->vnodeGid[i].syncRestore && !pVgroup->vnodeGid[i].syncCanRead) {
|
||||||
|
star = "**";
|
||||||
|
} else if (!pVgroup->vnodeGid[i].syncRestore && pVgroup->vnodeGid[i].syncCanRead) {
|
||||||
|
star = "*";
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
snprintf(role, sizeof(role), "%s%s", syncStr(pVgroup->vnodeGid[i].syncState), star);
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
STR_WITH_MAXSIZE_TO_VARSTR(buf1, role, pShow->pMeta->pSchemas[cols].bytes);
|
STR_WITH_MAXSIZE_TO_VARSTR(buf1, role, pShow->pMeta->pSchemas[cols].bytes);
|
||||||
|
|
|
@ -380,6 +380,7 @@ int32_t vnodeGetLoad(SVnode *pVnode, SVnodeLoad *pLoad) {
|
||||||
pLoad->vgId = TD_VID(pVnode);
|
pLoad->vgId = TD_VID(pVnode);
|
||||||
pLoad->syncState = state.state;
|
pLoad->syncState = state.state;
|
||||||
pLoad->syncRestore = state.restored;
|
pLoad->syncRestore = state.restored;
|
||||||
|
pLoad->syncCanRead = state.canRead;
|
||||||
pLoad->cacheUsage = tsdbCacheGetUsage(pVnode);
|
pLoad->cacheUsage = tsdbCacheGetUsage(pVnode);
|
||||||
pLoad->numOfTables = metaGetTbNum(pVnode->pMeta);
|
pLoad->numOfTables = metaGetTbNum(pVnode->pMeta);
|
||||||
pLoad->numOfTimeSeries = metaGetTimeSeriesNum(pVnode->pMeta);
|
pLoad->numOfTimeSeries = metaGetTimeSeriesNum(pVnode->pMeta);
|
||||||
|
|
|
@ -515,7 +515,7 @@ void vnodeSyncPreClose(SVnode *pVnode) {
|
||||||
vInfo("vgId:%d, pre close sync", pVnode->config.vgId);
|
vInfo("vgId:%d, pre close sync", pVnode->config.vgId);
|
||||||
syncLeaderTransfer(pVnode->sync);
|
syncLeaderTransfer(pVnode->sync);
|
||||||
syncPreStop(pVnode->sync);
|
syncPreStop(pVnode->sync);
|
||||||
|
#if 0
|
||||||
while (syncSnapshotRecving(pVnode->sync)) {
|
while (syncSnapshotRecving(pVnode->sync)) {
|
||||||
vInfo("vgId:%d, snapshot is recving", pVnode->config.vgId);
|
vInfo("vgId:%d, snapshot is recving", pVnode->config.vgId);
|
||||||
taosMsleep(300);
|
taosMsleep(300);
|
||||||
|
@ -524,7 +524,7 @@ void vnodeSyncPreClose(SVnode *pVnode) {
|
||||||
vInfo("vgId:%d, snapshot is sending", pVnode->config.vgId);
|
vInfo("vgId:%d, snapshot is sending", pVnode->config.vgId);
|
||||||
taosMsleep(300);
|
taosMsleep(300);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
taosThreadMutexLock(&pVnode->lock);
|
taosThreadMutexLock(&pVnode->lock);
|
||||||
if (pVnode->blocked) {
|
if (pVnode->blocked) {
|
||||||
vInfo("vgId:%d, post block after close sync", pVnode->config.vgId);
|
vInfo("vgId:%d, post block after close sync", pVnode->config.vgId);
|
||||||
|
|
|
@ -62,7 +62,7 @@ class TDTestCase:
|
||||||
# only for 1 mnode
|
# only for 1 mnode
|
||||||
mnode_name = k
|
mnode_name = k
|
||||||
|
|
||||||
if v[2] in ['leader', 'leader*']:
|
if v[2] in ['leader', 'leader*', 'leader**']:
|
||||||
is_leader=True
|
is_leader=True
|
||||||
|
|
||||||
if count==1 and is_leader:
|
if count==1 and is_leader:
|
||||||
|
@ -111,12 +111,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader', 'leader*', 'follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) ==1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -116,12 +116,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -117,12 +117,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -116,12 +116,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -117,12 +117,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -120,12 +120,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -120,12 +120,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -120,12 +120,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -125,12 +125,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -125,12 +125,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -125,12 +125,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader','leader*', 'leader**','follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.info(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.info(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -208,12 +208,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader','leader*', 'leader**','follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -117,12 +117,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader','leader*', 'leader**','follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.exit(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -116,12 +116,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
|
@ -119,12 +119,12 @@ class TDTestCase:
|
||||||
vgroup_id = vgroup_info[0]
|
vgroup_id = vgroup_info[0]
|
||||||
tmp_list = []
|
tmp_list = []
|
||||||
for role in vgroup_info[3:-4]:
|
for role in vgroup_info[3:-4]:
|
||||||
if role in ['leader','leader*','follower']:
|
if role in ['leader', 'leader*', 'leader**', 'follower']:
|
||||||
tmp_list.append(role)
|
tmp_list.append(role)
|
||||||
vgroups_infos[vgroup_id]=tmp_list
|
vgroups_infos[vgroup_id]=tmp_list
|
||||||
|
|
||||||
for k , v in vgroups_infos.items():
|
for k , v in vgroups_infos.items():
|
||||||
if len(v) ==1 and v[0] in ['leader', 'leader*']:
|
if len(v) == 1 and v[0] in ['leader', 'leader*', 'leader**']:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check success of vgroup_id {} ======".format(k))
|
||||||
else:
|
else:
|
||||||
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
tdLog.notice(" === create database replica only 1 role leader check fail of vgroup_id {} ======".format(k))
|
||||||
|
|
Loading…
Reference in New Issue