O algoritmo de eleição de líder mais simples considera uma topologia lógica em anel, onde os processos se comunicam apenas com seus vizinhos no sentido horário. O algoritmo apresentado a seguir considera uma topologia como um , onde todos os processos estão conectados e cada processo contem informações sobre os identificadores dos demais processos.
No algoritmo valentão (bully), quando um processo Pi percebe que o processo líder não responde mais à requisições de outros processos, ele inicia uma eleição. Como no algoritmo de eleição em anel, cada processo possui um identificador (ID) único, que funciona como sendo uma espécie de "força" que o processo possui, de modo que, aquele processo com a maior "força" pode ser considerado o líder em uma eleição.
Cada processo Pi contém, além de sua "força", uma lista de processos que possuem "forças" maiores que a dele. A ilustração a seguir demonstra a relação entre os processos considerando suas "forças".
Quando o processo Pi percebe que o atual líder não responde, ele executa o seguinte algoritmo:
Quando o processo Pk recebe uma mensagem de eleição de líder de algum processo Pi com menor "força", Pk responde a Pi uma mensagem de confirmação ("OK") para indicar que ele está "vivo" e que será o novo líder. Pk então realiza uma eleição, a menos que já esteja realizando uma. Eventualmente, todos os processos desistem, menos Pk, e esse é o novo líder. Assim, Pk envia uma mensagem ("COORDENADOR") a todos os processos informando que a partir de agora é o novo líder.
Se um processo Pj, que estava inativo, voltar, ele realiza uma nova eleição. Se acontecer de ser o processo de maior "força", Pj se tornará o novo líder. Nesse caso, o cara mais "forte" do bairro vence, daí o nome de algoritmo valentão.
Na simulação abaixo o processo é possível observar o comportamento do Algoritmo Bully passo a passo, sendo que o processo percebe que o atual líder não está respondendo e irá iniciar uma nova eleição. Os processos em são aqueles considerados aptos de participarem da eleição, ou seja, processos não falhos.
ID | Força |
Na seguinte simulação, podemos acompanhar o funcionamento do Algoritmo Bully, passo a passo, e realizar alterações nas "forças" de cada processo, contanto que as "forças" continuem únicas. O processo percebe que o atual líder não está respondendo e irá iniciar uma nova eleição. Os processos em são aqueles considerados não falhos, e aptos de participarem da eleição.
ID | Força |