A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

TFD - Réplicas em máquinas de estados

Apresentações semelhantes


Apresentação em tema: "TFD - Réplicas em máquinas de estados"— Transcrição da apresentação:

1 TFD - Réplicas em máquinas de estados
Gestão de Réplicas usando a aproximação da Máquina de Estados (Replication Management using the State-Machine Approach, Fred Schneider, 1990) Apresentação (Grupo 2): Nuno Pimentel Simão Onofre Opção 1 A) Introdução - Coord. réplicas B) Acordo - Relógios físicos A) Ident. réplicas - Faltas clientes B) Pedidos implícitos - Conclusões Opção 2 A) Introdução - Relógios físicos B) Ident. réplicas - Pedidos implícitos A) Reconfiguração B) ISIS + Conclusões TFD - Réplicas em máquinas de estados TFD - Réplicas em máquinas de estados

2 TFD - Réplicas em máquinas de estados
Máquinas de estados Características: Variáveis de estado codificam o estado Comandos são executados a pedido dos clientes transformam o estado e produzem resultados Resultados são enviados para: actuador, dispositivo periférico ou cliente que solicitou o pedido TFD - Réplicas em máquinas de estados TFD - Réplicas em máquinas de estados

3 Máquinas de estados (cont.)
Máquinas de estados (cont.) Requisitos comandos concretizados por programas determinísticos a execução de cada comando é atómica com respeito aos outros comandos Caracterização semântica Os resultados (output) de uma máquina de estados são completamente determinados pela sequência de pedidos por ela processados, independentemente do tempo e de qualquer outra actividade no sistema. TFD - Réplicas em máquinas de estados TFD - Réplicas em máquinas de estados

4 Máquinas de estados (cont.)
Pedidos processados, um de cada vez, numa ordem potencialmente causal Clientes podem assumir: O1: Pedidos R(C, M) e R’(C, M) são processados pela máquina de estados M pela ordem em que foram solicitados. O2: Se R’(C’, M) puder ter sido causado por R(C, M) então M processa R antes de R’. TFD - Réplicas em máquinas de estados

5 Coordenação de réplicas
Replicação - tipos activa: aproximação da máquina de estados passiva: primário-secundário Aproximação da máquina de estados Todas as réplicas recebem e processam a mesma sequência de pedidos Acordo Todas as réplicas não faltosas recebem todos os pedidos Ordem Todas as réplicas não faltosas processam os pedidos que recebem na mesma ordem relativa TFD - Réplicas em máquinas de estados

6 TFD - Réplicas em máquinas de estados
Acordo Transmissor processador que dissemina valor pelos outros processadores Protocolo deve garantir: IC1: Todos os processadores não faltosos acordam no mesmo valor IC2: Se um transmissor é não faltoso então todos os processadores não faltosos usam o valor do transmissor como o valor acordado TFD - Réplicas em máquinas de estados

7 TFD - Réplicas em máquinas de estados
Acordo (cont.) Falha do transmissor Falhas bizantinas Strong and Dolev [1983] Falhas por paragem Gries and Schlichting [1984] Perda ou corrupção do pedido Cliente é transmissor é irrelevante Cliente não é transmissor monitorizar difusão do pedido TFD - Réplicas em máquinas de estados

8 TFD - Réplicas em máquinas de estados
Ordem e Estabilidade A cada pedido é atribuido um identificador único (uid) Réplicas ordenam pedidos seguindo uma relação de ordem total entre os uid Um pedido é estável se não puder ser recebido nenhum outro pedido (de um cliente correcto) com um uid menor Uma réplica processa de seguida o pedido estável com o menor uid (Concretização da Ordem) TFD - Réplicas em máquinas de estados

9 Utilização de Relógios Lógicos
Sistemas em que processos/mensagens podem sofrer atrasos arbitrários, sem se poder assumir a sua falha: Falhas bizantinas está provado que é impossível estabelecer o acordo possibilidade de definir teste de estabilidade e ordem é irrelevante Falhas por paragem garantir canal FIFO entre cada par de processadores pode assumir-se que um processador P apenas detecta a falha de um proc. P’ após ter recebido a ultima msg que lhe foi enviada por este TFD - Réplicas em máquinas de estados

10 Utilização de Relógios Lógicos
Teste de estabilidade com tolerância a falhas por paragem: Cada cliente Ci efectua periodicamente algum pedido (eventualmente nulo) à máquina de estados M Um pedido P é estável na réplica Mj se já foi recebido um pedido com timestamp superior de cada cliente executado num processador não faltoso TFD - Réplicas em máquinas de estados

