Bully algorithm: Difference between revisions

Content deleted Content added
Remove drive-by multiple issues box from 2015. No discussion on Talk page at the time or since.
Copy-edit
Line 1:
This is used as a method inIn [[distributed computing]], the '''bully algorithm''' is a method for dynamically electing a [[Distributed computing#Coordinator election|coordinator]] or leader by process ID number. The process with the highest process ID number is selected as the [[Distributed computing#Coordinator Election|coordinator]].
The '''bully algorithm''' is a programming mechanism that applies a hierarchy to nodes on a system, making a process coordinator or slave.
This is used as a method in [[distributed computing]] for dynamically electing a [[Distributed computing#Coordinator election|coordinator]] by process ID number. The process with the highest process ID number is selected as the [[Distributed computing#Coordinator Election|coordinator]].
 
==Assumptions==
 
The algorithm assumes that the system:
As this algorithm is part from a system model that tries to make a fail-free system (like the solution shown in Lamport paper), we need some assumptions for the model.
* the system is synchronous and timeouts identify process failure.
 
* Allows processes tomay crash during execution of algorithm. (To=2*Delta+Cmax; so timer knows when omission fails happens)
* The system is synchronous and uses timeout for identifying process failure. (so you can have Delta and Cmax in order to calculate timeout as opposed to asynchronous systems where you can't calculate a timeout and then you can't distinguish between an omission fail on a process or a delay)
* Message delivery between processes is reliable.
* Allows processes to crash during execution of algorithm. (To=2*Delta+Cmax; so timer knows when omission fails happens)
* Process ids are known.
* Message delivery between processes should be reliable.(Coordinator dilemma,¿is it trustworthy; or suplantation,inyection,replication,DoS may happen?)
* Prior information about other process id's must be known. (This works as Leslie Lamport solution for Byzantine dilemma, where coordinator needs a key and ID for each process and where processors hierarchy stipulates nodes as Generals, Commanders and Lieutenants but without a key and with only coordinator and slaves)
 
Notice that this algorithm can be applied over distributed or centralized systems , because processes can be located on one machine or over several as you can make multicast calls or system calls or both if your system is hybrid (for example a multithread server working with several clients)
 
==Component calls==
 
These are the bully-algorithm components:
 
* Election Message: Sent to announce faster election
* Answer Message: Respond to the election message
Line 27 ⟶ 22:
 
==Bully algorithm structure==
 
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: