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

ing mart n garc a hern ndez uam i mi rcoles 28 de marzo de 2007 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems] PowerPoint Presentation
Download Presentation
Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]

play fullscreen
1 / 59
Difusi ón Tolerante a Fallas [Fault-Tolerant Broadcast and Related problems]
171 Views
Download Presentation
eben
Download Presentation

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

  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. Diseñary verificar aplicaciones distribuidas tolerantes a fallas. Consenso Difusionesconfiables 1. Introducción [1]

  4. Consenso: Elecciónde líder Acuerdo sobre el valor de varios sensores Difusión confiable: En aplicaciones se necesita envió de mensajes confiables. Introducción [2]

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

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

  7. La sincroníaes un atributo asociado a los procesos y a la comunicaciónentre estos. Un sistema es sicrono si cumple las siguientes propiedades: 2.1.1. Sincronía [1]

  8. Sincronía [2][Propiedades] 1.- Se asume que todos los mensajes tienen un límite superior δenel 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 Cpcon una tasa acotada con deriva ρ≥0con 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. 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 Sincronía[3]

  10. 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. Sincronía[4]

  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. 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. 2.2. Fallas en Procesos

  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. 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. 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 Clasificación de Modelos de Falla [Síncronos] benignas

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

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

  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. Especificaciones de Difusión [2] • Una difusión confiable debe satisfacer: • Todos los procesos correctos, concuerdan en los mensajes que entregan. • Todos los mensajes que difunden los procesos correctos, son entregados. • No deben entregarse mensajes espurios.

  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. 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. 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. 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. 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. 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. 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. 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í: • Un proceso ejecuta e y f, en este orden, • El evento e es la difusión de m, y f es la entrega de m, • Hay un evento h, tal que eh y hf

  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. 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. 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. 3.5. FIFO Atomic Broadcast • Este modelo satisface los dos requerimientos: • Orden FIFO • Orden Total

  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. 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. 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. 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. 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. 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. 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. Modelo de Capas Aplicación/Difusión p Protocolo de Aplicación broadcast(m) q Protocolo de Aplicación deliver(m) Interfaz Algoritmo de Difusión send(m) Algoritmo de Difusión recieve(m) Interfaz Red de Comunicaciones

  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. Diferencias entre Algoritmos[Por tipo de mensaje] • Orden FIFO • Orden Causal • Orden Total Orden FIFO < Orden Causal < Orden Total

  44. Relación entre Modelos[Resumen]

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

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