• Julien Muchembled's avatar
    Reimplement election (of the primary master) · 23b6a66a
    Julien Muchembled authored
    The election is not a separate process anymore.
    It happens during the RECOVERING phase, and there's no use of timeouts anymore.
    
    Each master node keeps a timestamp of when it started to play the primary role,
    and the node with the smallest timestamp is elected. The election stops when
    the cluster is started: as long as it is operational, the primary master can't
    be deposed.
    
    An election must happen whenever the cluster is not operational anymore, to
    handle the case of a network cut between a primary master and all other nodes:
    then another master node (secondary) takes over and when the initial primary
    master is back, it loses against the new primary master if the cluster is
    already started.
    23b6a66a
__init__.py 16.1 KB