11 Utilização de Relógios Físicos
uids formados por Tp(e)+<id_processador> Para garantir O1 e O2: O1 - cada cliente não pode fazer mais do que um pedido entre dois ticks sucessivos do relógio do respectivo processador O2 - o grau de sincronização dos relógios tem de ser melhor do que o tempo mínimo de entrega de mensagens Testes de estabilidade Um pedido (R) é considerado estável numa réplica Mi a ser executada no processador P se I) o relógio local em P ler T e uid(R) < (T - ) ou II) já foi recebido um pedido com uid superior de cada cliente TFD - Réplicas em máquinas de estados

12 Identif. gerados pelas réplicas
Fases 1ª: cada réplica Mi propõe identificador candidato cuid(Mi,R) 2ª: é seleccionado um dos cuid(Mi,R) que passa a uid(R) Vantagens a única comunicação necessária é entre o processador que executa o cliente e os processadores que executam as réplicas TFD - Réplicas em máquinas de estados

13 Identif. gerados pelas réplicas (cont.)
Definições Visto(Mi, R): réplica Mi recebeu pedido R e propôs cuid(Mi,R) Aceite(Mi, R): réplica Mi conhece a decisão uid(R) Restrições UID1: uid(R)  cuid(Mi,R) UID2: Se Visto (Mi, R’) depois de Aceite (Mi, R) então cuid(Mi, R’) > uid(R) TFD - Réplicas em máquinas de estados

14 Identif. gerados pelas réplicas (cont.)
Teste de estabilidade Aceite(Mi, R) é estável desde que não exista R’ tal que: Visto(Mi, R’) não esteja Aceite(Mi, R’) e cuid(Mi, R’)  uid(R) Para assegurar O1 e O2: O cliente só efectua novamente comunicações quando cada réplica tiver recebido o pedido TFD - Réplicas em máquinas de estados

15 Identif. gerados pelas réplicas (cont.)
Protocolos de geração de uids e cuids devem assegurar: UID1 e UID2 Se R  R’ então uid(R)  uid(R’) Todo Visto(M, R) eventualmente passa a Aceite(M, R) Cada réplica Mi mantém duas variáveis: VISTOi - maior cuid(Mi, R) atribuído a qualquer pedido R até ao momento visto por Mi ACEITEi - maior uid(R) atribuído a qualquer pedido R até ao momento aceite por Mi TFD - Réplicas em máquinas de estados

16 Identif. gerados pelas réplicas (cont.)
Falhas por paragem Ao receber um pedido R, cada réplica: calcula cuid(Mi, R) = max (VISTOi, ACEITEi) +1 +I dissemina cuid(Mi, R) aguarda recepção cuid(Mj, R) das réplicas não faltosas (NF) calcula uid(R) = maxMjNF ( cuid(Mj, R) ) e Aceita(Mi, R) Optimizações ISIS ABCAST cuids enviados para cliente, que calcula uid réplica única substitui cliente faltoso TFD - Réplicas em máquinas de estados

17 Identif. gerados pelas réplicas (cont.)
Falhas bizantinas Necessário garantir sincronização de relógios físicos Detecção de falhas cada réplica utiliza timeouts para evitar ficar eternamente à espera de réplicas eventualmente faltosas quando réplica Mi suspeita da falha de Mj, envia a todas as réplicas a msg ‘Mj timeout’ NF - conjunto de todas as réplicas excepto aquelas que tenham sido assinaladas como ‘Mj timeout’ por t+1 ou mais réplicas Eventual corrupção de cuids não tem implicações TFD - Réplicas em máquinas de estados

18 Faltas de dispositivos de saída
Resultados usados fora do sistema Falhas de votador e/ou dispositivo de saída Replicação de votadores e dispositivos de saída falhas bizantinas - 2t+1 pares votador/dispositivo falhas por paragem - t+1 pares votador/dispositivo Votador crítico é externo ao sistema flap com actuadores hidráulicos humano utilizador de écran de computador TFD - Réplicas em máquinas de estados

19 Faltas de dispositivos de saída
Resultados usados dentro do sistema Dispositivo de saída no cliente votador está no cliente falha do votador cliente tambem falha falha no envio de mensagens falhas bizantinas - aguardar t+1 respostas iguais falhas por paragem - aguardar primeira resposta que aparece Cliente numa réplica optimizações na quantidade de mensagens TFD - Réplicas em máquinas de estados

