• antirez's avatar
    Sentinel: check Slave INFO state more often when disconnected. · 3e9ce38b
    antirez authored
    During the initial handshake with the master a slave will report to have
    a very high disconnection time from its master (since technically it was
    disconnected since forever, so the current UNIX time in seconds is
    reported).
    
    However when the slave is connected again the Sentinel may re-scan the
    INFO output again only after 10 seconds, which is a long time. During
    this time Sentinels will consider this instance unable to failover, so
    a useless delay is introduced.
    
    Actaully this hardly happened in the practice because when a slave's
    master is down, the INFO period for slaves changes to 1 second. However
    when a manual failover is attempted immediately after adding slaves
    (like in the case of the Sentinel unit test), this problem may happen.
    
    This commit changes the INFO period to 1 second even in the case the
    slave's master is not down, but the slave reported to be disconnected
    from the master (by publishing, last time we checked, a master
    disconnection time field in INFO).
    
    This change is required as a result of an unrelated change in the
    replication code that adds a small delay in the master-slave first
    synchronization.
    3e9ce38b
sentinel.c 166 KB