Election Algorithm
Election Algorithm
• Need one process to act as a coordinator.
• Technique to pick a unique coordinator (a leader node).
• Take over the role of a failed process.
• Pick a master in Berkely clock synchronization.
• Types of Election algorithm: I. Bully algorithm; II. Ring algorithm.
Bully algorithm
• Each process has a unique numerical ID.
• Process know the IDs and address of every other process.
• Communication is assumed reliable.
• Key idea: select process with the highest ID.
• Process initiate election if it just recover from failure or if coordinator
failed.
• Several process can initiate an election simultaneously.
• O(n^2) message required with n process.
Algorithm (suppose Process P send a message to
the coordinator)
• It will assume that the coordinator process is failed
when it doesn't receive any response from the
coordinator within the time interval T.
• An election message will be sent to all the active
processes by process P along with the highest priority
number.
• If it will not receive any response within the time
interval T, the current process P elects itself as a
coordinator.
• After selecting itself as a coordinator, it again sends a
message that process P is elected as their new
coordinator to all the processes having lower priority.
If process P will receive any response from another
process Q within time T:
1.It again waits for time T to receive another response, i.e., it
has been elected as coordinator from process Q.
2.If it doesn't receive any response within time T, it is assumed
to have failed, and the algorithm is restarted.
Bully Election Algorithm Example
We start with 6 processes,
all directly connected to each other.
Process 6 is the leader,
as it has the highest number.
Process 6 fails.
Process 3 notices that Process 6 does not respond
So it starts an election, notifying those processes
with ids greater than 3.
Both Process 4 and Process 5 respond,
telling Process 3 that they'll take over from here.
Process 4 sends election messages
to both Process 5 and Process 6.
Only Process 5 answers
and takes over the election.
Process 5 sends out only one election message
to Process 6.
When Process 6 does not respond
Process 5 declares itself the winner.
Ring algorithm
• Processes have unique Ids and arranged in a logical ring
• Each process knows its neighbors
• Select process with highest ID
• Begin election if just recovered or coordinator has failed
• Send Election to closest downstream node that is alive
• Sequentially poll each successor until a live node is found
• Each process tags its ID on the message
• Initiator picks node with highest ID and sends a coordinator message
• Multiple elections can be in progress
• Wastes network bandwidth but does no harm
Example