Protocolli di consenso
Group Membership Ogni nodo possiede una vista dei nodi attivi Al variare della vista il nodo con indentificativo minore invia un propose con un particolare membership number Rispondono con un accept coloro che concordano con la nuova vista ed hanno un membership number minore uguale Rispondono con un Nack coloro che hanno un membership number maggiore Collezionati tutti gli accept si invia un reserve ed un successivo commit
S={1,2,3,4} S1={1,3,4} membership number=2 S2={2,3,4} membership number=2
S1={1,4} membership number=2 S2={2,3,4} membership number=2 S2 riceve un accept da 3 4 e 3 Mandano un accept
N2 Invia une reserve a 3 e 4 Il messaggio di commit sa 2 a 4 si perde quindi entrambi credono che laltro sia fallito Risale il nodo 1: N1 manda una Vista con membership 2 N2 invia una vista con membership 3 N4 manda una NACK a l nodo 1 perchè ha già riservato la posizione 2 N1 invia una vista 1234 accettata da tutti al passo h Al passo h i vecchi commit con membership 2 di N2 vengono rifiutati da N1
Leader Election Ogni nodo ha una propria vista Al variar della vista si se si è il leader (identificativo minore) si invia un messaggio di candidatura segnalando il nodo caduto Rispondono solo i nodi che hanno il mittente come minore identificativo nella lista (lo riconoscono come leader) e solo se anchessi non vedono il nodo caduto Collezionati tutti gli accept si aggiorna il leader
Sequenza dei fallimenti: 1,6,2,4,5