Pular para o conteúdo

Conheça Walt Disney World

Bully algorithm

The bully algorithm is a method in distributed computing for dynamically selecting a coordinator by process ID number.

Assumptions :

  • The system is synchronous and uses timeout for identifing process failure

Message types :

  • Election Message : Sent to announce the election
  • Answer Message : Respond to the election message
  • Cordinator message: sent to announce the identity elected process

Compare with Ring algorithm :

  • Assumes that system is synchronous
  • Uses timeout to detect process failure/crash
  • Each processor knows which processor has the higher identifier number and communicates with that [1]


When a process P determines that the current coordinator is down because of message timeouts or failure of the coordinator to initiate a handshake, it performs the following sequence of actions:

  1. P broadcasts an election message (inquiry) to all other processes with higher process IDs.
  2. If P hears from no process with a higher process ID than it, it wins the election and broadcasts victory.
  3. If P hears from a process with a higher ID, P waits a certain amount of time for that process to broadcast itself as the leader. If it does not receive this message in time, it re-broadcasts the election message.
  4. If P gets an election message (inquiry) from another process with a lower ID it sends an "I am alive" message back and starts new elections.

Note that if P receives a victory message from a process with a lower ID number, it immediately initiates a new election. This is how the algorithm gets its name - a process with a higher ID number will bully a lower ID process out of the coordinator position as soon as it comes online.


See also

References

[1] Jean Dollimore, Tim Kindberg George F. Coulouris, "Distributed systems : concepts and design (Third Edition)," in Distributed systems : concepts and design (Third Edition).: Addison-wesly , 2003.

  • Hector Garcia-Molina, Elections in a Distributed Computing System, IEEE Transactions on Computers, Vol. C-31, No. 1, January (1982) 48-59
Personal tools
  • Log in / create account
Namespaces
Variants
Actions
Navigation
Toolbox
Print/export