27
Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Embed Size (px)

Citation preview

Page 1: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Bimodal MulticastUm protocolo de difusão fiável

Manuel Costa20815

Page 2: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Resumo

• Motivação

• Algoritmos Probabilísticos

• O Protocolo Bimodal Multicast (PbCast)

• Aplicabilidade

• Conclusão

Page 3: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Motivação

Page 4: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Motivação

• A difusão implica a disseminação de informação de um processo para um conjunto de processos– A maneira mais óbvia é transmitir a informação

tanto quantos forem os processos de destino• Problema:

– Numa rede com uma dezena de processos, pode ser... Mas numa rede com milhares de processos, torna-se difícil

– Se for necessário que cada processo responda às mensagens recebidas, o número de mensagens duplica!

– Se a tolerância a falhas obrigar a um protocolo de duas ou três fases, a rede ficará totalmente congestionada com uma única mensagem!

Page 5: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Motivação

• O que será uma difusão eficiente?– Há dois grandes tipos de protocolos de

difusão fiáveis• Fiabilidade Forte (Strong reliability)

– Oferecem garantias de atomicidade– Sincronismo virtual e garantias de tempo real– Entrega ordenada

• Fiabilidade Fraca (Best-Effort)– Baseiam-se em Algoritmos Probabilísticos– Recuperam localmente perdas de informação– Garantem alguma fiabilidade

Page 6: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Motivação

• E será fiabilidade igual a eficiência?– Depende:

• Do que é pretendido• Das condições do meio• Da criticidade do sistema• ...

– Um factor que não pode ser descurado é a carga que o sistema pode exigir a si próprio.

• Haverá alguma solução melhor para difundir?

Page 7: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Algoritmos Probabilísticos

• O que é um Algoritmo Probabilístico?– É um tipo de algoritmo que utiliza a

característica probabilística dos problemas para os resolver: • Exemplo: quase sempre ou quase nunca

– Baseiam-se na assumpção de que os sistemas estão sujeitos a falhas. Estas falhas, por sua vez, têm uma dada probabilidade de ocorrer

Page 8: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Algoritmos Probabilísticos (cont...)

• Quais os problemas dos protocolos de Fiabilidade Forte?– São pesados– Não funcionam bem para grupos de difusão

com muitos participantes– Em condições de stress ficam instáveis e

imprevisíveis

• Os algoritmos probabilísticos têm maior grau de confiabilidade quanto maior é o número de processos envolvidos – Este facto é medido pela diminuição da

probabilidade de falha como aumento do número de processos.

Page 9: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Algoritmos Probabilísticos (cont...)

• Provavelmente, tudo irá funcionar bem, na maior parte dos casos...– O pior caso ocorre quando aproximadamente

metade dos processos receberam a mensagem. Quando quase todos ou quase nenhum recebeu a mensagem, está de acordo com o protocolo.

– E se não funcionar? Tem que haver um esforço ou um “Best-Effort”!

• Porquê utilizar estes algoritmos?– Porque são mais simples– Revelam-se mais estáveis em condições de carga– Baseiam-se na premissa de que os erros são

raros– Se estes acontecerem, é feito um esforço de

recuperação

Page 10: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast

Page 11: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast

• Também chamado Pbcast– Probabilistic broadcast

• É um protocolo “Best-Effort”• Tem um comportamento muito

previsível– Mesmo em situações de carga, com 25%

de perdas de pacotes e com 25% dos processos envolvidos a sofrerem atrasos (transcient performance failures)

• Não necessita de sincronismo

Page 12: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast (cont...)

• Então e como é que funciona?– Imaginemos um conjunto de centenas ou

milhares de processos• Baseia-se em árvores de difusão

– Cada nó da árvore difunde para os vizinhos– Se algum destes tiver filhos, difunde para o seu

filho que irá difundir para os seus vizinhos e assim sucessivamente

• As mensagens de retorno funcionam em sentido inverso, subindo na árvore se for caso disso

– Se todos os processos partilharem do mesmo meio de difusão, melhor!

Page 13: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast (cont...)

• Ciclos de Processamento– Um processo difunde para todos os

processos da sua lista de destinos• A gestão da lista de destinos não está

contemplada directamente no algoritmo!• Pode ser uma difusão para todos os vizinhos

que partilhem o meio

– Exemplo: • IP Multicast• Outro protocolo de difusão sem garantia de

