sort epset
This commit is contained in:
parent
20aa81c96a
commit
62e6b5ca31
|
@ -82,6 +82,13 @@ void epsetSort(SEpSet* pDst) {
|
|||
if (pDst->numOfEps <= 1) {
|
||||
return;
|
||||
}
|
||||
int validIdx = false;
|
||||
SEp ep = {0};
|
||||
if (pDst->inUse >= 0 && pDst->inUse < pDst->numOfEps) {
|
||||
validIdx = true;
|
||||
epAssign(&ep, &pDst->eps[pDst->inUse]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < pDst->numOfEps - 1; i++) {
|
||||
for (int j = 0; j < pDst->numOfEps - 1 - i; j++) {
|
||||
SEp* f = &pDst->eps[j];
|
||||
|
@ -95,6 +102,14 @@ void epsetSort(SEpSet* pDst) {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (validIdx == true)
|
||||
for (int i = 0; i < pDst->numOfEps; i++) {
|
||||
int cmp = strncmp(ep.fqdn, pDst->eps[i].fqdn, sizeof(ep.fqdn));
|
||||
if (cmp == 0 && ep.port == pDst->eps[i].port) {
|
||||
pDst->inUse = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateEpSet_s(SCorEpSet* pEpSet, SEpSet* pNewEpSet) {
|
||||
|
|
|
@ -241,7 +241,6 @@ void mndGetMnodeEpSet(SMnode *pMnode, SEpSet *pEpSet) {
|
|||
}
|
||||
|
||||
void *pIter = NULL;
|
||||
// pEpSet->inUse = 0;
|
||||
while (1) {
|
||||
SMnodeObj *pObj = NULL;
|
||||
pIter = sdbFetch(pSdb, SDB_MNODE, pIter, (void **)&pObj);
|
||||
|
@ -252,7 +251,7 @@ void mndGetMnodeEpSet(SMnode *pMnode, SEpSet *pEpSet) {
|
|||
pEpSet->inUse = pEpSet->numOfEps;
|
||||
} else {
|
||||
pEpSet->inUse = (pEpSet->numOfEps + 1) % totalMnodes;
|
||||
//pEpSet->inUse = 0;
|
||||
// pEpSet->inUse = 0;
|
||||
}
|
||||
}
|
||||
if (pObj->pDnode != NULL) {
|
||||
|
@ -268,6 +267,7 @@ void mndGetMnodeEpSet(SMnode *pMnode, SEpSet *pEpSet) {
|
|||
if (pEpSet->inUse >= pEpSet->numOfEps) {
|
||||
pEpSet->inUse = 0;
|
||||
}
|
||||
epsetSort(pEpSet);
|
||||
}
|
||||
|
||||
static int32_t mndSetCreateMnodeRedoLogs(SMnode *pMnode, STrans *pTrans, SMnodeObj *pObj) {
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "syncUtil.h"
|
||||
#include "syncVoteMgr.h"
|
||||
#include "tglobal.h"
|
||||
#include "tmisce.h"
|
||||
#include "tref.h"
|
||||
|
||||
static void syncNodeEqPingTimer(void* param, void* tmrId);
|
||||
|
@ -593,6 +594,7 @@ void syncGetRetryEpSet(int64_t rid, SEpSet* pEpSet) {
|
|||
pEpSet->inUse = (pSyncNode->raftCfg.cfg.myIndex + 1) % pEpSet->numOfEps;
|
||||
pEpSet->inUse = 0;
|
||||
}
|
||||
epsetSort(pEpSet);
|
||||
|
||||
sInfo("vgId:%d, sync get retry epset numOfEps:%d inUse:%d", pSyncNode->vgId, pEpSet->numOfEps, pEpSet->inUse);
|
||||
syncNodeRelease(pSyncNode);
|
||||
|
|
Loading…
Reference in New Issue