Perché rendono atomica l’operazione di invio multiplo.
Motivazioni:
Aspetti semantici
atomicità:
reliability:
Reliable Multicast:
ci sono problemi in caso di:
quindi, necessità di monitoring
Implementazione del reliable multicast:
Invio di ogni messaggio a tutto il gruppo ed attesa per time-out ed evenuale ritrasmissione.
E se fallisce il controllore? Controllo da parte degli altri che il protocollo si compia
Quanto si aspetta? Fino ad un messaggio di completamento:
hold-back: un messaggio senza ack viene trattenuto fino alla sicurezza del completamento. Non si manda l'ack fino al momento giusto.
negative ack: numerazione dei messaggi; in caso di perdite un contatore viene mandato in piggybacking e usato per indicarle.
Come fare per i messaggi ricevuti non in ordine?
Multicast FIFO: dallo stesso processo allo stesso ricevente per i messaggi in broadcast successivi.
Tuttavia "terzi" processi potrebbero ricevere i messaggi fuori sequenza.
Soluzione: multicast con ordinamento totale, cioè la somma tra:
multicast causale o logico: i messaggi arrivano e sono consegnati in un ordine che rispetta le comunicazione per il gruppo.
più multicast atomico: lo stesso ordine per ogni componente del gruppo
L’implementazione può essere fatta in maniera efficiente. Solo in alcuni casi particolari viene fatto uso di broadcast a basso livello per risolvere problemi particolari.
ISIS: sistema basato su replicazione attiva con decisione dinamica del master di ogni operazione (necessità di una visione identica ai diversi componenti del gruppo)
ABCast (Atomic Bcast): uso di una coda per ogni componente.
Messaggi marcati con un time-stamp iniziale e restituiti solo se in ordine giusto.
Ogni messaggio arrivato richiede una fase di coordinamento per determinare il time-stamp finale: la consegna avviene con decisione locale in base al time-stamp finale.
L’ordinamento è ottenuto tramite un coordinatore deciso per ogni azione che centralizza la decisione.
Problemi: ritardo ed overhead
Multicast a gruppi dinamici: possibilità di definire gruppi di processi cui si possono inserire e togliere componenti.
ISIS GBCast (Group Bcast):
il messaggio arriva in uno dei due stati:
viene effettuato un monitoring degli eventi di inserimento e di estrazione (failure), con uso di una tabella per ogni componente con le appartenenze al gruppo; la tabella è aggiornata con un GBCast.
Il GBCast richiede che un messaggio di questo tipo venga ricevuto solo dopo che lo sono stati tutti i BCast precedenti ancora in atto.