12) Perché si utilizzano gli schemi di comunicazione a gruppi?

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.

 


Back
Index
Next