Sie sind auf Seite 1von 30

Tolerncia a Falhas

Difuso de Mensagens
Broadcast confivel, atmico e
causal
URI - DECC - Santo ngelo

Tolerncia a Falhas Sistemas Distribudos


Difuso

de Mensagens

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Tipos de difuso
broadcast
envio

de mensagens a todos os nodos do sistema


Envolve o conceito de grupos

multicast
envio

de mensagens a alguns nodos do sistema

infraestrutura

de rede

podem

ser baseados em broadcast no confivel


ou em comunicao ponto a ponto
sensvel

a falhas de nodo e comunicao


nodo pode falhar aps ter iniciado broadcast,
assim alguns nodos podem ter recebido a
mensagem e outros no
URI - DECC - Santo ngel
o

Tolerncia a Falhas Sistemas Distribudos

Exemplos de Problemas

nodo no
operacional

essa topologia s existe no


modelo lgico, no modelo fsico
pode no existir caminhos entre
alguns nodos
URI - DECC - Santo ngel
o

Tolerncia a Falhas Sistemas Distribudos

Propriedades na difuso
valem tanto para broadcast como multicast

confiabilidade

ordenamento consistente

mensagem deve ser recebida por todos os nodos operacionais


ordenamento consistente
diferente de
ordenamento temporal

diferentes mensagens enviadas para nodos diferentes so


entregues na mesma ordem em todos os nodos

preservao de causalidade

a ordem na qual mensagens so entregues consistente com a


relao causal de envio das mensagens
mensagens sem relao causal poderiam ser
entregues em qualquer ordem
URI - DECC - Santo ngel
o

Tolerncia a Falhas Sistemas Distribudos

Primitivas de difuso

difuso confivel

difuso atmica

uma mensagem enviada recebida em todos os nodos no


falhos na rede, mesmo na presena de falhas

suporta difuso confivel e ordenao

difuso causal

assegura ordenao causal

cada primitiva tem sua aplicao


mensagens isoladas: difuso confivel
banco de dados: difuso atmica
uma mensagem depende de outra: difuso causal

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Comentrios
problemas

com nomenclatura

estamos

usando nomenclatura do Jalote


existem problemas
principalmente

em relao a atomicidade, que em banco de


dados tem outro significado

problemas
hiptese
falhas

com particionamento

usual:

no particionam a rede

mas em computao mvel particionamento comum


URI - DECC - Santo ngel
o

Broadcast confivel

protocolo de Schneider
protocolo de Melliar-Smith

URI - DECC - Santo ngelo

Tolerncia a Falhas Sistemas Distribudos

Broadcast

rvore lgica de difuso


no corresponde a
topologia fsica

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Broadcast

rvore lgica de difuso

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Broadcast confivel
Exemplo:
modela
rvore

Schneider (84)

rede como um rvore


de disseminao de mensagens

rvore

nodo

representa estrutura lgica

raiz o iniciador de um broadcast

todos

rvore

os nodos que difundem so raiz naquela difuso

lgica no corresponde a topologia da rede

fsica
URI - DECC - Santo ngel
o

Tolerncia a Falhas Sistemas Distribudos

Protocolo de Schneider

estrutura lgica sem relao com estrutura fsica da rede


URI - DECC - Santo ngel
o

Tolerncia a Falhas Sistemas Distribudos

Protocolo de Schneider
rvore
esttica,

pr-definida e conhecida por todos os ns


do sistema

estratgia
raiz

de broadcast

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 ngel
o

Tolerncia a Falhas Sistemas Distribudos

Schneider
Estratgia Bsica:

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Schneider
Estratgia Bsica:
i no recebe ack de j;
i assume: j no enviou
mens. para n e m;

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Schneider
Estratgia Bsica:

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Schneider
Estratgia Bsica:

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Protocolo de Schneider
quando

a raiz falha:

falhas

na raiz so detectadas por seus filhos


algum nodo (que recebeu a mensagem) assume
funo de raiz
mais

de um nodo pode assumir funo da raiz (sem


problema)

para

facilitar deteco de falha:

raiz

informa broadcast concludo com sucesso (recebeu ack


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

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Schneider

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Schneider

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Schneider

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Schneider

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

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

primitiva

(levar nos ombros)

confivel baseada em broadcast no

confivel
ex

meio fsico: Ethernet


ex: protocolo broadcast no confivel em comunicao
ponto a ponto
URI - DECC - Santo ngel
o

Tolerncia a Falhas Sistemas Distribudos

Trans protocol
cada

mensagem transporta:

identidade

do transmissor
nmero de seqncia unvoco
acks e nacks
receptor:
a

partir de acks e nacks determina


que mensagens ele no precisa reconhecer com ack
que mensagens ele precisa pedir retransmisso
que mensagens ele precisa retransmitir
URI - DECC - Santo ngel
o

Tolerncia a Falhas Sistemas Distribudos

Trans (Melliar-Smith)
primitiva

Melliar-Smith, Moser
e Agrawala (1990)

confivel baseada em broadcast no

confivel

URI - DECC - Santo ngel


o

Tolerncia a Falhas Sistemas Distribudos

Trans

cada mi
transporta:

identidade do
transmissor e
nmero de
seqncia
unvoco

acks e nacks na
carona de
mensagens
difundidas
URI - DECC - Santo ngel
o

Tolerncia a Falhas Sistemas Distribudos

Trans

o receptor
determina:

mensagens ele
no precisa
reconhecer

quais ele precisa


retransmisso

quais ele deve


retransmitir
URI - DECC - Santo ngel
o

Tolerncia a Falhas Sistemas Distribudos

Trans
se o receptor R
determina que no
recebeu m1
pede retransmisso
qualquer nodo pode
atender um pedido de
retransmisso (no
apenas o originador)

sem ordenao: mensagens


podem ser recebidas em
cada nodo em uma ordem
diferente (no exemplo m1
chegar em R aps m2 )

URI - DECC - Santo ngel


o

R no recebeu m1
R envia nackm1
pedindo
retransmisso
m3 ackm2 nackm1

Tolerncia a Falhas Sistemas Distribudos

Exemplo Trans
A, B, C, D = mens a, b, c, d = acks, a, b, c, d = nacks
A
A Ba

Transm. de B reconhece A
Trans. de C reconhece B, no precisa reconhecer A

A Ba

Cb
A Ba Cb Dc
Trans. de E viu por Dc que no recebeu C
A Ba Cb Dc Ecd
Algum nodo retransmite C(sem
A Ba Cb Dc Ecd Cb
Novos acks)
A Ba Cb Dc Ecd Cb Fec
URI - DECC - Santo ngel
o

Tolerncia a Falhas Sistemas Distribudos

Comentrios

retransmisso

qualquer nodo pode atender um pedido de retransmisso (no


apenas o originador)

mltiplos acks

vrias mensagem podem confirmar (ack) o recebimento de uma


dada mensagem

mensagens dummy

sem ordenao

mensagens podem ser recebidas em cada nodo em uma ordem


diferente
URI - DECC - Santo ngel
o

Das könnte Ihnen auch gefallen