Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouManuela Gularte Alterado mais de 9 anos atrás
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. 11 22 C0C0 C1C1 C3C3 C2C2 11 22 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} 11 11 22 22
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.