entrega de mensagem

Page 14: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast (cont...)

• Algoritmo Anti-Entropia– Operam numa série de rounds não

sincronizados• Cada round tem uma duração de pelo menos

uma round-trip sobre o canal escolhido (100Ms para o caso do artigo)

– Divide-se em duas fases:• A primeira fase detecta perdas de mensagens• A segunda corrige essas perdas

• E como?– A fazer “fofoca”! (Do inglês gossip)

Page 15: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast (cont...)

• Princípio da Fofoca Anti-Entropia– Uma mensagem Mj é enviada por P a Q

e S

– Assim que Q recebe Mj envia o historial de todas as mensagens recebidas a K membros escolhidos aleatoriamente

– Se estes, ao receberem este historial notarem que falta alguma mensagem, pedem a sua retransmissão ao emissor original

Page 16: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast (cont...)

• Relação entre a probabilidade de que todos os processos recebam a mensagem e o congestionamento da rede. – Quanto maior for a probabilidade de

retransmissão maior será a probabilidade de que todos os processos recebam a mensagem

– Maior será também o número de mensagens a circular na rede (maior a sobrecarga da mesma)

Page 17: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast (cont...)

• Optimizações possíveis (I)– Só retransmitir se a solicitação para tal

for no mesmo round da transmissão original• Caso contrário, o processo poderá estar

doente• Evita respostas simultâneas a vários

requisições diferentes

– Limitar o historial a retransmitir• Evita sobrecarga do processo que irá tentar

acompanhar os outros ao ter de o fazer de uma só vez

Page 18: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast (cont...)

• Optimizações possíveis (II)– Evitar retransmissões desnecessárias

• Se um processo ao retransmitir detectar que já retransmitiu para outro algumas das mensagens, não o irá repetir

– Most-recent-first• As mensagens são retransmitidas numa

ordem LIFO para evitar que um processo esteja sempre atrasado em relação ao grupo

Page 19: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast (cont...)

• Optimizações possíveis (III)– Numeração independente dos rounds

• A numeração dos rounds é independentemente feita por cada processo

• Cada mensagem da fofoca leva o ID da mensagem original

• A decisão de deitar fora mensagens antigas é estritamente local

Page 20: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast (cont...)

• Sobre a ordenação– O protocolo não garante que as

mensagens sejam entregues na mesma ordem em todos os processos.

– Birman, propôs uma alteração no protocolo que faz esta ordenação.• Cada processo só poderá entregar a

mensagem para a aplicação quando todos os processos a tiverem recebido.

• A dificuldade passou a ser determinar quando é que isso acontece!

Page 21: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

O Protocolo Bimodal Multicast (cont...)

• Condições para garantir a operação do algoritmo PbCast como descrito– O custo do envio de uma mensagem na

rede é sempre o mesmo. Isto não acontece na realidade

– As falhas de processo são independentes e são sempre “Hard”

– As falhas de transmissão de mensagens são independentes e são sempre por omissão

Page 22: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Aplicabilidade

Page 23: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Aplicabilidade

• Um algoritmo como o PbCast garante– Carga de sistema previsível e estável– Boa escalabilidade– Tolerância a taxas elevadas de falhas de

comunicação• Um algoritmo como o PbCast não

garante– Atomicidade– Entrega ordenada de mensagens– Sincronismo– Gestão de Memberships

Page 24: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Aplicabilidade

• Um algoritmo como o PbCast aplica-se– A sistemas de difusão como video, audio

ou outros tipos de streaming pela Internet– Outros sistemas como o do NY Stock

Exchange onde a informação do valor de acções tem de ser propagado para vários sistemas informáticos

– Sistema PHIDIAS para difusão de imagens de ecrã de radar em sistemas de controlo de tráfego aéreo

Page 25: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Conclusão

Page 26: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

Conclusão

• Este algoritmo não é a solução completa para todos os problemas de difusão fiável

• Esta tipo de algoritmos complementa em muitos aspectos, algoritmos mais fortes do ponto de vista da sincronização e atomicidade

• Pode ser implementado com sucesso em sistemas existentes, pois baseia-se em premissas bastante reais

Page 27: Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815 Bimodal Multicast Um protocolo de difusão fiável Manuel Costa 20815

Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815

• Dúvidas?

• Questões?

• Comentários

Obrigado