59
Difusión Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems] Ing. Martín García Hernández UAM-I Miércoles, 28 de marzo de 2007

Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

  • Upload
    eben

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

Ing. Martín García Hernández UAM-I Miércoles, 28 de marzo de 2007. Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]. Contenido. Introducci ón Modelos de Cómputo Distribuido Especificaciones de la difusión Algoritmos de Difusión - PowerPoint PPT Presentation

Citation preview

Page 1: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

Difusión Tolerante a Fallas[Fault-Tolerant Broadcast and Related problems]

Ing. Martín García HernándezUAM-I

Miércoles, 28 de marzo de 2007

Page 2: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

2

ContenidoIntroducciónModelos de Cómputo DistribuidoEspecificaciones de la difusiónAlgoritmos de DifusiónDifusión Confiable con TerminaciónConsensoRelación entre problemasConsenso y Difusión atómica en sistemas síncronosResultados de Complejidad

Page 3: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

3

1. Introducción [1]

Diseñar y verificar aplicaciones distribuidas tolerantes a fallas.ConsensoDifusiones confiables

Page 4: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

4

Introducción [2]

Consenso:Elección de líder Acuerdo sobre el valor de varios sensores

Difusión confiable:En aplicaciones se necesita envió de mensajes

confiables.

Page 5: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

5

2. Modelos de Cómputo Distribuido [1]

ClasificaciónPaso de mensajesMemoria compartida

Page 6: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

6

Modelos de Computo Distribuido [2]

[Parámetros]

Sincronización de procesos y comunicaciónTipos de fallas en los procesosTipos de fallas en la comunicaciónTopología de la redProcesos aleatorios o determinístas

Page 7: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

7

2.1.1. Sincronía [1]

La sincronía es un atributo asociado a los procesos y a la comunicación entre estos.

Un sistema es sicrono si cumple las siguientes propiedades:

Page 8: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

8

Sincronía [2]

[Propiedades]

1.- Se asume que todos los mensajes tienen un límite superior δ en el retardo de los mensajes, tomando en cuenta, el envío, transporte y recepción, sobre un canal.

2.- Todos los procesos p tiene un reloj local Cp con una tasa

acotada con deriva ρ≥0 con respecto al tiempo real.

3.- Hay un conocimiento de la frontera de tiempo superior e inferior que un proceso requiere para ejecutar un paso.

