Post on 17-Apr-2015
Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815
Bimodal MulticastUm protocolo de difusão fiável
Manuel Costa20815
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
Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815
Motivação
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!
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
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?
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
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.
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
Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815
O Protocolo Bimodal Multicast
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
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!
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
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)
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
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)
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
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
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
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!
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
Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815
Aplicabilidade
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
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
Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815
Conclusão
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
Bimodal Multicast - Tolerância a Faltas Distribuída – Manuel Costa - 20815
• Dúvidas?
• Questões?
• Comentários
Obrigado