Bully algorithm: Difference between revisions

Content deleted Content added
spelling corrections
Line 6:
}}
 
The '''bully algorithm''' is a programming mechanism that applies a hierachyhierarchy 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]].
 
Line 13:
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 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 distinguisedistinguish between an omisionomission fail on a process or a delay)
* Allows processes to crash during execution of algorithm. (To=2*Delta+Cmax; so timer knows when omisionomission fails happens)
* Message delivery between processes should be reliable.(Coordinator dilemadilemma,¿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 dilemadilemma, where coordinator needs a key and id for each process and where processors hierachyhierarchy stipulates nodes as Generals, Commanders and LiutenantsLieutenants but without a key and with only coordinator and slaves)
 
Notice that this algorithm can be apliedapplied over distributed or centrilizedcentralized systems , because processes can be located on one machine or over severals 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==