Impossibility of Distributed Consensus with One Faulty Process Michael J. Fischer Nancy A. Lynch Michael S. Paterson 1985 Apresentado por Nazareno Andrade.

Slides:



Advertisements
Apresentações semelhantes
Semáforos Eduardo Nicola F. Zagari
Advertisements

Bruno M. Carvalho Sala: 3B2 Horário: 35T34
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Variantes de Máquina de Turing
Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS
Sistemas distribuídos
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Profa. Priscila Facciolli
Modelos de Comunicação em Sistemas Distribuídos
Resolução.
Inteligência Artificial
Finite State Machines.
Algoritmos Distribuídos Professora: Lúcia Drummond
Instituto de Computação - UFF Detecção de Terminação Algoritmos Distribuídos Professora: Lúcia Drummond.
Capítulo 2: Modelo de Computação distribuída
Capítulo 4: Estado Global
Teoremas Teorema 5.1: Para, o número máximo de candi- datos restantes no pulso s=2k no algoritmo S_Elect_Leader_C é. Prova: No pulso s=2k, por (5.3) um.
Uma aproximação no meio dos nossos dois extremos Motivação: – Se nós não sabemos o valor do vem-1, o que podemos fazer? – Quando nós podemos sempre gerar.
TCP Serviço de Transporte Confiável
autômatos finitos com transições e
Unreliable Failure Detectors for Reliable Distributed Systems
Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 5: Modelos de Sistemas Distribuídos.
Sistemas Distribuídos
Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 5: Modelos de Sistemas Distribuídos.
Uma Introdução a Detectores de Defeitos para Sistemas Assíncronos
Carolina Fonseca Neumar Ribeiro
The Byzantine Generals Problem
1 Modelos Fundamentais -> Falhas Segurança. 2 Falhas. É o modelo que define os modos nos quais uma falha pode ocorrer de forma a disponibilizar o entendimento.
Modelos Fundamentais -> Interação Falhas Segurança.
Questões Resolvidas - A.C.-10/08/05
ESTRUTURA DE COMUNICAÇÃO DE DADOS
Capítulo 5 – Tanenbaum Capítulo 10,11,12 e 13 - Coulouris
Linguagem de 1ª ordem da teoria de conjuntos
TIME, CLOCK’S and EVENTS
CONSENSO O grande mal-entendido
24/05/1999Non-Blocking Atomic Commitment1 in Distributed Systems Faculdade de Ciências da Universidade de Lisboa Mestrado 98/99 Tolerância a Faltas em.
Confirmação Atómica não-Bloqueante Definição do Problema Garantir que todos os participantes correctos de uma transacção tomem a mesma decisão, nomeadamente,
Conceitos Básicos.
Tópicos em Sistemas Distribuídos
Protocolo CMB em simulação distribuída
Informática Teórica Engenharia da Computação
TEORIA AXIOMÁTICA DOS CONJUNTOS
Introdução aos Agentes Autónomos (UD2) Teorias de Agentes e Agentes Deliberativos IST- 2003/2004.
Tópicos Avançados de Base de Dados
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Carlos Oberdan Rolim Ciência da Computação
O problema do emparelhamento máximo
Aulas 9,10 Fábio Nakano.
Uma introdução ao seu funcionamento
Concorrência STRD.
Sistemas Distribuídos
Protocolos de Recuperação
O Problema Do Acordo Distribuído (Acordo Bizantino)
Universidade da Beira Interior Processadores Fail-Stop Trabalho realizado por: Rui ferreira Nº Eng. Informática.
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação Programa de Pós-Graduação.
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
LFA: Unidade 03 – Parte B Engenharia/Ciência da Computação
Redução.
Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 1 CMP157 – Programação.
Prof. Anne Magály de Paula Canuto
Modelos de Comunicação em Sistemas Distribuídos
Modelos de Comunicação em Sistemas Distribuídos
tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06.
Serviço de tempo, Exclusão Mútua, Eleição e Acordo Prof. Dr. Norian Marranghello Grupo 5 Anuar Mamede Neto Eduardo Hitoshi Aoki.
Design e prova de corretude de um protocolo para a detecção de clones de agentes móveis usando redes de Petri coloridas Jusung Baek Kwang-Ju Institute.
Sistemas Distribuídos
Maique C. Garcia Pelotas, Junho de  Controle Automático Autônomo  Através da identificação da ação mais adequada em caso de um diagnóstico de.
Lucas R. Costa Rodrigo R. Bezerra Kaio A. da silva
Transcrição da apresentação:

Impossibility of Distributed Consensus with One Faulty Process Michael J. Fischer Nancy A. Lynch Michael S. Paterson 1985 Apresentado por Nazareno Andrade

Roteiro Introdução Modelo do sistema Prova do resultado Conclusões