(1 ) 1 Cp (t) Cp (t')

(t t')(1 )

Page 9: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

9

Sincronía [3]

En los sistemas síncronos, es posible tener una medida de los tiempos de cada mensaje.

Este tiempo puede ser empleado en la detección de fallas.

Esto hace posible que se puedan implementar, relojes aproximadamente sincronizados. Cumpliendo con la propiedad 2 de sincronía También cumplen con la siguiente propiedad:

Existe una , para cualesquiera dos procesos p y q, tal que

Cp (t) Cq (t)

Page 10: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

10

Sincronía [4]

Los relojes aproximadamente sincronizados, pueden servir para simular relojes perfectamente sincronizados.

Con un retardo en los mensajes de , y los relojes aproximadamente sincronizados, se puede implementar un modelo sincrono por rondas.

Page 11: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

11

2.1.2. Asincronía

Un sistema es asíncrono, si:No tiene límite el retardo de cada mensajeExiste un desvío en el relojNo hay un tiempo necesario para ejecutar un paso en el

programa

Page 12: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

12

2.2. Fallas en Procesos

Un proceso, Falla en una ejecución si su comportamiento no sigue los pasos que marca el algoritmo que está corriendo.

Un modelo Falla de forma especifica en la forma en que un proceso se desvía de su algoritmo.

Page 13: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

13

2.2.1. Modelos de Falla [1]

Paro (Crash)

Omisión (Omission)EnvíoRecepciónGeneral

Temporización

Arbritarias o Bizantinas

Bizantinas con autenticación de mensajes

Page 14: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

14

Modelos de Falla [2]

[Clasificación]

Se clasifican en términos de severidad PARO < CAIDA < OMISION <TEMPORIZACION< BIZANTINA

Son aplicables para modelos síncronos y asíncronos.

Las fallas de temporizacón únicamente para sistemas síncronos.

Se les llama Fallas benignas a todas aquellas menores que las fallas de tiempo. NO HAY CAMBIO DE ESTADO

Page 15: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

15

Clasificación de Modelos de Falla [Síncronos]

Paro

Omisión de Envío Omisión de Recepción

Omisión General

Fallas de Temporización

Fallas bizantinas con autenticación de mensaje

Fallas bizantinas

benignas

Page 16: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

16

Clasificación de Modelos de Falla [Asíncronos]

Paro

Omisión de Envío Omisión de Recepción

Omisión General

Falla bizantina con autenticación de mensaje

Falla bizantinas

Page 17: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

17

2.3. Fallas de ComunicaciónParo

Un acoplamiento deja de transportar mensajes.

Omisión Un acoplamiento de manera intermitente omite la

transportación de mensajes.

BizantinasUn acoplamiento puede presentar cualquier tipo de comportamiento, genera mensajes espurios.

Temporización (sistemas síncronos)Un acoplamiento transporta mensajes mas rápido o mas lento que lo especificado o esperado.

Page 18: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

18

2.4. Topología de la RedSe modela mediante una grafica: G (V, E).

Existe la suficiente conectividad para que todos los procesos se comuniquen.

Se desea saber si las redes nuevas tienen la suficiente conectividad para permitir las procesos correctos de comunicación

Page 19: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

19

2.5. Determinista Vs. Aleatorio

Los Comportamientos de los procesos pueden ser deterministas o aleatorios.Aleatorio:

Es un proceso donde la transición de estados genera un conjunto de posibles estados, después de la ejecución de un paso.

Determinista:Es un proceso donde la relación de transición de estados determina el estado resultante, después de la ejecución de un paso.

Los procesos se pueden modelar en lo general mediante autómatas.

Page 20: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

20

3. Especificaciones de Difusión [1]

Considérese un sistema distribuido, donde los procesos se comunican vía difusión:

Si una falla ocurre durante la difusión, sólo un subconjunto de procesos, entregarán su mensaje.

Por lo tanto, una difusión no confiable, NO puede ser una herramienta para construir un sistema tolerante a fallas.

Page 21: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

21

Especificaciones de Difusión [2]

Una difusión confiable debe satisfacer:

1. Todos los procesos correctos, concuerdan en los mensajes que entregan.

2. Todos los mensajes que difunden los procesos correctos, son entregados.

3. No deben entregarse mensajes espurios.

Page 22: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

22

Especificaciones de Difusión [3]

Algunas aplicaciones, sólo requieren que se cumplan, las tres propiedades anteriores.

Por otro lado, algunas otras exigen mayor precisión, en cuanto al orden en que se entregan los mensajes.

En los siguientes tipos de difusión, se asume que solo son afectados, por fallas de tipo benignas.

Page 23: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

23

Especificaciones de Difusión [4]

[Tipos]

Reliable broadcast

FIFO broadcast

Causal broadcast

Atomic broadcast

FIFO atomic broadcast

Causal atomic broadcast

Timed broadcast

Uniform broadcast

Page 24: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

24

3.1. Reliable Broadcast [1]

[Difusión confiable]

Sean dos primitivas broadcast(m) y deliver(m), mM. Además, cada mensaje contiene dos campos: sender(m), que indica la identidad del emisor y seq#(m), que indica el número de secuencia del mensaje.

Page 25: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

25

Reliable Broadcast [2]

Validez: Si un proceso correcto difunde un mensaje m, eventualmente todos los procesos correctos entregarán m.

Acuerdo: Si un proceso correcto entrega un mensaje m, eventualmente todos los procesos correctos entregarán m.

Integridad:Para cualquier mensaje m, cada proceso correcto entrega m a lo más una vez, y solo si algunos procesos difunden m.

Page 26: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

26

Reliable Broadcast [3]

Cuando un proceso p falla durante la difusión de un mensaje.

Que el mensaje sea entregado por todos los procesos correctos.

Que ningún proceso entregue el mensaje.

Page 27: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

27

3.2. FIFO Broadcast

Es una difusión confiable [Reliable Broadcast], que mantiene un orden FIFO en la entrega de sus mensajes.

Cada mensaje tiene un contexto, si en el cual, éste puede ser malinterpretado.

Los mensajes podrían no ser entregados a un proceso, si no conoce su contexto.

Un modelo FIFO Broadcast, satisface lo siguiente:Orden FIFO

Si un proceso difunde un mensaje m, antes que un mensaje m’, entonces los procesos correctos, no pueden entregar m’, antes que m.

Page 28: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

28

3.3. Causal Broadcast [1]

Un difusión Causal Broadcast, es un tipo de Reliable Broadcast que satisface lo siguiente:

Orden causal. Si la difusión de m, precede causalmente a la difusión de m’, entonces los procesos no entregan m’, hasta entregar m.

Page 29: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

29

Causal Broadcast [2]

Una ejecución de una de las primitivas, broadcast(m) ó deliver(m), es llamado evento.

Un evento que precede a un evento f (ef) si y sólo sí:

1. Un proceso ejecuta e y f, en este orden,

2. El evento e es la difusión de m, y f es la entrega de m,

3. Hay un evento h, tal que eh y hf

Page 30: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

30

Causal Broadcast [3]

En muchas aplicaciones, un mensaje m depende de los mensajes entregados anteriormente.

En este caso, un modelo FIFO Broadcast, no es suficiente.

El modelo Causal Broadcast, asegura que un mensaje, no sea entregado, hasta que los mensajes que dependen de él, hayan sido entregados.

Page 31: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

31

3.4. Atomic Broadcast [1]

Un modelo Causal Broadcast, no impone, ninguna restricción en cuanto a los mensajes que no se relacionan causalmente.

Atomic Broadcast, impone que todos los mensajes sean entregados en el mismo orden, de los procesos correctos.

Con esto, se garantiza que todos los procesos, tengan la misma vista del sistema.

Page 32: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

32

Atomic Broadcast [2]

Formalmente, un Atomic Broadcast, es un Reliable Broadcast que satisface lo siguiente:

Orden Total. Si dos procesos, p y q, difunden m y m’; entonces p entrega m antes que m’, si y sólo si, q entrega m antes que m’.

Page 33: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

33

3.5. FIFO Atomic Broadcast

Este modelo satisface los dos requerimientos:

Orden FIFOOrden Total

Page 34: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

34

3.6. Causal Atomic Broadcast

Este modelo es usado para diseminar artículos.

Es un modelo de difusión confiable, que satisface los siguientes requerimientos:Orden CausalOrden Total

Es el mecanismo clave en la aproximación de la Máquina de Estados para la tolerancia a fallas.

Page 35: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

35

3.7. Timed Broadcast

Muchas aplicaciones requieren que los mensajes se entreguen a todos, en un tiempo limitado, después de su difusión.

Esta propiedad es llamada -Timeliness.

Para tiempo real: Existe una constante , tal que los procesos correctos, no entregan un mensaje

m, después de un tiempo real mayor a t+ .

Para tiempo local: Existe una constante , tal que un proceso correcto p, no entregan un mensaje

m, después de un tiempo local mayor a ts(m)+ , sobre su reloj local.

Page 36: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

36

3.8. Uniform Broadcasts

Para este modelo se tienen las siguientes propiedades: Acuerdo Uniforme Integridad Uniforme -Timeliness de Tiempo Local Uniforme

También se pueden definir las siguientes propiedades de orden: Orden FIFO Uniforme Orden Causal Uniforme Orden Total Uniforme

Page 37: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

37

3.9. Inconsistencia y Contaminación

Se asume los siguiente:

Aplicaciones donde los procesos se comunican mediante una difusión tolerante a fallas.

Sólo existen fallas de tipo “benigno”.Cada estado de un proceso, depende de que mensajes ha

entregado hasta ahora.Cada estado y el protocolo de la aplicación, determinan si hay

que difundir un mensaje y su contenido.

Page 38: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

38

Inconsistencia

Suponiendo que un proceso p falla, omitiendo la entrega de un mensaje que los demás procesos correcto si entregan.

El estado de p es inconsistente con respecto al estado de todos los procesos correctos.

Page 39: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

39

Contaminación

Suponiendo que el mismo proceso p, continua su ejecución, pero con su estado es inconsistente, difunde un mensaje m a todos los demás procesos correcto.

El mensaje m, ahora es corrupto, ya que refleja el estado de p, el cual es inconsistente, por lo tanto, todos los demás procesos tienen estados incosistentes, y a esto se le llama contaminación.

Page 40: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

40

3.10. Amplificación de Fallas

Una difusión tolerante a fallas, se implementa usualmente con un algoritmo de difusión (Broadcast Algorithm).

Este algoritmo usa primitivas de comunicación de bajo nivel punto a punto (sends y recieves).

En general un algoritmo de difusión amplifica la severidad de las fallas, que ocurren en un bajo nivel.

Page 41: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

41

Modelo de Capas Aplicación/Difusión

Algoritmo de Difusiónsend(m)

Algoritmo de Difusiónrecieve(m)

Red de Comunicaciones

pProtocolo de Aplicación

broadcast(m)

qProtocolo de Aplicación

deliver(m)Interfaz

Interfaz

Page 42: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

42

3.11. Especificaciones de Difusión[Resumen]

Todos los Modelos de Difusión deben de seguir las propiedades de Reliable Broadcast.

Validez

Acuerdo

Integridad

Page 43: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

43

Diferencias entre Algoritmos[Por tipo de mensaje]

Orden FIFO

Orden Causal

Orden Total

Orden FIFO < Orden Causal < Orden Total

Page 44: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

44

Relación entre Modelos[Resumen]

Page 45: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

45

4. Algoritmos de Difusión

Están construidos por capas y modularmente

En particular veremos los siguientes algoritmos: Reliable Broadcast FIFO Broadcast

Page 46: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

46

4.1 Algoritmo Reliable Broadcast

Todos los procesos p ejecutan lo siguiente:

Al ejecutar Broadcast(R, m):La etiqueta m con sender(m) y seq#(m)Send(m) a todos los vecinos incluyendo p

Deliver(R,m) ocurre lo siguiente: Al recieve(m) haz

si p no ha ejecutado previamnete deliver(R,m) entonces

si serder(m) es distinto de p entonces send(m) a todos los vecinos deliver(R,m)

Page 47: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

47

4.2. Algoritmo FIFO Broadcast[Usando Reliable Broadcast]

Todos los procesos p ejecutan lo siguiente:

Inicializacion:msgbag:= vacioNext[q]:=1 para todo q Al ejecutar Broadcast(F,m):

Broadcast(R,m)deliver(F,m) ocurre lo siguiente:

Al deliver(R,m) haz q:= sender(m)msgbag:= msgbag U {m}mientras (exista m’ que pertenesca a msgbag: sender(m’)= q y seq#(m’)=next[q]) haz

deliver(F,m’) next[q]:= next[q] +1msgbag:= msgbag- {m’}

Page 48: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

48

5. Terminating Reliable Broadcast [1]

Propiedades:Terminación

Cada proceso correcto, eventualmente entrega algún mensaje.

ValidezSi un emisor es correcto, y difunde un mensaje m, todos los procesos correctos eventualmente entregarán m.

Page 49: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

49

Terminating Reliable Broadcast [2]

AcuerdoSin un proceso correcto, entrega m, eventualmente todos los procesos correctos entregarán m.

IntegridadCada proceso correcto entrega al menos un mensaje, y si entrega mSF,entonces el emisor, debe haber difundido m.

Page 50: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

50

6. Consenso [1]

A diferencia de la Difusión, en el Consenso, no se toma acuerdo sobre los mensajes, sino sobre un valor.

Las primitivas son:Propose(v)Decide(v)

Page 51: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

51

Consenso [2]

Un algoritmo distribuido que resuelva el problema de consenso es correcto si garantiza una solución con las siguientes propiedades : Acuerdo

Todos los procesos coinciden n su valor final Validez

El valor acordado fue la entrada de alguno de los procesos

TerminaciónCada proceso decide su valor final en un numero finito

de pasos

Page 52: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

52

7. Relación entre Problemas

Reducción de problemasEn sistemas síncronos, el modelo TRB, es

equivalente al modelo de Consenso.En sistemas asíncronos, el modelo de Consenso,

puede reducirse al modelo TRB, si se emplea aleatoriedad.

Page 53: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

53

8. Consenso y Atomic Broadcast

El problema Atomic Broadcast no puede ser resuelto con un algoritmo determinístico, en un ambiente asíncrono, aun si se considera a lo más una falla y que sea falla de paro.

El problema Atomic Broadcast puede ser resuelto usando aleatoriedad o detectores de falla en sistemas asíncronos.

Page 54: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

54

9. Resultados de Complejidad [1]

[Tolerancia a Fallas]

En presencia de fallas bizantinas, si n≤3f, no existen algoritmos que toleren este tipo de fallas.

En presencia de fallas bizantinas con autentificación, n ≥2f

En presencia de fallas benignas, n≥f

Page 55: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

55

Resultados de Complejidad [2]

[Complejidad Temporal]

Una ronda consta de: Envío, recepción y cambio de estado.

f+1 rondas en el peor caso.

f+d rondas en presencia de fallas en los enlaces (máx. d enlaces).

Page 56: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

56

Resultados de Complejidad [3]

[Complejidad de mensajes]

Fallas Bizantinas : O(nxf) en el peor caso

Omisión General : O(n+f2)

Fallas de paro : O(n+f log f)

Page 57: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

57

Dudas????Gracias

Page 58: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

58

Bibliografía

Sape Mullender, Distributed Systems, Second Edition, ACM Press, New York, NY, 1993, Cap. 5, pp. 97-138

(pirate version)

Page 59: Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

59

Maestría en Ciencias y tecnologías de la Información

Universidad Autónoma Metropolitana

Iztapalapa, México

http://mcyti.izt.uam.mx

http://www.iztapalapa.uam.mx

[email protected]

5804 4930, 5804 4930 y 5804 4930 Ext. 228

Fault-Tolerant Broadcast and Related problems[Algoritmos distribuidos]