mirror of
https://github.com/fluencelabs/redis
synced 2025-03-28 21:31:03 +00:00
Sentinel: more sensible delay in master demote after tilt.
This commit is contained in:
parent
214adc5051
commit
ef05a78e7e
@ -1481,18 +1481,20 @@ void sentinelRefreshInstanceInfo(sentinelRedisInstance *ri, const char *info) {
|
|||||||
if (ri->flags & SRI_DEMOTE) {
|
if (ri->flags & SRI_DEMOTE) {
|
||||||
/* If this sentinel was partitioned from the slave's master,
|
/* If this sentinel was partitioned from the slave's master,
|
||||||
* or tilted recently, wait some time before to act,
|
* or tilted recently, wait some time before to act,
|
||||||
* so that DOWN and roles info will be refreshed. */
|
* so that DOWN and roles INFO will be refreshed. */
|
||||||
if (!sentinelRedisInstanceNoDownFor(ri->master,
|
mstime_t wait_time = SENTINEL_INFO_PERIOD*2 +
|
||||||
SENTINEL_INFO_PERIOD*2))
|
ri->master->down_after_period*2;
|
||||||
return;
|
|
||||||
if (mstime()-sentinel.tilt_start_time <
|
if (!sentinelRedisInstanceNoDownFor(ri->master,wait_time) ||
|
||||||
SENTINEL_TILT_PERIOD+ri->master->down_after_period*2)
|
(mstime()-sentinel.tilt_start_time) < wait_time)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Old master returned back? Turn it into a slave ASAP if:
|
/* Old master returned back? Turn it into a slave ASAP if
|
||||||
|
* we can reach what we believe is the new master now, and
|
||||||
|
* have a recent role information for it.
|
||||||
*
|
*
|
||||||
* We'll clear this flag only when we have the acknowledge
|
* Note: we'll clear the DEMOTE flag only when we have the
|
||||||
* that it's a slave again. */
|
* acknowledge that it's a slave again. */
|
||||||
if (ri->master->flags & SRI_MASTER &&
|
if (ri->master->flags & SRI_MASTER &&
|
||||||
(ri->master->flags & (SRI_S_DOWN|SRI_O_DOWN)) == 0 &&
|
(ri->master->flags & (SRI_S_DOWN|SRI_O_DOWN)) == 0 &&
|
||||||
(mstime() - ri->master->info_refresh) < SENTINEL_INFO_PERIOD*2)
|
(mstime() - ri->master->info_refresh) < SENTINEL_INFO_PERIOD*2)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user