Introdução Problema: Consenso de um sistema de processos distribuído sobre um valor de um conjunto pré-determinado. Processamento de dados distribuídos; Sistemas de arquivos distribuídos; Aplicações distribuídas tolerantes a falhas; Etc.

Introdução Falhas. O consenso é Impossível em um sistema assíncrono com possibilidade de uma falha. “Nenhum protocolo de consenso completamente assíncrono pode tolerar mesmo uma falta.”

Introdução O sistema não difere entre um processo lento e um processo morto. Se o consenso depende de um processo morto, o sistema esperará para sempre. O formalismo para estas afirmações segue.

Modelo do Sistema Completamente assíncrono Nenhuma restrição sobre as velocidades relativas dos processos ou o tempo de entrega das mensagens; Não há relógios sincronizados; Sistema de mensagens confiável; É impossível detectar a morte de um processo; Processos falham por parada.

Modelo do Sistema Consenso simples (“weak”) Cada processo começa com um valor em {0,1} Um processo correto decide indo para um valor de decisão em {0,1} Todos os processos corretos devem escolher o mesmo valor. Consenso simples (“weak”) Restrições fortes sobre as falhas Consenso mais complexo Restrições fracas sobre as falhas

Modelo do Sistema: Protocolo Um protocolo de consenso é um sistema assíncrono de 2 ou mais processos. Os processos são autômatos que se comunicam por meio de mensagens; As mensagens são entregues por um sistema de mensagens global confiável.

Modelo do Sistema: Sistema de mensagens Uma mensagem é um par (p,m) Atomic broadcasting assumido; Não-determinístico; Mantém um buffer global; Duas primitivas: send (p, m): receive (p): É permitido que receive retore  um número finito de vezes, mesmo se (p,m) está no buffer.

Modelo do Sistema: Processo Processo: Um registro de input xp Um registro de output yp = {b, 0, 1}, inicializado em b e “write once”. Capacidade de armazenamento interna ilimitada Xp + Yp + armazenamento interno + program counter = estado interno. XpYp armazenamento Program counter

Modelo do Sistema: Execução de um processo O resultado do processamento depende do input, da comunicação e das funções de transição. Um processo age deterministicamente de acordo com sua função de transição. A função altera o estado interno do processo de acordo com o input Se Yp  b então o processo está num estado de decisão.

Modelo do Sistema: Configuração Configuração do sistema: Estados internos de todos os processos Conteúdo do Buffer de mensagens Configuração inicial: Todos os processos em estado inicial Buffer vazio.

Modelo do Sistema: Steps Um step primitivo de um processo que leva uma configuração a outra. receive(p) -> novo estado interno -> envia um número finito de mensagens; Pode ser definido por um par (p,m) = e, um evento.

Modelo do Sistema: Steps (cont.) e(C) é então a configuração obtida pela aplicação de e a C; (p, ) pode ser sempre aplicado  não há deadlocks. ee0ee0 ee1ee1 ee2ee2 C0C0 C1C1 C3C3 C2C2

Modelo do Sistema: Runs e Schedules Schedule:  = e 1, e 2, e 3,…, e n aplicáveis a C em ordem. Finita ou infinita Run: s = step 1, step 2, … step n associada. ee0ee0 ee1ee1 ee2ee2 C0C0 C1C1 C3C3 C2C2  C0C0 C3C3  = {e 0, e 1, e 2 }

Modelo do Sistema: Mais algumas definições   finita t.q.  (C)=C’  C’ é alcançável (reachable) a partir de C; Se C é uma configuração inicial, então C’ é acessível. Todas as configurações consideradas são acessíveis.

Modelo do Sistema: Lema 1 “ Suponha que em alguma configuração C as schedules 1 e 2 levem às configurações C1 e C2, respectivamente. Se os conjuntos de processos dando steps em 1 e 2 são disjuntos, então 2 pode ser aplicado a C1 e 1 pode ser aplicado a C2 e ambas levarão à mesma configuração C3”. “Comutatividade” das Schedules.

Modelo do Sistema: Lema 1 (cont.) Prova: Definição do sistema. 11 22 C0C0 C1C1 C3C3 C2C2 11 22 P1= {0,b} P2 {0, b} P3{0, b} P1= {0,b} P2 {1, 0} P3{1, b} P1= {1,1} P2 {0, b} P3{0, b} P1= {1,1} P2 {1, 0} P3{1, b} 11 11 22 22

Modelo do Sistema: Definições Uma configuração do sistema possui um valor de decisão v se algum processo p está no estado de decisão com yp = v (v!=b). Um protocolo de consenso é parcialmente correto se Nenhuma configuração acessível possui mais de um valor de decisão; Para cada v  {0,1} alguma configuração acessível tem valor v.

