In distributed computing, the bully algorithm is a method for dynamically electing a coordinator or leader from a group of distributed computer processes. The process with the highest process ID number from amongst the non-failed processes is selected as the coordinator.
We assume that:
E1: Safety
E2: Liveness
Bandwidth utilisation
Best case
Process with the second highest identifier detects coordinators failure and elects itself coordinator and sends $N-2$ coordinator messages
Worst case
Requires $O(N^2)$ messages when lowest ID detects failure $\rightarrow$ $N-1$processes with higher IDs start election, having $(N-1) + (N-2) + ... +1 = N(N-1)/2$ messages sen
Turnaround - One process can send a message to other processes simultaneously.