Lines Matching refs:master

201     struct sentinelRedisInstance *master; /* Master instance if it's slave. */  member
360 char *sentinelGetSubjectiveLeader(sentinelRedisInstance *master);
361 char *sentinelGetObjectiveLeader(sentinelRedisInstance *master);
367 sentinelRedisInstance *sentinelSelectSlave(sentinelRedisInstance *master);
369 void sentinelStartFailover(sentinelRedisInstance *master);
372 char *sentinelVoteLeader(sentinelRedisInstance *master, uint64_t req_epoch, char *req_runid, uint64…
376 int sentinelForceHelloUpdateForMaster(sentinelRedisInstance *master);
590 sentinelRedisInstance *master = (ri->flags & SRI_MASTER) ? in sentinelEvent() local
591 NULL : ri->master; in sentinelEvent()
593 if (master) { in sentinelEvent()
597 master->name, master->addr->ip, master->addr->port); in sentinelEvent()
630 sentinelRedisInstance *master = (ri->flags & SRI_MASTER) ? in sentinelEvent() local
631 ri : ri->master; in sentinelEvent()
632 if (master && master->notification_script) { in sentinelEvent()
633 sentinelScheduleScriptExecution(master->notification_script, in sentinelEvent()
914 void sentinelCallClientReconfScript(sentinelRedisInstance *master, int role, char *state, sentinelA… in sentinelCallClientReconfScript() argument
917 if (master->client_reconfig_script == NULL) return; in sentinelCallClientReconfScript()
920 sentinelScheduleScriptExecution(master->client_reconfig_script, in sentinelCallClientReconfScript()
921 master->name, in sentinelCallClientReconfScript()
1028 sentinelRedisInstance *master = dictGetVal(de), *match; in sentinelTryConnectionSharing() local
1031 if (master == ri->master) continue; in sentinelTryConnectionSharing()
1032 match = getSentinelRedisInstanceByAddrAndRunID(master->sentinels, in sentinelTryConnectionSharing()
1062 sentinelRedisInstance *master = dictGetVal(de), *match; in sentinelUpdateSentinelAddressInAllMasters() local
1063 match = getSentinelRedisInstanceByAddrAndRunID(master->sentinels, in sentinelUpdateSentinelAddressInAllMasters()
1145 …tance(char *name, int flags, char *hostname, int port, int quorum, sentinelRedisInstance *master) { in createSentinelRedisInstance() argument
1152 serverAssert((flags & SRI_MASTER) || master != NULL); in createSentinelRedisInstance()
1169 else if (flags & SRI_SLAVE) table = master->slaves; in createSentinelRedisInstance()
1170 else if (flags & SRI_SENTINEL) table = master->sentinels; in createSentinelRedisInstance()
1194 ri->down_after_period = master ? master->down_after_period : in createSentinelRedisInstance()
1207 ri->master = master; in createSentinelRedisInstance()
1259 if ((ri->flags & SRI_SLAVE) && (ri->flags & SRI_PROMOTED) && ri->master) in releaseSentinelRedisInstance()
1260 ri->master->promoted_slave = NULL; in releaseSentinelRedisInstance()
1300 int removeMatchingSentinelFromMaster(sentinelRedisInstance *master, char *runid) { in removeMatchingSentinelFromMaster() argument
1307 di = dictGetSafeIterator(master->sentinels); in removeMatchingSentinelFromMaster()
1312 dictDelete(master->sentinels,ri->name); in removeMatchingSentinelFromMaster()
1460 int sentinelResetMasterAndChangeAddress(sentinelRedisInstance *master, char *ip, int port) { in sentinelResetMasterAndChangeAddress() argument
1472 di = dictGetIterator(master->slaves); in sentinelResetMasterAndChangeAddress()
1486 if (!sentinelAddrIsEqual(newaddr,master->addr)) { in sentinelResetMasterAndChangeAddress()
1488 slaves[numslaves++] = createSentinelAddr(master->addr->ip, in sentinelResetMasterAndChangeAddress()
1489 master->addr->port); in sentinelResetMasterAndChangeAddress()
1493 sentinelResetMaster(master,SENTINEL_RESET_NO_SENTINELS); in sentinelResetMasterAndChangeAddress()
1494 oldaddr = master->addr; in sentinelResetMasterAndChangeAddress()
1495 master->addr = newaddr; in sentinelResetMasterAndChangeAddress()
1496 master->o_down_since_time = 0; in sentinelResetMasterAndChangeAddress()
1497 master->s_down_since_time = 0; in sentinelResetMasterAndChangeAddress()
1504 slaves[j]->port, master->quorum, master); in sentinelResetMasterAndChangeAddress()
1530 sentinelAddr *sentinelGetCurrentMasterAddress(sentinelRedisInstance *master) { in sentinelGetCurrentMasterAddress() argument
1536 if ((master->flags & SRI_FAILOVER_IN_PROGRESS) && in sentinelGetCurrentMasterAddress()
1537 master->promoted_slave && in sentinelGetCurrentMasterAddress()
1538 master->failover_state >= SENTINEL_FAILOVER_STATE_RECONF_SLAVES) in sentinelGetCurrentMasterAddress()
1540 return master->promoted_slave->addr; in sentinelGetCurrentMasterAddress()
1542 return master->addr; in sentinelGetCurrentMasterAddress()
1548 void sentinelPropagateDownAfterPeriod(sentinelRedisInstance *master) { in sentinelPropagateDownAfterPeriod() argument
1552 dict *d[] = {master->slaves, master->sentinels, NULL}; in sentinelPropagateDownAfterPeriod()
1558 ri->down_after_period = master->down_after_period; in sentinelPropagateDownAfterPeriod()
1710 sentinelRedisInstance *master, *ri; in rewriteConfigSentinelOption() local
1714 master = dictGetVal(de); in rewriteConfigSentinelOption()
1715 master_addr = sentinelGetCurrentMasterAddress(master); in rewriteConfigSentinelOption()
1717 master->name, master_addr->ip, master_addr->port, in rewriteConfigSentinelOption()
1718 master->quorum); in rewriteConfigSentinelOption()
1722 if (master->down_after_period != SENTINEL_DEFAULT_DOWN_AFTER) { in rewriteConfigSentinelOption()
1725 master->name, (long) master->down_after_period); in rewriteConfigSentinelOption()
1730 if (master->failover_timeout != SENTINEL_DEFAULT_FAILOVER_TIMEOUT) { in rewriteConfigSentinelOption()
1733 master->name, (long) master->failover_timeout); in rewriteConfigSentinelOption()
1738 if (master->parallel_syncs != SENTINEL_DEFAULT_PARALLEL_SYNCS) { in rewriteConfigSentinelOption()
1741 master->name, master->parallel_syncs); in rewriteConfigSentinelOption()
1746 if (master->notification_script) { in rewriteConfigSentinelOption()
1749 master->name, master->notification_script); in rewriteConfigSentinelOption()
1754 if (master->client_reconfig_script) { in rewriteConfigSentinelOption()
1757 master->name, master->client_reconfig_script); in rewriteConfigSentinelOption()
1762 if (master->auth_pass) { in rewriteConfigSentinelOption()
1765 master->name, master->auth_pass); in rewriteConfigSentinelOption()
1772 master->name, (unsigned long long) master->config_epoch); in rewriteConfigSentinelOption()
1778 master->name, (unsigned long long) master->leader_epoch); in rewriteConfigSentinelOption()
1782 di2 = dictGetIterator(master->slaves); in rewriteConfigSentinelOption()
1795 slave_addr = master->addr; in rewriteConfigSentinelOption()
1798 master->name, slave_addr->ip, slave_addr->port); in rewriteConfigSentinelOption()
1804 di2 = dictGetIterator(master->sentinels); in rewriteConfigSentinelOption()
1810 master->name, ri->addr->ip, ri->addr->port, ri->runid); in rewriteConfigSentinelOption()
1875 ri->master->auth_pass; in sentinelSendAuthIfNeeded()
1979 int sentinelMasterLooksSane(sentinelRedisInstance *master) { in sentinelMasterLooksSane() argument
1981 master->flags & SRI_MASTER && in sentinelMasterLooksSane()
1982 master->role_reported == SRI_MASTER && in sentinelMasterLooksSane()
1983 (master->flags & (SRI_S_DOWN|SRI_O_DOWN)) == 0 && in sentinelMasterLooksSane()
1984 (mstime() - master->info_refresh) < SENTINEL_INFO_PERIOD*2; in sentinelMasterLooksSane()
2148 (ri->master->flags & SRI_FAILOVER_IN_PROGRESS) && in sentinelRefreshInstanceInfo()
2149 (ri->master->failover_state == in sentinelRefreshInstanceInfo()
2157 ri->master->config_epoch = ri->master->failover_epoch; in sentinelRefreshInstanceInfo()
2158 ri->master->failover_state = SENTINEL_FAILOVER_STATE_RECONF_SLAVES; in sentinelRefreshInstanceInfo()
2159 ri->master->failover_state_change_time = mstime(); in sentinelRefreshInstanceInfo()
2166 ri->master,"%@"); in sentinelRefreshInstanceInfo()
2167 sentinelCallClientReconfScript(ri->master,SENTINEL_LEADER, in sentinelRefreshInstanceInfo()
2168 "start",ri->master->addr,ri->addr); in sentinelRefreshInstanceInfo()
2169 sentinelForceHelloUpdateForMaster(ri->master); in sentinelRefreshInstanceInfo()
2177 sentinelMasterLooksSane(ri->master) && in sentinelRefreshInstanceInfo()
2182 ri->master->addr->ip, in sentinelRefreshInstanceInfo()
2183 ri->master->addr->port); in sentinelRefreshInstanceInfo()
2193 (ri->slave_master_port != ri->master->addr->port || in sentinelRefreshInstanceInfo()
2194 strcasecmp(ri->slave_master_host,ri->master->addr->ip))) in sentinelRefreshInstanceInfo()
2196 mstime_t wait_time = ri->master->failover_timeout; in sentinelRefreshInstanceInfo()
2200 if (sentinelMasterLooksSane(ri->master) && in sentinelRefreshInstanceInfo()
2205 ri->master->addr->ip, in sentinelRefreshInstanceInfo()
2206 ri->master->addr->port); in sentinelRefreshInstanceInfo()
2221 ri->master->promoted_slave->addr->ip) == 0 && in sentinelRefreshInstanceInfo()
2222 ri->slave_master_port == ri->master->promoted_slave->addr->port) in sentinelRefreshInstanceInfo()
2329 sentinelRedisInstance *si, *master; in sentinelProcessHelloMessage() local
2333 master = sentinelGetMasterByName(token[4]); in sentinelProcessHelloMessage()
2334 if (!master) goto cleanup; /* Unknown master, skip the message. */ in sentinelProcessHelloMessage()
2340 master->sentinels,token[0],port,token[2]); in sentinelProcessHelloMessage()
2348 removed = removeMatchingSentinelFromMaster(master,token[2]); in sentinelProcessHelloMessage()
2350 sentinelEvent(LL_NOTICE,"+sentinel-address-switch",master, in sentinelProcessHelloMessage()
2359 master->sentinels, token[0],port,NULL); in sentinelProcessHelloMessage()
2369 token[0],port,master->quorum,master); in sentinelProcessHelloMessage()
2387 sentinelEvent(LL_WARNING,"+new-epoch",master,"%llu", in sentinelProcessHelloMessage()
2392 if (si && master->config_epoch < master_config_epoch) { in sentinelProcessHelloMessage()
2393 master->config_epoch = master_config_epoch; in sentinelProcessHelloMessage()
2394 if (master_port != master->addr->port || in sentinelProcessHelloMessage()
2395 strcmp(master->addr->ip, token[5])) in sentinelProcessHelloMessage()
2401 master,"%s %s %d %s %d", in sentinelProcessHelloMessage()
2402 master->name, in sentinelProcessHelloMessage()
2403 master->addr->ip, master->addr->port, in sentinelProcessHelloMessage()
2406 old_addr = dupSentinelAddr(master->addr); in sentinelProcessHelloMessage()
2407 sentinelResetMasterAndChangeAddress(master, token[5], master_port); in sentinelProcessHelloMessage()
2408 sentinelCallClientReconfScript(master, in sentinelProcessHelloMessage()
2410 old_addr,master->addr); in sentinelProcessHelloMessage()
2471 sentinelRedisInstance *master = (ri->flags & SRI_MASTER) ? ri : ri->master; in sentinelSendHello() local
2472 sentinelAddr *master_addr = sentinelGetCurrentMasterAddress(master); in sentinelSendHello()
2495 master->name,master_addr->ip,master_addr->port, in sentinelSendHello()
2496 (unsigned long long) master->config_epoch); in sentinelSendHello()
2528 int sentinelForceHelloUpdateForMaster(sentinelRedisInstance *master) { in sentinelForceHelloUpdateForMaster() argument
2529 if (!(master->flags & SRI_MASTER)) return C_ERR; in sentinelForceHelloUpdateForMaster()
2530 if (master->last_pub_time >= (SENTINEL_PUBLISH_PERIOD+1)) in sentinelForceHelloUpdateForMaster()
2531 master->last_pub_time -= (SENTINEL_PUBLISH_PERIOD+1); in sentinelForceHelloUpdateForMaster()
2532 sentinelForceHelloUpdateDictOfRedisInstances(master->sentinels); in sentinelForceHelloUpdateForMaster()
2533 sentinelForceHelloUpdateDictOfRedisInstances(master->slaves); in sentinelForceHelloUpdateForMaster()
2588 ((ri->master->flags & (SRI_O_DOWN|SRI_FAILOVER_IN_PROGRESS)) || in sentinelSendPeriodicCommands()
2860 int sentinelIsQuorumReachable(sentinelRedisInstance *master, int *usableptr) { in sentinelIsQuorumReachable() argument
2865 int voters = dictSize(master->sentinels)+1; /* Known Sentinels + myself. */ in sentinelIsQuorumReachable()
2867 di = dictGetIterator(master->sentinels); in sentinelIsQuorumReachable()
2876 if (usable < (int)master->quorum) result |= SENTINEL_ISQR_NOQUORUM; in sentinelIsQuorumReachable()
3471 void sentinelCheckObjectivelyDown(sentinelRedisInstance *master) { in sentinelCheckObjectivelyDown() argument
3476 if (master->flags & SRI_S_DOWN) { in sentinelCheckObjectivelyDown()
3480 di = dictGetIterator(master->sentinels); in sentinelCheckObjectivelyDown()
3487 if (quorum >= master->quorum) odown = 1; in sentinelCheckObjectivelyDown()
3492 if ((master->flags & SRI_O_DOWN) == 0) { in sentinelCheckObjectivelyDown()
3493 sentinelEvent(LL_WARNING,"+odown",master,"%@ #quorum %d/%d", in sentinelCheckObjectivelyDown()
3494 quorum, master->quorum); in sentinelCheckObjectivelyDown()
3495 master->flags |= SRI_O_DOWN; in sentinelCheckObjectivelyDown()
3496 master->o_down_since_time = mstime(); in sentinelCheckObjectivelyDown()
3499 if (master->flags & SRI_O_DOWN) { in sentinelCheckObjectivelyDown()
3500 sentinelEvent(LL_WARNING,"-odown",master,"%@"); in sentinelCheckObjectivelyDown()
3501 master->flags &= ~SRI_O_DOWN; in sentinelCheckObjectivelyDown()
3551 void sentinelAskMasterStateToOtherSentinels(sentinelRedisInstance *master, int flags) { in sentinelAskMasterStateToOtherSentinels() argument
3555 di = dictGetIterator(master->sentinels); in sentinelAskMasterStateToOtherSentinels()
3574 if ((master->flags & SRI_S_DOWN) == 0) continue; in sentinelAskMasterStateToOtherSentinels()
3581 ll2string(port,sizeof(port),master->addr->port); in sentinelAskMasterStateToOtherSentinels()
3585 master->addr->ip, port, in sentinelAskMasterStateToOtherSentinels()
3587 (master->failover_state > SENTINEL_FAILOVER_STATE_NONE) ? in sentinelAskMasterStateToOtherSentinels()
3608 char *sentinelVoteLeader(sentinelRedisInstance *master, uint64_t req_epoch, char *req_runid, uint64… in sentinelVoteLeader() argument
3612 sentinelEvent(LL_WARNING,"+new-epoch",master,"%llu", in sentinelVoteLeader()
3616 if (master->leader_epoch < req_epoch && sentinel.current_epoch <= req_epoch) in sentinelVoteLeader()
3618 sdsfree(master->leader); in sentinelVoteLeader()
3619 master->leader = sdsnew(req_runid); in sentinelVoteLeader()
3620 master->leader_epoch = sentinel.current_epoch; in sentinelVoteLeader()
3622 sentinelEvent(LL_WARNING,"+vote-for-leader",master,"%s %llu", in sentinelVoteLeader()
3623 master->leader, (unsigned long long) master->leader_epoch); in sentinelVoteLeader()
3627 if (strcasecmp(master->leader,sentinel.myid)) in sentinelVoteLeader()
3628 master->failover_start_time = mstime()+rand()%SENTINEL_MAX_DESYNC; in sentinelVoteLeader()
3631 *leader_epoch = master->leader_epoch; in sentinelVoteLeader()
3632 return master->leader ? sdsnew(master->leader) : NULL; in sentinelVoteLeader()
3664 char *sentinelGetLeader(sentinelRedisInstance *master, uint64_t epoch) { in sentinelGetLeader() argument
3674 serverAssert(master->flags & (SRI_O_DOWN|SRI_FAILOVER_IN_PROGRESS)); in sentinelGetLeader()
3677 voters = dictSize(master->sentinels)+1; /* All the other sentinels and me. */ in sentinelGetLeader()
3680 di = dictGetIterator(master->sentinels); in sentinelGetLeader()
3706 myvote = sentinelVoteLeader(master,epoch,winner,&leader_epoch); in sentinelGetLeader()
3708 myvote = sentinelVoteLeader(master,epoch,sentinel.myid,&leader_epoch); in sentinelGetLeader()
3720 if (winner && (max_votes < voters_quorum || max_votes < master->quorum)) in sentinelGetLeader()
3796 void sentinelStartFailover(sentinelRedisInstance *master) { in sentinelStartFailover() argument
3797 serverAssert(master->flags & SRI_MASTER); in sentinelStartFailover()
3799 master->failover_state = SENTINEL_FAILOVER_STATE_WAIT_START; in sentinelStartFailover()
3800 master->flags |= SRI_FAILOVER_IN_PROGRESS; in sentinelStartFailover()
3801 master->failover_epoch = ++sentinel.current_epoch; in sentinelStartFailover()
3802 sentinelEvent(LL_WARNING,"+new-epoch",master,"%llu", in sentinelStartFailover()
3804 sentinelEvent(LL_WARNING,"+try-failover",master,"%@"); in sentinelStartFailover()
3805 master->failover_start_time = mstime()+rand()%SENTINEL_MAX_DESYNC; in sentinelStartFailover()
3806 master->failover_state_change_time = mstime(); in sentinelStartFailover()
3820 int sentinelStartFailoverIfNeeded(sentinelRedisInstance *master) { in sentinelStartFailoverIfNeeded() argument
3822 if (!(master->flags & SRI_O_DOWN)) return 0; in sentinelStartFailoverIfNeeded()
3825 if (master->flags & SRI_FAILOVER_IN_PROGRESS) return 0; in sentinelStartFailoverIfNeeded()
3828 if (mstime() - master->failover_start_time < in sentinelStartFailoverIfNeeded()
3829 master->failover_timeout*2) in sentinelStartFailoverIfNeeded()
3831 if (master->failover_delay_logged != master->failover_start_time) { in sentinelStartFailoverIfNeeded()
3832 time_t clock = (master->failover_start_time + in sentinelStartFailoverIfNeeded()
3833 master->failover_timeout*2) / 1000; in sentinelStartFailoverIfNeeded()
3838 master->failover_delay_logged = master->failover_start_time; in sentinelStartFailoverIfNeeded()
3846 sentinelStartFailover(master); in sentinelStartFailoverIfNeeded()
3910 sentinelRedisInstance *sentinelSelectSlave(sentinelRedisInstance *master) { in sentinelSelectSlave() argument
3912 zmalloc(sizeof(instance[0])*dictSize(master->slaves)); in sentinelSelectSlave()
3919 if (master->flags & SRI_S_DOWN) in sentinelSelectSlave()
3920 max_master_down_time += mstime() - master->s_down_since_time; in sentinelSelectSlave()
3921 max_master_down_time += master->down_after_period * 10; in sentinelSelectSlave()
3923 di = dictGetIterator(master->slaves); in sentinelSelectSlave()
3936 if (master->flags & SRI_S_DOWN) in sentinelSelectSlave()
4044 void sentinelFailoverDetectEnd(sentinelRedisInstance *master) { in sentinelFailoverDetectEnd() argument
4048 mstime_t elapsed = mstime() - master->failover_state_change_time; in sentinelFailoverDetectEnd()
4052 if (master->promoted_slave == NULL || in sentinelFailoverDetectEnd()
4053 master->promoted_slave->flags & SRI_S_DOWN) return; in sentinelFailoverDetectEnd()
4057 di = dictGetIterator(master->slaves); in sentinelFailoverDetectEnd()
4068 if (elapsed > master->failover_timeout) { in sentinelFailoverDetectEnd()
4071 sentinelEvent(LL_WARNING,"+failover-end-for-timeout",master,"%@"); in sentinelFailoverDetectEnd()
4075 sentinelEvent(LL_WARNING,"+failover-end",master,"%@"); in sentinelFailoverDetectEnd()
4076 master->failover_state = SENTINEL_FAILOVER_STATE_UPDATE_CONFIG; in sentinelFailoverDetectEnd()
4077 master->failover_state_change_time = mstime(); in sentinelFailoverDetectEnd()
4087 di = dictGetIterator(master->slaves); in sentinelFailoverDetectEnd()
4096 master->promoted_slave->addr->ip, in sentinelFailoverDetectEnd()
4097 master->promoted_slave->addr->port); in sentinelFailoverDetectEnd()
4109 void sentinelFailoverReconfNextSlave(sentinelRedisInstance *master) { in sentinelFailoverReconfNextSlave() argument
4114 di = dictGetIterator(master->slaves); in sentinelFailoverReconfNextSlave()
4123 di = dictGetIterator(master->slaves); in sentinelFailoverReconfNextSlave()
4124 while(in_progress < master->parallel_syncs && in sentinelFailoverReconfNextSlave()
4153 master->promoted_slave->addr->ip, in sentinelFailoverReconfNextSlave()
4154 master->promoted_slave->addr->port); in sentinelFailoverReconfNextSlave()
4165 sentinelFailoverDetectEnd(master); in sentinelFailoverReconfNextSlave()
4171 void sentinelFailoverSwitchToPromotedSlave(sentinelRedisInstance *master) { in sentinelFailoverSwitchToPromotedSlave() argument
4172 sentinelRedisInstance *ref = master->promoted_slave ? in sentinelFailoverSwitchToPromotedSlave()
4173 master->promoted_slave : master; in sentinelFailoverSwitchToPromotedSlave()
4175 sentinelEvent(LL_WARNING,"+switch-master",master,"%s %s %d %s %d", in sentinelFailoverSwitchToPromotedSlave()
4176 master->name, master->addr->ip, master->addr->port, in sentinelFailoverSwitchToPromotedSlave()
4179 sentinelResetMasterAndChangeAddress(master,ref->addr->ip,ref->addr->port); in sentinelFailoverSwitchToPromotedSlave()