URI - DECC - Santo Ângelo Tolerância a Falhas Difusão de Mensagens Broadcast confiável, atômico...

Post on 18-Apr-2015

105 views 0 download

Transcript of URI - DECC - Santo Ângelo Tolerância a Falhas Difusão de Mensagens Broadcast confiável, atômico...

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas

Difusão de Mensagens

Broadcast confiável, atômico e causal

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Difusão de Mensagens

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Tipos de difusão broadcast

envio de mensagens a todos os nodos do sistema

multicast envio de mensagens a alguns nodos do sistema

infraestrutura de rede podem ser baseados em broadcast não confiável ou em comunicação ponto a ponto

sensível a falhas de nodo e comunicação

Envolve o conceito de grupos

nodo pode falhar após ter iniciado broadcast,assim alguns nodos podem ter recebido amensagem e outros não

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

essa topologia só existe nomodelo lógico, no modelo físicopode não existir caminhos entrealguns nodos

nodo nãooperacional

Exemplos de Problemas

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Propriedades na difusão

confiabilidade mensagem deve ser recebida por todos os nodos operacionais

ordenamento consistente diferentes mensagens enviadas para nodos diferentes são

entregues na mesma ordem em todos os nodos

preservação de causalidade a ordem na qual mensagens são entregues é consistente com a

relação causal de envio das mensagens

valem tanto para broadcast como multicast

ordenamento consistenteé diferente deordenamento temporal

mensagens sem relação causal poderiam serentregues em qualquer ordem

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Primitivas de difusão

difusão confiável uma mensagem enviada é recebida em todos os nodos não

falhos na rede, mesmo na presença de falhas

difusão atômica suporta difusão confiável e ordenação

difusão causal assegura ordenação causal

cada primitiva tem sua aplicação mensagens isoladas: difusão confiável banco de dados: difusão atômica uma mensagem depende de outra: difusão causal

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Comentários

problemas com nomenclatura estamos usando nomenclatura do Jalote existem problemas

principalmente em relação a atomicidade, que em banco de dados tem outro significado

problemas com particionamento hipótese usual:

falhas não particionam a rede mas em computação móvel particionamento é comum

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Broadcast confiável

protocolo de Schneiderprotocolo de Melliar-Smith

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

árvore lógica de difusão

não corresponde atopologia física

Broadcast

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

árvore lógica de difusãoBroadcast

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Broadcast confiável

Exemplo: Schneider (84)

modela rede como um árvore árvore de disseminação de mensagens

árvore representa estrutura lógica

nodo raiz é o iniciador de um broadcast todos os nodos que difundem são raiz naquela difusão

árvore lógica não corresponde a topologia da rede física

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Protocolo de Schneider

estrutura lógica sem relação com estrutura física da rede

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Protocolo de Schneider

árvore estática, pré-definida e conhecida por todos os nós

do sistema

estratégia de broadcast raiz inicia broadcast

envia mensagem para todos os seus sucessores

nodo i recebe mensagem e repassa para todos os seus sucessores

sucessores respondem ACK para i

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Schneider

Estratégia Básica:

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Schneider

Estratégia Básica:

i não recebe ack de j;i assume: j não envioumens. para n e m;

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

SchneiderEstratégia Básica:

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

SchneiderEstratégia Básica:

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Protocolo de Schneider

quando a raiz falha: falhas na raiz são detectadas por seus filhos algum nodo (que recebeu a mensagem) assume

função de raiz mais de um nodo pode assumir função da raiz (sem

problema)

para facilitar detecção de falha: raiz informa broadcast concluído com sucesso (recebeu ack

de todos os sucessores) na falta de aviso, nodo sucessor assume falha na raiz

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Schneider

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Schneider

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Schneider

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Schneider

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Protocolo de Melliar-Smith Trans protocol

Melliar-Smith, Moser e Agrawala 1990

acks positivos e negativos (acks e nacks) na carona de mensagens difundidas

piggyback (levar nos ombros)

primitiva confiável baseada em broadcast não confiável

ex meio físico: Ethernet ex: protocolo broadcast não confiável em comunicação

ponto a ponto

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Trans protocol

cada mensagem transporta: identidade do transmissor número de seqüência unívoco acks e nacks

receptor: a partir de acks e nacks determina que mensagens ele não precisa reconhecer com ack que mensagens ele precisa pedir retransmissão que mensagens ele precisa retransmitir

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Trans (Melliar-Smith) primitiva confiável baseada em broadcast não

confiável

Melliar-Smith, Mosere Agrawala (1990)

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Trans

cada mi transporta:

identidade do transmissor e número de seqüência unívoco

acks e nacks na carona de mensagens difundidas

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Trans

o receptor determina:

mensagens ele não precisa reconhecer

quais ele precisa retransmissão

quais ele deve retransmitir

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Trans

– se o receptor Rdetermina que nãorecebeu m1 • pede retransmissão • qualquer nodo pode atender um pedido de retransmissão (não apenas o originador)

sem ordenação: mensagenspodem ser recebidas emcada nodo em uma ordemdiferente (no exemplo m1chegará em R após m2 )

R não recebeu m1R envia nackm1pedindoretransmissãom3 ackm2 nackm1

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Exemplo TransA, B, C, D = mens a, b, c, d = acks, a, b, c, d = nacks

AA BaA Ba CbA Ba Cb DcA Ba Cb Dc EcdA Ba Cb Dc Ecd CbA Ba Cb Dc Ecd Cb Fec

Transm. de B reconhece A

Trans. de C reconhece B, não precisa reconhecer A

Trans. de E viu por Dc que não recebeu C

Algum nodo retransmite C(sem Novos acks)

URI - DECC - Santo Ângelo URI - DECC - Santo Ângelo

Tolerância a Falhas – Sistemas Distribuídos

Comentários

retransmissão qualquer nodo pode atender um pedido de retransmissão (não

apenas o originador)

múltiplos acks várias mensagem podem confirmar (ack) o recebimento de uma

dada mensagem

mensagens dummy

sem ordenação mensagens podem ser recebidas em cada nodo em uma ordem

diferente