20 TFD - Réplicas em máquinas de estados
Faltas de Clientes Replicar cliente Votador na máquina de estados testar e ordenar pedidos iguais com uids diferentes pedidos supostamente iguais com contextos diferentes Programação defensiva Efectuar testes sintácticos e semânticos nos comandos evitar corrupção da máquina de estados Estabelecer mecanismos de timeout não receber um pedido pode ser tão prejudicial como receber um errado TFD - Réplicas em máquinas de estados

21 Utilização do tempo para efectuar pedidos implícitos
Vantagem diminuição do nº de mensagens Desvantagem não permite passagem de parâmetros Exemplos release automático, voto por defeito TFD - Réplicas em máquinas de estados

22 TFD - Réplicas em máquinas de estados
Reconfiguração Possíveis falhas bizantinas Condição de combinação Proc(t) - Falt(t) > Proc(t)/2 Em situação de falha Problema: Falt(t) aumenta, diminuindo Proc(t) - Falt(t) Solução: retirar processadores faltosos antes da condição ser violada Apenas falhas por paragem Condição de combinação: Proc(t) - Falt(t) > 0 Solução: reparar ou substituir processadores faltosos antes da condição ser violada TFD - Réplicas em máquinas de estados

23 Gestão da configuração
Detecção de faltas Um configurador por componente Requisitos de um configurador não faltoso C1: Apenas é removido da configuração um elemento faltoso C2: Apenas é adicionado à configuração um elemento não faltoso Exemplo: monitorização comparativa de comportamentos Condição de Combinação: configNF(elemF) + configF(elemNF)  t TFD - Réplicas em máquinas de estados

24 Reintegração de Objectos
Consistência com estado do sistema e[Ri] - estado da componente e depois de processar pedidos R0 a Ri elemento a reintegrar tem de adquirir estado e[Rjoin] antes de poder participar no sistema Elementos auto-estabilizadores estado definido pelos últimos k inputs TFD - Réplicas em máquinas de estados

25 Reintegração de Objectos
Elementos não auto-estabilizadores, assumindo falhas por paragem e usando relógios lógicos Se Cliente ou Dispositivo de saída: Mi envia as variáveis de estado relevantes antes de enviar resultados de pedidos com uid(R) > uid(Rjoin) Se Réplica Mnew da Maquina de estados: Mi envia variáveis de estado e pedidos pendentes a Mnew e faz o relay de todas os pedidos subsequentes recebidos de cada cliente tal que uid(R) < uid(Rc), representando Rc o primeiro pedido recebido por Mnew directamente do cliente TFD - Réplicas em máquinas de estados

26 Comunicação em grupo ISIS
Comunicação em grupo ISIS ABCAST - (Atomic Broadcast) Mantém a ordem de entrega dos pedidos, em todas as réplicas, mesmo que essa ordem não seja premeditada Protocolo síncrono CBCAST - (Casual Multicast) Mais fraco que o ABCAST em sincronização distribuída Mantém a ordem causal dos pedidos na entrega 3 a 5 vezes mais rapido que o ABCAST mas está sujeita a atrasos Protocolo Síncrono ou Assíncrono ABCAST+CBCAST = Casual Atomic Multicast Sincronia virtual GBCAST - Primitiva de comunicação para usar quando queremos enviar um pedido a todos os elementos de um grupo e se esse grupo é muito grande. TFD - Réplicas em máquinas de estados TFD - Réplicas em máquinas de estados

27 TFD - Réplicas em máquinas de estados
Trabalho associado Trabalhos de Lamport [1978a] e [1978b] Schneider [1982] e [1985] ISIS Toolkit ABCAST CBCAST outros TFD - Réplicas em máquinas de estados

28 TFD - Réplicas em máquinas de estados
Conclusões Aproximação da Máquina de estados Método para concretizar um serviço tolerante a faltas, através da: replicação de servidores execução das réplicas em processadores que falhem individualmente coordenação interacções dos clientes com as réplicas Bancada de trabalho adequada para compreender e definir protocolos de gestão de réplicas «We have not yet encountered an application that could not be programmed cleanly in terms of state machines and clients» TFD - Réplicas em máquinas de estados

29 TFD - Réplicas em máquinas de estados
Referências “Replication Management using the State-Machine Approach” - Fred B. Schneider (1990) RFC Kenneth Birman, T. A. Joseph (1986) “The ISIS project: Real experience with a fault tolerant programming system”, Kenneth Birman, Robert Cooper TFD - Réplicas em máquinas de estados


Carregar ppt "TFD - Réplicas em máquinas de estados"

Apresentações semelhantes


Anúncios Google