Modelo o Sistema: Definições Processo correto - infinitos steps em um run. Processo falho – número finito de steps Run admissível: No máximo um processo é falho Todas as mensagens enviadas a processos corretos são eventually recebidas. Run de decisão: Algum processo atinge estado de decisão nesta run.

Modelo do Sistema: Definições Protocolo consenso totalmente correto apesar de uma falta: Parcialmente correto Toda run admissível é uma run de decisão Nenhuma configuração acessível possui mais de um valor de decisão; Para cada v  {0,1} alguma configuração acessível tem valor v. Toda run admissível é uma run de decisão Consenso Não trivialidade Terminação

Modelo do Sistema: Valência Sendo V o conjunto de valores de decisão das configurações alcançáveis a partir de C Se | V | = 2, C é bivalente; Se | V | = 1, C é univalente; V = {1}, C é 1- valente; V = {0}, C é 0- valente.

Prova do Resultado: Teorema “Nenhum protocolo de consenso é totalmente correto apesar de uma falta.” Prova: Existe alguma configuração inicial bivalente; É possível construir uma run admissível que evite sempre dar o step que decidiria por um valor.

Prova do Resultado: Lema 2 “Existe uma configuração inicial bivalente.” Prova por contradição Hipótese: Não existem estados iniciais bivalentes. Pela definição Configurações iniciais 0 e 1-valentes ( não trivialidade ). C0 é 0-valente e C1 é 1-valente Existem C0 e C1 que diferem apenas em um processo p ( que é decisivo ).

Prova do Resultado: Lema Aplicando-se schedules em que p não dá passos (falha?), o estado interno de C 0 e C 1 será idêntico, com exceção de xp de p C 0 e C 1 eventually atingirão um mesmo valor de decisão. C0C0 C1C1

Prova do Resultado: Lema 2 Mas C 0 e C 1 têm valências diferentes. C 0 ou C 1 é bivalente  contradição. “Existe uma configuração inicial bivalente”. C valente C valente  (p não d á passos) diferem em x p decidem em v

Prova do Resultado: Lema 3 Seja C uma configuração bivalende de P e e=(p,m) um evento que é aplicável a C. Seja  o conjnto das configurações atingíveis a partir de C sem aplicar e, e  ={ e(E) | E   }.  possui uma configuração bivalente. I.e., é possível ir de uma configuração bivalente a outra por uma schedule não-vazia.

  Prova do Resultado: Lema 3  possui uma configuração bivalente. C E **** B e bivalente Ce Se Então * tal que

Prova do Resultado: Lema 3 Prova por contradição Hipótese:  não possui nenhuma configuração bivalente. Pela definição Existem E 0 e E 1, 0 e 1-valentes, respectivamente;

Prova do Resultado: Lema 3  possui estados 0 e 1-valentes: E 0 é 0-valente Se E 0   então F 0 = e(E 0 )    F 0 is 0- valente Se E 0   então existe F 0   do qual E 0 is reachable  F 0 is 0-valente Em ambos os casos, F 0 é 0-valente e pertence a  Idem para uma configuração 1-valente

Prova do Resultado: Lema 3 Para e=(p,m) e e’=(p’,m’): Ca e Cb tal que Ca = e’(Cb)   Ca bivalente e Cb 1-valente D0 = e(Ca)   é 0-valente D1 = e(Cb)   é 1-valente e e’ CaCa CbCb D1D1 D0D0

Prova do Resultado: Lema 3 se em e=(p,m) e e’=(p’,m’) p’  p’ podemos aplicar o lema1 (comutatividade) e e’ CaCa CbCb D1D1 D0D0 e Mas D0 é 0 valente e D1 é 1-valente  contradição

Prova do Resultado: Lema 3 A outra possibilidade é p’=p Considere uma schedule  de uma deciding run em que p pára. Seja A = (Ca).  A e D0D0D0D0 C0C0C0C0 C1C1C1C1 D1D1D1D1 e e’e’e’e’ e’e’e’e’ e E1E1E1E1   E0E0E0E0 e A é bivalente  contradição

Prova do Resultado: Lema 3 Pela contradição da hipótese “ não possui nenhuma configuração bivalente”, provou-se que É possível sempre ir de um estado bivalente a outro por uma schedule não-vazia.

Prova do Resultado: Impossibilidade Pelos lema 2 e 3: É possível, partindo de uma configuração inicial em que o resultado não está previamente determinado construir uma run admissível que evita para sempre a decisão. Sempre tomar um passo para outro estado não determinado. Esta run será infinita.

Prova do Resultado: Impossibilidade Assim, pela contradição da hipótese da prova: Não existe um protocolo de consenso totalmente correto apesar de uma falha.

Conclusões O consenso em sistemas totalmente assíncronos é impossível. Para possibilitar um consenso satisfatório é necessário mudar o modelo Sincronismo Introduzir possiblidade de consenso Prover uma forma de detectar a morte de processos