MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / updateActiveReplicaMastersFromRsi

Function updateActiveReplicaMastersFromRsi

src/rdb.cpp:3533–3557  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3531}
3532
3533void updateActiveReplicaMastersFromRsi(rdbSaveInfo *rsi) {
3534 if (rsi != nullptr && g_pserver->fActiveReplica) {
3535 serverLog(LL_NOTICE, "RDB contains information on %d masters", (int)rsi->numMasters());
3536 listIter li;
3537 listNode *ln;
3538
3539 listRewind(g_pserver->masters, &li);
3540 while ((ln = listNext(&li)))
3541 {
3542 redisMaster *mi = (redisMaster*)listNodeValue(ln);
3543 if (mi->master != nullptr) {
3544 continue; //ignore connected masters
3545 }
3546 for (size_t i = 0; i < rsi->numMasters(); i++) {
3547 if (!sdscmp(mi->masterhost, (sds)rsi->vecmastersaveinfo[i].masterhost.get()) && mi->masterport == rsi->vecmastersaveinfo[i].masterport) {
3548 memcpy(mi->master_replid, rsi->vecmastersaveinfo[i].master_replid, sizeof(mi->master_replid));
3549 mi->master_initial_offset = rsi->vecmastersaveinfo[i].master_initial_offset;
3550 replicationCacheMasterUsingMaster(mi);
3551 serverLog(LL_NOTICE, "Cached master recovered from RDB for %s:%d", mi->masterhost, mi->masterport);
3552 break;
3553 }
3554 }
3555 }
3556 }
3557}
3558
3559int rdbLoad(rdbSaveInfo *rsi, int rdbflags)
3560{

Callers 2

readSyncBulkPayloadRdbFunction · 0.85
loadDataFromDiskFunction · 0.85

Calls 7

serverLogFunction · 0.85
listRewindFunction · 0.85
listNextFunction · 0.85
sdscmpFunction · 0.85
numMastersMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected