La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 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

2 2 Contenido  Introducción  Modelos de Cómputo Distribuido  Especificaciones de la difusión  Algoritmos de Difusión  Difusión Confiable con Terminación  Consenso  Relación entre problemas  Consenso y Difusión atómica en sistemas síncronos  Resultados de Complejidad

3 3 1. Introducción [1]  Diseñar y verificar aplicaciones distribuidas tolerantes a fallas.  Consenso  Difusiones confiables

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

5 5 2. Modelos de Cómputo Distribuido [1]  Clasificación  Paso de mensajes  Memoria compartida

6 6 Modelos de Computo Distribuido [2] [Parámetros]  Sincronización de procesos y comunicación  Tipos de fallas en los procesos  Tipos de fallas en la comunicación  Topología de la red  Procesos aleatorios o determinístas

7 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:

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

9 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

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

11 11 2.1.2. Asincronía  Un sistema es asíncrono, si:  No tiene límite el retardo de cada mensaje  Existe un desvío en el reloj  No hay un tiempo necesario para ejecutar un paso en el programa

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

13 13 2.2.1. Modelos de Falla [1]  Paro (Crash)  Omisión (Omission)  Envío  Recepción  General  Temporización  Arbritarias o Bizantinas  Bizantinas con autenticación de mensajes

14 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

15 15 Clasificación de Modelos de Falla [Síncronos] Paro Omisión de EnvíoOmisión de Recepción Omisión General Fallas de Temporización Fallas bizantinas con autenticación de mensaje Fallas bizantinas benignas

16 16 Clasificación de Modelos de Falla [Asíncronos] Paro Omisión de EnvíoOmisión de Recepción Omisión General Falla bizantina con autenticación de mensaje Falla bizantinas

17 17 2.3. Fallas de Comunicación  Paro Un acoplamiento deja de transportar mensajes.  Omisión Un acoplamiento de manera intermitente omite la transportación de mensajes.  Bizantinas Un 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.

18 18 2.4. Topología de la Red  Se 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

19 19 2.5. Determinista Vs. Aleatorio  Los Comportamientos de los procesos pueden ser determini stas 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.

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

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

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

23 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

24 24 3.1. Reliable Broadcast [1] [Difusión confiable] Sean dos primitivas broadcast(m) y deliver(m), m  M. 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.

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

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

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

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

29 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 (e  f) 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 e  h y h  f

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

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

32 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’.

33 33 3.5. FIFO Atomic Broadcast  Este modelo satisface los dos requerimientos:  Orden FIFO  Orden Total

34 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 Causal  Orden Total  Es el mecanismo clave en la aproximación de la Máquina de Estados para la tolerancia a fallas.

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

36 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

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

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

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

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

41 41 Modelo de Capas Aplicación/Difusión Algoritmo de Difusión send(m) Algoritmo de Difusión recieve(m) Red de Comunicaciones p Protocolo de Aplicación broadcast(m) q Protocolo de Aplicación deliver(m) Interfaz

42 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

43 43 Diferencias entre Algoritmos [Por tipo de mensaje]  Orden FIFO  Orden Causal  Orden Total Orden FIFO < Orden Causal < Orden Total

44 44 Relación entre Modelos [Resumen]

45 45 4. Algoritmos de Difusión  Están construidos por capas y modularmente  En particular veremos los siguientes algoritmos:  Reliable Broadcast  FIFO Broadcast

46 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)

47 47 4.2. Algoritmo FIFO Broadcast [Usando Reliable Broadcast] Todos los procesos p ejecutan lo siguiente: Inicializacion: msgbag:= vacio Next[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] +1 msgbag:= msgbag- {m’}

48 48 5. Terminating Reliable Broadcast [1]  Propiedades:  Terminación Cada proceso correcto, eventualmente entrega algún mensaje.  Validez Si un emisor es correcto, y difunde un mensaje m, todos los procesos correctos eventualmente entregarán m.

49 49 Terminating Reliable Broadcast [2]  Acuerdo Sin un proceso correcto, entrega m, eventualmente todos los procesos correctos entregarán m.  Integridad Cada proceso correcto entrega al menos un mensaje, y si entrega m  SF,entonces el emisor, debe haber difundido m.

50 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)

51 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ón Cada proceso decide su valor final en un numero finito de pasos

52 52 7. Relación entre Problemas  Reducción de problemas  En 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.

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

54 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

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

56 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)

57 57 Dudas???? Gracias

58 58 Bibliografía Sape Mullender, Distributed Systems, Second Edition, ACM Press, New York, NY, 1993, Cap. 5, pp. 97- 138 Distributed Systems (pirate version)

59 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 tilicogarcia@hotmail.com 5804 4930, 5804 4930 y 5804 4930 Ext. 228 Fault-Tolerant Broadcast and Related problems [Algoritmos distribuidos]


Descargar ppt "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."

Presentaciones similares


Anuncios Google