2.1 KiB
algoritmo di leader election che risolve il problema di terminazione della leader election su anello all-the-way.
restrizioni al modello dei sistemi distribuiti aggiuntive
- restrizione di topologia
- anello di dimensione nota
Comportamento
[!Summary] Ogni entità invia il suo identificatore alla successiva, e gli inoltra gli identificatori ricevuti dalla precedente, tenendo traccia dell'identificatore minimo ricevuto, fino a quando non ne conosce tanti quante le entità del sistema distribuito.
Si può effettuare il conteggio in due modi:
- con un contatore su ogni entità, che conta il numero di messaggio transitati
- con un contatore su ogni messaggio, che conta il numero di entità transitate
algoritmo corretto
[!Success] L'algoritmo termina quando tutte le entità hanno visto tanti messaggio quante le entità del sistema distribuito.
costo computazionale distribuito
Comunicazione
Ogni entità invia tanti messaggio quanti le entità del sistema distribuito, ovvero:
Entity \cdot Entity
In notazione asintotica, è:
\Large O \left( Entity^2 \right)
Spazio
Nel caso peggiore, ciascun messaggio contiene tanti bit quanti quelli dell'identificatore più grande, ovvero, in notazione asintotica:
\Large O \left( Entity^2 \cdot \log( \max(Identifier) ) \right)
Tempo
Nel caso peggiore, solo una entità è iniziatori multipli, e in tal caso, dovrà svegliare le altre con il proprio messaggio.
Il messaggio dovrà prima arrivare alla sua precedente, richiedendo:
\color{LightCoral} Entities -1
Poi, il messaggio della precedente dovrà fare un giro completo:
\color{SkyBlue} Entities
Per un totale di:
{\color{LightCoral} Entities -1}
+
{\color{SkyBlue} Entities}
Ovvero:
2 \cdot Entities - 1
Che in notazione asintotica è:
\Large O(Entities)