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

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

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

Apresentações semelhantes


Apresentação em tema: "Impossibility of Distributed Consensus with One Faulty Process Michael J. Fischer Nancy A. Lynch Michael S. Paterson 1985 Apresentado por Nazareno Andrade."— Transcrição da apresentação:

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

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

3 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.

4 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.”

5 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.

6 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.

7 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

8 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.

9 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.

10 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

11 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.

12 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.

13 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.

14 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

15 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 }

16 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.

17 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.

18 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

19 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.

20 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.

21 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

22 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.

23 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.

24 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 ).

25 Prova do Resultado: Lema 2 1 11 0 0 11000 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

26 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 0 - 0-valente C 1 - 1-valente  (p não d á passos) diferem em x p decidem em v

27 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.

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

29 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;

30 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

31 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

32 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

33 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

34 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.

35 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.

36 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.

37 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


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

Apresentações semelhantes


Anúncios Google