tolerância a falhas em sistemas distribuídos : problemas ... · raimundo macêdo, lasid/ufba 1...
TRANSCRIPT
21/9/2010
1
Tolerância a Falhas em Sistemas Distribuídos :
Problemas Fundamentais
Raimundo Macêdo, LaSiD/UFBA 1
Raimundo Macêdo, LaSiD/UFBA
Sistemas Distribuídos nos Dias Atuais
Viabilizado pela WWW/Internet - anos 90
Nossas vidas estão cada vez mais dependentes do pronto funcionamento de aplicações nesses ambientes !!
Comércio EletrônicoBolsa de ValoresAutomação HospitalarDinheiro EletrônicoSistemas de Controle Aéreo,etc
Raimundo Macêdo, LaSiD/UFBA 2
etc.
Requisitos Fundamentais:Correção - Rapidez - Segurança - Privacidade
21/9/2010
2
Exemplo 1
Sistema de Monitoramento Médico
Rede
I
EscritórioMédicoUTI
Raimundo Macêdo, LaSiD/UFBA 3
Internamento
BD ClínicoBiblioteca Digital
Laboratórios
Exemplo 2
Sistema de Controle de Tráfego Aéreo
REDE
Radar
SistemaEmbarcado
Raimundo Macêdo, LaSiD/UFBA 4
Controladores
DB tráfego aéreo(planos de voo, etc)
DiretórioX.500
21/9/2010
3
Um Sistema Distribuído (SD) é composto de componentes que são lógica e fisicamente separados
comp. de soft. comp. de soft.
canal ou porta de comunicaçãocomp. de soft.
Componentes de software são entidades comunicantes(objetos, sistemas, etc.) genericamente chamados de processos
Raimundo Macêdo, LaSiD/UFBA 5
Ações básicas realizadas entre componentes• Transferência de dados (mensagem)• Sincronização
Vantagens dos Sistemas Distribuídos
• Crescimento incremental
• compartilhamento de recursos
Raimundo Macêdo, LaSiD/UFBA 6
compartilhamento de recursos
• maior performance (paralelismo)
• maior confiabilidade (?)
21/9/2010
4
Tolerância a FalhasTolerância a Falhas
Raimundo Macêdo, LaSiD/UFBA 7
Um SD é inerentemente mais confiável ? Um SD é inerentemente mais confiável ?
Você sabe que está num SD quando é impedido de prosseguir com seu trabalho por causa da queda deprosseguir com seu trabalho por causa da queda de
um outro computador do qual nunca ouviu falar
(Leslie Lamport)(Leslie Lamport)
Raimundo Macêdo, LaSiD/UFBA 8
21/9/2010
5
Implicações da definição de LamportImplicações da definição de Lamport
Funções estão distribuídas emFunções estão distribuídas em componentes
Necessidade de sobreviver a falhas de componentes(Tolerância a Falhas)
Raimundo Macêdo, LaSiD/UFBA 9
Considere P(ci) = probabilidade de componente ci funcionar = 0,3
Sem tolerância a falhas, P(s) = P(a1) x P(a2) x P(a3) = 0,027
Um SD é inerentemente mais confiável?
c1 c2
3
S
Raimundo Macêdo, LaSiD/UFBA 10
c3
Com tolerância a falhas (usando replicação de componentes)
P(s) = Prob. de pelo menos um componente funcionar = 1 - 0,34 = 0,66onde, prob. de todos falharem = (0,7)3 = 0,34
21/9/2010
6
Terminologiafailure fault
Fault-toleranced d bilit
confiavel
faltas
error
errofalha
diagnosis
dependability
availabilitydefeito
Confianca no funcioanmento
MTTF
Raimundo Macêdo, LaSiD/UFBA 11
defect Fault-avaidance
falha
defeito
Survivability
Tolerancia a falhas
Tolerancia a faltas
reliability
Somente o básico ....
Fault Error Failure
causa original
ex: bit
perceptível no estado do sistema
ex:registro
funcionamento incorreto (não especificado)
ex: atualização
Raimundo Macêdo, LaSiD/UFBA 12
ex: bit modificado
ex:registro corrompido
ex: atualização errada do salário
21/9/2010
7
Somente o básico ....
Fault Error Failure
falha erro defeito
falta erro falha
Raimundo Macêdo, LaSiD/UFBA 13
Falha = o que causa o sistema desviar da especificação
Tolerância a Falhas = Capacidade de funcionar corretamente na presença de (algumas) falhas
F lt / F lh
Sistema Distribuído
faulterrorfailureFault / Falha
Componente 1 Componente 2
Raimundo Macêdo, LaSiD/UFBA 14Failure para componente = fault para o sistema distribuído
failure
21/9/2010
8
A natureza das falhas
bambiente (discos, memória, rede, etc)
bprojetoprojeto
bimplementação (bugs no código)
O que pode ser feito para evitá-las ??
Raimundo Macêdo, LaSiD/UFBA 15
Prevenção (Verificação e testes) +
Tolerância a Falhas
Tipos de Tolerância a Falhas
Safe masking fail safe
não safe não masking nenhuma
live não live
Raimundo Macêdo, LaSiD/UFBA 16
Pára todos os trens por causa de problemas nos semáforos
21/9/2010
9
A técnica básica para implementar Tolerância a Falhas é uso de Redundância
Espacial e Temporal
Raimundo Macêdo, LaSiD/UFBA 17
Redundância Temporal
FalhaDetecção
retorno a um estadoconsistente
A mesma parte do código pode ser executada várias vezes
Raimundo Macêdo, LaSiD/UFBA 18
Transações Atômicas Distribuídas é exemplo típico
Atomic Commitment é fundamental para garantir a propriedade de safety (ACID) - i.e. não interferência entre transações concorrentes
21/9/2010
10
Redundância Espacial
Falha
Detecção
A falha é “mascarada” eo componente faltosoé posteriormente substituído.
Raimundo Macêdo, LaSiD/UFBA 19
S1 S2 S3 S4
Servidor replicado Protocolos de ordenação, entrega atômica e memberhip são fundamentais
As várias formas de TF são classificadas segundo o modelo do sistema
Diferentes falhas levam a um mesmo comportamento do componente num SD
(ex: ausência de comunicação)
Raimundo Macêdo, LaSiD/UFBA 20
==> devemos agrupá-las em classes e descrever os algoritmos em função dessas classes e do modelo do sistema
21/9/2010
11
Especificação do Serviço
Um certo programa P é tolerante a uma classe de falhas F nummodelo de sistemas M
fail-safemasking;probailistico;determinista
Classes de Falha
Modelo Abstrato do Ambiente
Modelo do Sistema
Benigna;Maligna.
determinista.
Sincrono;Assincrono;S i i
Raimundo Macêdo, LaSiD/UFBA 21
O Ambiente RealEscalonamentode tempo real;Datagrama;QoS guarantida
Semi-sincrono.
Modelos de Sistema Distribuído
Conjunto finito de processos : p1, p2, ...,pn. Não há estado global (compartilhado) entre processos
(i.e., memória ou relógio).Processos comunicam-se somente através de troca de mensagensProcessos comunicam-se somente através de troca de mensagensAssertivas quanto aos tempos de
t1 : transferência de mensagens entre processos et2 : computação + de um ação (evento) num processo.
+ um modelo de falhas para os processos.
+ um modelo de falhas p/ os canais de comunicação
21/9/2010
12
t1 : transferência de mensagens entre processos et2 : computação de um ação (evento) num processo.
Valores máximos para t1 e t2 são finitos e conhecidos
⇒ sistemas síncronos Byzantine AgreementProcessor Membership
Valores máximos para t1 e t2 são finitos, porém desconhecidos
⇒ sistemas assíncronos: Internet ou WANs
pSystem Diagnosis
Group MembershipDistributed Consensus
SíncronoAssíncrono
desconhecido LimitadoParcialmente síncronoTimed-asyncronous,Failure Detectors,TCB, etc.
Distributed Consensus
um modelo de falha para os processos.
sistemas síncronos
d d fi i i (f l )• parada definitiva (fail-stop)• omissão• falhas temporais
mais cedomais tarde (falha de performance)
• falhas arbitrárias (byzantine)
Hipóteses mais fracasAlgoritmos mais complexosAlgoritmos mais portáteisMenos garantias do ambiente
Raimundo Macêdo, LaSiD/UFBA 24
sistemas assíncronos
• parada definitiva (crash)•Crash/Recovery• falhas arbitrarias (byzantine)
21/9/2010
13
um modelo de falha para os canais de comunicação
•omissão (perdas)omissão (perdas)•duplicadas ou não•corrompidas ou não•fora da ordem ou não• falhas arbitrárias (byzantine)
Raimundo Macêdo, LaSiD/UFBA 25
Qual o melhor modelo ???
Depende dos requisitos da aplicação e o ambiente disponíveis !
O sistema assíncrono é o mais portátil e o mais realistaconsiderando-se ambientes como a Internet,
Mas ...
Raimundo Macêdo, LaSiD/UFBA 26
21/9/2010
14
Não existe solução determinista para o problema de consenso em sistemas distribuídos assíncronos sujeitos a falhas tipo crash !!!
Impossibilidade FLP Fischer, Lynch, Paterson (1985)
M Fischer N Lynch and M Peterson "Impossibility of Distributed Consensus
Raimundo Macêdo, LaSiD/UFBA 27
M. Fischer, N. Lynch, and M. Peterson, Impossibility of Distributed Consensus with One Faulty Process", J. ACM, 32, April 1985, pp 374-382
Atomic Commitment ??? Membership??? Atomic Multicast ???
Especificação do Serviço
O que fazer ???
Ou restringe o problema(retirando atributos)
aSoluções Probabilísticas -
randomisation (Ben-Or, Rabin 1983)
Classes de Falha
Modelo Abstrato do Ambiente
ou
restringe o modelo(colocando atributos)
aAdição de Premissas Síncronas
minimal syncronazation (Dolev-Dwork-Stockmeyer, 1986)
partial synchrony (Dwork-Lync-Stochmeyer 1987)
Raimundo Macêdo, LaSiD/UFBA 28
Modelo Realdo Ambiente
(colocando atributos)timed asynchronous (Christian-Fetzer, 1995)
quasi-synchronous (Almeida e Veríssimo, 1997)
unreliable failure detectors (Chandra-Toueg, 1991, 1992)
TCB (Verissimo et al, 2000)
21/9/2010
15
FD1 P1FD1 P1
FDn Pn
Cada processo é equipado com um failure detector local que mantém uma lista de processos que ele suspeita como crashed.
Um failure detector pode cometer erros :
(i) não suspeitando de um processo que realmente falhou (crashed) ou(ii) it d d t ( ã f lh )
Assincronia
Raimundo Macêdo, LaSiD/UFBA 29
Propriedades:Completeness : requer que um FD suspeite os processos que falharam.Accuracy : restringe a quantidade de erros que o FD pode cometer.
(ii) suspeitando de um processo correto (que não falhou).
completeness accuracyStrong weak <>strong <>weak
Classes de Failure Detectors
Nonestrong
weak
P S <>P <>S
Q W <>Q <>W
VW
VW ==> Impossível consenso ou membership determinista
Raimundo Macêdo, LaSiD/UFBA 30
VW + “best effort” group membership = particionamento virtual
<>S + rotating paradign = possibilidade de consenso
21/9/2010
16
Pn-1
p1
p2
p1
Algoritmo de Consenso Baseado nos Detectores <>S
p3
Pn-2
Raimundo Macêdo, LaSiD/UFBA 31
Teorema: O algoritmo resolve consenso usando <>S num SD assíncronocom número de crashes < n/2
Liveness : cada processo correto “eventualmente”decide um valorAgreement (safety) : todos os processos corretos decidem pelo mesmo valor
Porque FDs <>S de Chandra-Toueg é um bom modelo ?
10 é o único que resolve consenso sem assumir premissas temporais(síncronas).
20 permite caracterizar as condições em que consenso é solúvel.
30 algoritmo baseado em<> S pode violar terminação (liveness)mas não irá JAMAIS violar correção (safety) ==> Fail-safe
Raimundo Macêdo, LaSiD/UFBA 32
J S ç ( f y)
40 FDs da classe <> S podem cometer um número arbitrário de erros
21/9/2010
17
Componentes Fundamentais paraComponentes Fundamentais paraImplementação de Técnicas de Tolerância a Falhas
Raimundo Macêdo, LaSiD/UFBA 33
De uma lado, computação distribuída requer coordenação e sincronização entre processos.
De outro lado, como sincronizar ou coordenar, se não há estado global ou compartilhado ?? Somente troca de mensagens !!!
É possível a especificação (e implementação) de abstrações que incluam garantias “globais” que facilitem a construção de software distribuído?
Resposta :RPC (Chamada de Procedimento Remoto)Transações DistribuídasObjetos Distribuídos
Raimundo Macêdo, LaSiD/UFBA 34
group communicatione membership service (virtual sincrony)
consensus
Memória Compartilhada DistribuídaReplicação,etc.
21/9/2010
18
Comunicação em Grupo
Group Communication
Raimundo Macêdo, LaSiD/UFBA 35
Group Communication
P1
P2P4
Send(msg, G_id)Receive(msg_buffer, G-id)create(G_id, type_com, proc_ids...)open P1
P3 PN
pjoinetc.
Quais propriedades fundamentaisprecisam ser encapsuladas dentro
cliente
Raimundo Macêdo, LaSiD/UFBA 36
das operações de grupo ??
Quais são os problemas ?
Servidor Replicado
Grupo
21/9/2010
19
P1
P2P4
Grupo
cliente
P1P3 PN
visão coerente (serviço de membership)
Servidor Replicado
Grupo
Raimundo Macêdo, LaSiD/UFBA 37
visão coerente (serviço de membership)entrega ordenada (causal, total, ...)controle de fluxo Falhas
Como garantir visão coerente da lista de participantes ???
Assinconia + falhas de comunicação + crash !!!!
Situação Possível!
VisãoP1 = {p1, p2, p3, p4}VisãoP2 = { p1, p2}
p1
Joinp4
Raimundo Macêdo, LaSiD/UFBA 38
crash
{ p , p }VisãoP4 = {p1, p2,p4}p2p3
21/9/2010
20
Como se concretiza um serviço de membership?Vi
1 = {P1, P2, ..., Pn} Vi1, Vi
2,..., Vi r
p1
p4
P3 falhou?
Raimundo Macêdo, LaSiD/UFBA 39
crash
p2p3
G
Vi2
ParticionáveisClasses de soluções
G
Vi2
Partição primária
G
Vi1
G
Vi2
G
Raimundo Macêdo, LaSiD/UFBA 40
G
21/9/2010
21
Problemas enfrentados pelas aplicações devido àassíncronia e falhas típicas do SD assíncronos
Raimundo Macêdo, LaSiD/UFBA 41
Exemplo 1 - ordem idênticaBanco de Dados Replicado para aumentar disponibilidade
(reserva de assentos de avião)
m1 m2
X X
m1, m2 m2, m1
Raimundo Macêdo, LaSiD/UFBA 42
Aloca X para U1
m2
Aloca X para U2
Qual a ordem correta para m1 e m2 ?
21/9/2010
22
m1
Exemplo 2 - ordem causalListas de Correio Eletrônico, Teleconferência, etc.)
m1
RE:m1
Raimundo Macêdo, LaSiD/UFBA 43
Como deduzir que “m1” precede “RE:m1” ?
Dificuldades adicionais : grupos sobrepostos
P1
P2
P3
P4
P5
P6
m1 m2
m3
Raimundo Macêdo, LaSiD/UFBA 44
Como P4 pode deduzir m1⌫ m3 ?
21/9/2010
23
Grupos Sobrepostos com Ciclos
G1G2
q
p
r
m1m2
m3
Raimundo Macêdo, LaSiD/UFBA 45
G3
Como r pode deduzir m1⌫ m3 ?
A questão da visão mutualmente consistenteComo garantir que todos os membros do grupo tenham uma
visão coerente da lista de participantes ???
Mesmo com Assinconia + falhas de comunicação + crash !!!!
crash
Situação Possível nummesmo “instante” !
VisãoP1 = {p1, p2, p3, p4}VisãoP2 = { p1, p2} VisãoP4 = {p1, p2,p3}
p1
p2p3
Joinp4
Raimundo Macêdo, LaSiD/UFBA 46
Esse requisito é fundamental para aplicações como trabalho
cooperativo (CSCW), teleconferência,balanceamento de carga, agentes móveis, etc.
crash
21/9/2010
24
Para tolerar as falhas de ambiente e assincronia típicas dossistemas assíncronos, as seguintes propriedades devem serencapsuladas dentro dos operadores de grupo:
atomicidade : falhas de comunicação + crashesçordenação: “assincronia”visão consistente : falhas de comunicação + crashes
Sincronia Virtual e suas variações atendem ao requisito de visão consistente
Raimundo Macêdo, LaSiD/UFBA 47
Estrita : Variações :
ISIS/87, Birman
Transis/92 Amir, Dolev, Kramer, Malki
Newtop/94, Ezhulchelvan, Macêdo, Shrivastava
Relacs/94, Babaoglu, Davoli, Gichini, Baker
O requisito de ordenação (inclusive em grupos sobrepostos)foi resolvido através do uso dos relógios lógicos de Lamport (78) e variações desse mecanismo.
Grafos de dependência (Peterson-Bucholz-Schlichting, 89)
Vetores de relógios lógicos (Mattern/89, Fidge/91, Birman/91)
Árvores de Ordenação (Garcia-Molina, 91)
Raimundo Macêdo, LaSiD/UFBA 48
Causal Blocks (Macêdo-Ezhilchelvan-Shrivastava, 93)
Matrizes de Relógios(Raynal, 93)
21/9/2010
25
G0={p,q}
Virtual Synchrony, Ken Birman, 1997
Processos recebem a mesma seqüência de visões e o mesmo conjunto de mensagens entre visões
p
q
rst r s request to join
Raimundo Macêdo, LaSiD/UFBA 49
t r, s request to join
G0={p,q} G1={p,q,r,s}
Virtual Synchrony, Ken Birman, 1997
Processos recebem a mesma seqüência de visões e o mesmo conjunto de mensagens entre visões
crashp
q
rst r s request to join
Raimundo Macêdo, LaSiD/UFBA 50
t r, s request to join
r,s added; state transfer
21/9/2010
26
G0={p,q} G1={p,q,r,s} G2={q,r,s}
Virtual Synchrony, Ken Birman, 1997
Processos recebem a mesma seqüência de visões e o mesmo conjunto de mensagens entre visões
crashp
q
rs
r s request to join p fails
Raimundo Macêdo, LaSiD/UFBA 51
t r, s request to joinr,s added; state xfer
t requests to join
p fails
G0={p,q} G1={p,q,r,s} G2={q,r,s} G3={q,r,s,t}
Virtual Synchrony, Ken Birman, 1997
Processos recebem a mesma seqüência de visões e o mesmo conjunto de mensagens entre visões
crashp
q
rs
r s request to join p fails
Raimundo Macêdo, LaSiD/UFBA 52
t r, s request to joinr,s added; state xfer
t added, state transfer
t requests to join
p fails
21/9/2010
27
Outro Problema !!!
Sistemas de Grupos Tolerantes a Falhas precisam manter na memória mensagens para garantir atomicidade/recuperação. Mas até quando ??? (memória não é infinita !!)
N id d d l d fl í l d==>> Necessidade de controle de fluxo ao nível dos grupos
Macêdo, Ezhilchelvan, Shrivastava == Conceito e Condições de Super-estabilidade
1994 (Broadcast Workshop, Grenoble)
1995 (in IEEE PFTCS)
Raimundo Macêdo, LaSiD/UFBA 53
Flaviu Cristian, Mishra, 1995 (In IEEE ISADS)
Mishra, L. Wu, 1997 (in IEEE ISHPC)
Sistemas de Grupos para ambientesassíncronos característicos da Internet ou WAN’s ?Primitivas para comunicação com garantias variadas
CAUSALTOTALControle de MembershipSincronia Virtual
Sobreposição
Total = Causal + Idêntica
O h d i dSincronia Virtual
ISIS (Ken Birman) 1987-1993 (pioneiro)
Primary-Partition(Ricciardi e Birman, 1991) - ISIS
(Kaashoek e Tanenbaum, 1991) - AMOEBA
lli S i h A l 1994 ( A d i S ( ) 4 9 4 3)
==> Impossibilidade de membership com partição primária (Anceaume, Charron-Bost, Minet, Toueg - 1995)
Na prática funciona, pois de forma implícitaforam assumidas premissas síncronas ==> violação de safety
Overheads variados
Raimundo Macêdo, LaSiD/UFBA 54
MelliarsSmith, Moser e Agrawala, 1994 (In IEEE Tras. Par. And Dist. Systems 5(5):459-473)
Sistemas ParticionáveisAmir, Dolev, Kramer, Malki (1992) - TRANSIS (In IEEE FTCS)
Ezhulchelvan, Macêdo, Shrivastava - NEWTOP (Broadcast Deliverable Report, 1994 e IEEE ICDCS, 1995)
Babaoglu, Davoli, Gichini, Baker - RELACS (Broadcast Deliverable Report, 1994)
foram assumidas premissas síncronas. . > violação de safety.
Corretos Formalmente, mas partições podem
se degenerar. São necessários mecanismos de
“re-merging”.
21/9/2010
28
Componentede software
Existe algum REQUISITO comum ainda mais elementar que comunicação em grupo ?
canal ou porta de comunicação
Processos cooperantes precisam concordar em ações comuns•quem faz qual tarefa
Raimundo Macêdo, LaSiD/UFBA 55
==> Concordar em ações (obter consenso) parece ser o “máximo denominador comum”das computações distribuídas.
•quem faz qual tarefa, •concretizar ou abortar uma transação, •quem terá direito a determinado recurso, •qual a ordem de entrega, etc
Consenso
O módulo elementar para a construçãode software distribuído confiável
Raimundo Macêdo, LaSiD/UFBA 56
21/9/2010
29
Formalizando ...Dado um conjunto predeterminado de processos P = {p1, p2, ..., pn}Cada processo pi propõe um valor viProcessos têm que concordar em um valor
Propriedades que devem ser satisfeitas:p q
termination (liveness) : cada processo correto “eventualmente”decidirá por algum valor
validity (safety) : se um processo decide v, então v foi proposto por algum q ∈ P.
Raimundo Macêdo, LaSiD/UFBA 57
Agreement (safety) :se pi (correto) decide vi e pj decide vj, então vi = vj
Uniform Agreement (safety) :se pi decide vi e pj decide vj, então vi = vj
Relação entre Consenso e Atomic BroadcastaAtomic Broadcast (ou Atomic multicast) - AB
G = (p1, p2, ..pn)
i) atomicidade, AB(m,G) :
∃ pi ∈ G, delivery (m,pi) ⇒∀ pj ∈ G, delivery (m,pj)
Teorema : AB e Consenso são equivalentes (Chandra e Toueg, 1996)
i) qualquer solução para AB pode ser usada para resolver Consenso
pi , y ( ,pi) pj , y ( ,pj)
ii) ordem idêntica, AB(m,G), AB(m’,G) :
∀ pi ∈ G delivery (m,pi) → delivery (m’,pi) ⇒∀ pj ∈ G, delivery (m,pj) → delivery (m’,pj)
Raimundo Macêdo, LaSiD/UFBA 58
==> FLP se aplica a AB
∀ pi ⏐ pi ∈ G, AB(vi,G) vetor (v1, v2, ..., vn)
decida pelo primeiro vi delivered
ii) qualquer solução para Consenso pode ser usada para resolver AB
==> consenso pode ser usado como modulo de construção de AB
redução
21/9/2010
30
Relação entre Consenso e NBACNon-Blocking Weak Atomic Commitment - NBWAC
No final de uma transação atômica, processos devem concordar com sua concretização (votando SIM ou NÃO)
1. termination (liveness): se um conjunto de processos corretos iniciar NBAC,
então cada processo desse conjunto “eventualmente” decidirá por um resultado
2. validity (safety): a decisão tem que ser abort ou commit.
3. uniform agrrement (safety): processos decidem pelo mesmo resultado.
4. justification : se a decisão for commit é porque todos votaram SIM.
Raimundo Macêdo, LaSiD/UFBA 59
5. obligation (safety) : se todos processos votam SIM e não há suspeitas de
falhas, então a decisão tem que ser commit.
Teorema : NBAWC é redutível para Consenso (Guerraoui e Schiper, 1995)
Redução de NBWAC para Consenso
Procedure NBWAC(votoi)
Begin
send(votoi) para todos processos( ) p p
wait ( (n mensagens SIM) ou
(1 mensagem NÃO ou falha de algum p)
if (n mensagens SIM) then
voto-consenso:= Commit
else
Raimundo Macêdo, LaSiD/UFBA 60
voto-consenso:= Abort;
decidedi := consenso(voto-consenso);
End
21/9/2010
31
Não existe solução determinista para o problema de consenso em sistemas distribuídos assíncronos sujeitos a falhas tipo crash !!!
Impossibilidade FLP Fischer, Lynch, Paterson (1985)
M Fischer N Lynch and M Peterson "Impossibility of Distributed Consensus
Raimundo Macêdo, LaSiD/UFBA 61
M. Fischer, N. Lynch, and M. Peterson, Impossibility of Distributed Consensus with One Faulty Process", J. ACM, 32, April 1985, pp 374-382
Nota : A impossibilidade de membership resulta de FLP
time-out P2 falhou
crash
p1
p2
Cenário 1
Em sistemas assíncronos é impossíveldistinguir cenário1 do cenário3
Por que FLP? Intuição da prova
v1
Consenso entre P1 e P2 ?
time-out P2 está correto
p1
p2
Cenário 2
distinguir cenário1 do cenário3.
No cenário 1,
Se P1 não decide depois de time-out
(espera por v2) ==> mantém safety e
viola termination
v1 v2
Raimundo Macêdo, LaSiD/UFBA 62
time-out P2 falhoup1
p2
Cenário 3
No cenário 3
Se P1 decide após time-out,
não espera por v2
==> assegura liveness e viola safetyv1v2
21/9/2010
32
Modelos restritivos onde consenso é solúvel
Trabalhos a partir de FLP
Raimundo Macêdo, LaSiD/UFBA 63
FLP existe, mas o que se pode fazer com os sistemasassíncronos característicos da Internet ou WAN’s ?
aSoluções Probabilísticas - randomisation (Ben-Or, Rabin 1983)
aAdição de Premissas Síncronas
minimal syncronazation (Dolev-Dwork-Stockmeyer, 1986)
partial synchrony (Dwork-Lync-Stochmeyer 1987)
timed asynchronous (Christian-Fetzer, 1995)
Raimundo Macêdo, LaSiD/UFBA 64
quasi-synchronous (Almeida e Veríssimo, 1997)
aAdditional assumptions on failure detection
unreliable failure detectors (Chandra-Toueg, 1991, 1992)
21/9/2010
33
FLP existe ! Mas então porque não usar (ou quando usar) o modelo síncrono ?
L. Lamport , R. Shastak, and M Pease, “The ByzantineGenerals Problem”, ACM Trans, on Programming Lang.And Systems, 4(3):382-401, july, 1982.
Existe solução para consenso, desde que mais que 2/3 dos processos não falhem de forma
Quando maior o tempo assumido (t1 e t2), maior a demora para reaçãoe recuperação de um chash (ex: crash do processo líder num esquema de primary-backup)
Quanto menor o tempo assumido, mais rápida a reação e maior a possibilidade de falhas temporais. Muitas falhas temporais ==> sistema assíncronos.
generalizada (bizantina). Para falhas fail-stop, qualquer número de falhas é tolerada.
Raimundo Macêdo, LaSiD/UFBA 65
Em sistemas síncronos, a violação da hipótese de tempo (timing failures) pode resultar na violação da propriedade de safety (agreement)
Para sistemas assíncronos há soluções que preservam safety, apesar das falhas,porém liveness pode ser comprometida.
FD1 P1FD1 P1
FDn Pn
Cada processo é equipado com um failure detector local que mantém uma lista de processos que ele suspeita como crashed.
Um failure detector pode cometer erros :
(i) não suspeitando de um processo que realmente falhou (crashed) ou
(ii) suspeitando de um processo correto (que não falhou)
Assincronia
Raimundo Macêdo, LaSiD/UFBA 66
Completeness : requer que um FD suspeite os processos que de fato falharam.Accuracy : restringe a quantidade de erros que o FD pode cometer.
FDs podem ser classificados por duas propriedades básicas :(ii) suspeitando de um processo correto (que não falhou).
21/9/2010
34
completeness accuracyStrong weak <>strong <>weak
strong
weak
P S <>P <>S
Q W <>Q <>W
Classes de Failure Detectors
Alguns Resultados:
Teorema 1: <> S é a classe de FD mais fraca que permite resolver consenso(Chandra-Hadzilacos-Toueg, 92)
Teorema 2: <> S requer a maioria dos processos corretos (Chandra-Toueg, 91)
Raimundo Macêdo, LaSiD/UFBA 67
Eventually strong failure detector <>SStrong completeness: “eventualmente” cada processo falho (crashed)é permanentemente suspeitado por cada processo correto.Eventual strong accuracy :Existe um tempo a partir do qual algumprocesso correto não é “suspeitato” por nenhum processo correto.
Porque FDs de Chandra-Toueg é um bom modelo ?
10 é o único que resolve consenso sem assumir premissas temporais(síncronas).
20 permite caracterizar as condições em que consenso é solúvel.
30 algoritmo baseado em<> S pode violar terminação(caso as propriedades de <> S não sejam satisfeitas), mas não irá JAMAIS violar correção (safety).
Raimundo Macêdo, LaSiD/UFBA 68
J S ç ( f y)
40 FDs da classe <> S podem cometer um número arbitrário de erros (ex: um processo correto pode repetidamente suspeitar e não suspeitar um outro processo correto).
21/9/2010
35
O protocolo de Consenso baseado em <>S
Paradigma do Coordenador Circulante
Princípios Gerais:Cada processo executa rodadas (rounds) consecutivos de forma assíncrona
Durante o round r, um processo predeterminado pc (c = (r mod n) + 1) atua como coordenador e seleciona um valor. O algoritmo tenta impôr esse valor como o valor da decisão.
Princípios Gerais:
Raimundo Macêdo, LaSiD/UFBA 69
Crashed (ou suspeitas) são tratadas, movendo-se para o próximo round (processos podem decidir em rounds diferentes, mas com o mesmo valor final)
Existirá um round em que o coordenador não é suspeitado (Garantido pela premissa do <> S)
Cada round é composto de 4 fases.
Ex: round 1numa execução sem falhas
p1
p2
p3ackest4 x
xx
x
x
Raimundo Macêdo, LaSiD/UFBA 70
fase 1 fase 2 fase 3 fase 4 (decisão)p4
4 x
21/9/2010
36
Rounds -------- R0 R1 R2 ... Rn-1 Rn Rn+1 ...Coordenador -- p1 p2 p3 ... Pn p1 p2 ...
Pn-1
p1
p2
p1 Quando um processo termina round r,ele imediatamente segue para o round r +1,exceto se já recebeu a msg de decisão
p3
Pn-2
Quando a maioria dos processos mandaramum ack para um valor proposto pelo coordenador,esse valor é preservado (locked) para evitar queoutros processos escolham valores diferentesem futuros rounds
Teorema: O algoritmo resolve consenso usando <>S num SD assíncrono
Raimundo Macêdo, LaSiD/UFBA 71
com número de crashes < n/2
Lema 1 :Termination :cada processo correto “eventualmente”decide um valorLema 2 : Agreement : todos os processos corretos decidem pelo mesmo valor
validity (trivial) + lema 1 + lema 2
Adaptações do algoritmo de Chandra-Toueg para resolver outros problemas, ou resolver problemas em outros modelos de sistema
Decisão mais cedo (early)
Consenso : Guerraoui-Larrea-Schiper, 1995 (in IEEE SRDS)
Algoritmo Original
Atomic-Broadcast : Chandra-Toueg, 1996 (in JACM 43(2))g ( ( ))
Alteração do valor proposto
Prefix-Atomic-Broadcast: Anceaume, A. 1997 (in IEEE FTCS)
Adiamento da entrega do valor
Semi-Passive Replication : Defago-Schiper-Sargent, 1998 (in IEEE SRDS)
Concordar num vetor de valores
Raimundo Macêdo, LaSiD/UFBA 72
Consenso : Hurfin-Tronel, 1997 (in IEEE WFTDSC)
Consenso : Doudou-Schiper, 1998 (in ACM SPDC)
Adiamento de entrega do valor, modificação do valor, possível recusa de resultado
Consenso para Sistemas Móveis : Badache-Hurfin-Macêdo, 1999 (in IEEE IPCCC)
21/9/2010
37
input
E porque não ??
Máquina de Consensus <>S
Raimundo Macêdo, LaSiD/UFBA 73
output
NBACGroup MembershipTotal Orderetc.
Um framework para gerar componentes f p g pde software que implementem variadas técnicas de tolerância a falhas
Raimundo Macêdo, LaSiD/UFBA 74
21/9/2010
38
É possível a construção de um único frameworkpara resolver diferentes tipos de consenso usando <> S ??
Decisão mais cedo (early)
Alteração do valor proposto Atomic broadcastç p p
Adiamento da entrega do valor
Concordar num vetor de valores
Possível recusa de resultado
Resposta : Hurfin-Macêdo-Raynal-Tronel, 1999 (in IEEE SRDS)
Atomic-broadcast,NBACPrefix-Atomic-BroadcastSemi-Passive ReplicationEtc.
Raimundo Macêdo, LaSiD/UFBA 75
A General Framework to Solve Agreement Problems. Hurfin, M. , Macêdo, R., Raynal, M. and Tronel, F. The proceedings of the 18th International Symposium on Reliable Distributed Systems (SRDS'99). Lausanne, Switzerland. IEEE Computer Society. October/1999.
O framework geral (GAF) baseia-se no uso de 6 parâmetros(funções) genéricos. Os códigos das funções devem ser fornecidos
pelo serviço (e.g. replicação) em tempo de compilação.
Raimundo Macêdo, LaSiD/UFBA 76