TD-2086
This commit is contained in:
parent
7651b6e43a
commit
68078a6cab
|
@ -498,7 +498,7 @@ static SSyncPeer *syncAddPeer(SSyncNode *pNode, const SNodeInfo *pInfo) {
|
||||||
int32_t ret = strcmp(pPeer->fqdn, tsNodeFqdn);
|
int32_t ret = strcmp(pPeer->fqdn, tsNodeFqdn);
|
||||||
if (pPeer->nodeId == 0 || (ret > 0) || (ret == 0 && pPeer->port > tsSyncPort)) {
|
if (pPeer->nodeId == 0 || (ret > 0) || (ret == 0 && pPeer->port > tsSyncPort)) {
|
||||||
int32_t checkMs = 100 + (pNode->vgId * 10) % 100;
|
int32_t checkMs = 100 + (pNode->vgId * 10) % 100;
|
||||||
if (pNode->vgId > 1) checkMs = tsStatusInterval * 2000 + checkMs;
|
if (pNode->vgId > 1) checkMs = tsStatusInterval * 1000 + checkMs;
|
||||||
sDebug("%s, start to check peer connection after %d ms", pPeer->id, checkMs);
|
sDebug("%s, start to check peer connection after %d ms", pPeer->id, checkMs);
|
||||||
taosTmrReset(syncCheckPeerConnection, checkMs, pPeer, tsSyncTmrCtrl, &pPeer->timer);
|
taosTmrReset(syncCheckPeerConnection, checkMs, pPeer, tsSyncTmrCtrl, &pPeer->timer);
|
||||||
}
|
}
|
||||||
|
@ -575,6 +575,15 @@ static void syncChooseMaster(SSyncNode *pNode) {
|
||||||
if (index == pNode->selfIndex) {
|
if (index == pNode->selfIndex) {
|
||||||
sInfo("vgId:%d, start to work as master", pNode->vgId);
|
sInfo("vgId:%d, start to work as master", pNode->vgId);
|
||||||
nodeRole = TAOS_SYNC_ROLE_MASTER;
|
nodeRole = TAOS_SYNC_ROLE_MASTER;
|
||||||
|
|
||||||
|
for (int32_t i = 0; i < pNode->replica; ++i) {
|
||||||
|
pPeer = pNode->peerInfo[i];
|
||||||
|
if (pPeer->version == nodeVersion) {
|
||||||
|
pPeer->role = TAOS_SYNC_ROLE_SLAVE;
|
||||||
|
sInfo("%s, it shall work as slave", pPeer->id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
syncResetFlowCtrl(pNode);
|
syncResetFlowCtrl(pNode);
|
||||||
(*pNode->notifyRole)(pNode->ahandle, nodeRole);
|
(*pNode->notifyRole)(pNode->ahandle, nodeRole);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1209,7 +1218,7 @@ static int32_t syncForwardToPeerImpl(SSyncNode *pNode, void *data, void *mhandle
|
||||||
int32_t fwdLen;
|
int32_t fwdLen;
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
|
|
||||||
if (nodeRole == TAOS_SYNC_ROLE_SLAVE && pWalHead->version != nodeVersion + 1) {
|
if (nodeRole == TAOS_SYNC_ROLE_SLAVE && pWalHead->version > nodeVersion + 1) {
|
||||||
sError("vgId:%d, received ver:%" PRIu64 ", inconsistent with last ver:%" PRIu64 ", restart connection", pNode->vgId,
|
sError("vgId:%d, received ver:%" PRIu64 ", inconsistent with last ver:%" PRIu64 ", restart connection", pNode->vgId,
|
||||||
pWalHead->version, nodeVersion);
|
pWalHead->version, nodeVersion);
|
||||||
for (int32_t i = 0; i < pNode->replica; ++i) {
|
for (int32_t i = 0; i < pNode->replica; ++i) {
|
||||||
|
|
Loading…
Reference in New Issue