• antirez's avatar
    Sentinel: more aggressive failover start desynchronization. · 1606978a
    antirez authored
    Sentinel needs to avoid split brain conditions due to multiple sentinels
    trying to get voted at the exact same time.
    
    So far some desynchronization was provided by fluctuating server.hz,
    that is the frequency of the timer function call. However the
    desynchonization provided in this way was not enough when using many
    Sentinel instances, especially when a large quorum value is used in
    order to force a greater degree of agreement (more than N/2+1).
    
    It was verified that it was likely to trigger a split brain
    condition, forcing the system to try again after a timeout.
    Usually the system will succeed after a few retries, but this is not
    optimal.
    
    This commit desynchronizes instances in a more effective way to make it
    likely that the first attempt will be successful.
    1606978a
sentinel.c 136 KB