Articulo de referencia

Detector de fallos

En un sistema de computación distribuida , un detector de fallos es una aplicación informática o un subsistema responsable de la detección de fallos o caídas de nodos . [ 1 ] Lo...

En un sistema de computación distribuida , un detector de fallos es una aplicación informática o un subsistema responsable de la detección de fallos o caídas de nodos . [ 1 ] Los detectores de fallos fueron introducidos por primera vez en 1996 por Chandra y Toueg en su libro Detectores de fallos no fiables para sistemas distribuidos fiables . El libro describe el detector de fallos como una herramienta para mejorar el consenso (el logro de la fiabilidad) y la difusión atómica (la misma secuencia de mensajes) en el sistema distribuido. En otras palabras, los detectores de fallos buscan errores en el proceso , y el sistema mantendrá un nivel de fiabilidad . En la práctica, después de que los detectores de fallos detecten caídas, el sistema bloqueará los procesos que estén cometiendo errores para prevenir caídas o errores más graves. [ 2 ] [ 3 ]

En el siglo XXI, los detectores de fallos se utilizan ampliamente en sistemas de computación distribuida para detectar errores en las aplicaciones , como cuando una aplicación de software deja de funcionar correctamente. A medida que los proyectos de computación distribuida (véase la Lista de proyectos de computación distribuida ) se vuelven más populares, el uso de los detectores de fallos también se vuelve importante y crítico. [ 4 ] [ 5 ]

Origen

Detector de fallos poco fiable

Chandra y Toueg, coautores del libro Detectores de fallos poco fiables para sistemas distribuidos fiables (1996), abordaron el concepto de detección de nodos de fallo mediante la introducción del detector de fallos poco fiable. [ 6 ] Describen el comportamiento de un detector de fallos poco fiable en un sistema de computación distribuida de la siguiente manera: después de que cada proceso del sistema ingrese a un componente local del detector de fallos, cada componente local examinará una parte de todos los procesos dentro del sistema. [ 5 ] Además, cada proceso también debe contener programas que actualmente son sospechosos para los detectores de fallos. [ 5 ]

Detector de fallos

Esta imagen describe el comportamiento de un detector de fallos (FD) típico.

Chandra y Toueg afirmaron que un detector de fallos no fiable aún puede ser fiable para detectar los errores cometidos por el sistema. [ 6 ] Generalizan los detectores de fallos no fiables a todas las formas de detectores de fallos porque los detectores de fallos no fiables y los detectores de fallos comparten las mismas propiedades. Además, Chandra y Toueg señalan un hecho importante: el detector de fallos no evita ningún fallo en el sistema, incluso si el programa que falló ya se había sospechado. La construcción de un detector de fallos es un problema esencial, pero muy difícil, que surgió en el desarrollo del componente tolerante a fallos en un sistema informático distribuido. Como resultado, el detector de fallos se inventó debido a la necesidad de detectar errores en la transacción masiva de información en sistemas de computación distribuida. [ 1 ] [ 3 ] [ 5 ]

Propiedades

Las clases de detectores de fallos se distinguen por dos propiedades importantes: completitud y precisión . La completitud significa que los detectores de fallos encontrarían los programas que finalmente fallaron en un proceso, mientras que la precisión significa que las decisiones que tomaron los detectores de fallos en un proceso son correctas. [ 5 ]

Grados de completitud

Los grados de completitud dependen del número de procesos que un detector de fallos sospecha que han fallado en un período determinado. [ 5 ]

  • Completitud fuerte: "todo proceso defectuoso es eventualmente sospechoso de forma permanente para todo proceso no defectuoso". [ 6 ]
  • Completitud débil: "todo proceso defectuoso es eventualmente sospechoso de forma permanente por algún proceso no defectuoso". [ 6 ]

Grados de precisión

Los grados de precisión dependen del número de errores que haya cometido un detector de fallos en un período determinado. [ 5 ]

  • Gran precisión: "ningún proceso es sospechoso (por nadie) antes de que falle". [ 6 ]
  • Precisión débil: "nunca se sospecha de algún proceso que no sea defectuoso". [ 6 ]
  • Precisión fuerte eventual: "no se sospecha de ningún proceso no defectuoso después de cierto tiempo desde el final del período inicial de caos como el momento en que ocurre el último fallo". [ 6 ]
  • Precisión débil eventual: "después de un período inicial de confusión, nunca se sospecha de algún proceso que no sea defectuoso". [ 6 ]

Clasificación

Los detectores de fallas se pueden clasificar en los siguientes ocho tipos: [ 1 ] [ 7 ]

  1. Detector de fallos perfecto ( P)
  2. Detectores de fallos eventualmente perfectos ( ♦P )
  3. Detectores de fallos robustos ( S )
  4. Detectores de fallos robustos ( ♦S )
  5. Detectores de fallos débiles ( W )
  6. Detectores de fallos eventualmente débiles ( ♦W )
  7. Detectores de fallas casi perfectos ( Q )
  8. Detectores de fallos casi perfectos ( ♦Q )

Las propiedades de estos detectores de fallas se describen a continuación: [ 1 ]

En resumen, las propiedades de los detectores de fallos dependen de la rapidez con la que detectan los fallos reales y de su eficacia para evitar falsas detecciones. Un detector de fallos perfecto encontrará todos los errores sin equivocarse, mientras que un detector de fallos deficiente no encontrará ningún error y cometerá numerosos errores. [ 3 ] [ 8 ]

Aplicaciones

Se pueden obtener diferentes tipos de detectores de fallas cambiando las propiedades de los detectores de fallas. [ 3 ] [ 6 ] Los primeros ejemplos muestran cómo aumentar la completitud de un detector de fallas, y el segundo ejemplo muestra cómo cambiar un tipo de detector de fallas por otro.

Mejorar la exhaustividad

El siguiente es un ejemplo extraído del Departamento de Ciencias de la Computación de la Universidad de Yale. Funciona aumentando la completitud de un detector de fallos. [ 6 ]

inicialmente sospechosos = ∅ para siempre: para cada proceso p: Si mi detector débil sospecha de p, entonces envía p a todos los procesos. al recibir p de algún proceso q: sospechosos := sospechosos + p - q 

Según el ejemplo anterior, si p falla, el detector débil acabará sospechándolo. Todos los detectores de fallos del sistema acabarán sospechando de p debido al bucle infinito creado por ellos. Este ejemplo también muestra que un detector de fallos de completitud débil también puede llegar a sospechar de todos los fallos. [ 6 ] La inspección de programas que fallan no depende de la completitud. [ 5 ]

Reducción de un detector de fallos W a un detector de fallos S

Los siguientes son argumentos de corrección para satisfacer el algoritmo de cambio de un detector de fallos W a un detector de fallos S. [ 1 ] El detector de fallos W es débil en completitud, y el detector de fallos S es fuerte en completitud. Ambos son débiles en precisión. [ 6 ]

  1. Transforma la completitud débil en completitud fuerte. [ 1 ]
  2. Conserva la precisión perpetua. [ 1 ]
  3. Preserva la precisión final. [ 1 ]

Si se cumplen todos los argumentos anteriores, la reducción de un detector de fallos débil W a un detector de fallos fuerte S coincidirá con el algoritmo dentro del sistema de computación distribuida. [ 1 ]

Véase también

Referencias

  1. 1 2 3 4 5 6 7 8 9 D., Kshemkalyani, Ajay (2008). Computación distribuida  : principios, algoritmos y sistemas . Singhal, Mukesh. Cambridge: Cambridge University Press. ISBN 9780521189842OCLC 175284075 {{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  2. Aguilera, Marcos Kawazoe; Chen, Wei; Toueg, Sam (2000-04-01). "Detección de fallos y consenso en el modelo de recuperación tras fallos". Distributed Computing . 13 (2): 99– 125. doi : 10.1007/s004460050070 . hdl : 1813/7330 . ISSN 0178-2770 . 
  3. 1 2 3 4 Fischer, Michael J.; Lynch, Nancy A.; Paterson, Michael S. (abril de 1985). "Imposibilidad del consenso distribuido con un proceso defectuoso". J. ACM . 32 (2): 374– 382. CiteSeerX 10.1.1.13.6760 . doi : 10.1145/3149.214121 . ISSN 0004-5411 .  
  4. Holohan, Anne; Garg, Anurag (1 de julio de 2005). "Colaboración en línea: el ejemplo de la computación distribuida". Journal of Computer-Mediated Communication . 10 (4): 00. doi : 10.1111/j.1083-6101.2005.tb00279.x . ISSN 1083-6101 . 
  5. 1 2 3 4 5 6 7 8 Chandra, Tushar Deepak; Toueg, Sam (1996). "Detectores de fallos poco fiables para sistemas distribuidos fiables". Journal of the ACM . Volumen 43 Número 2. 43 (2). Nueva York, NY, EE. UU.: ACM: 225–267 . doi : 10.1145/226643.226647 . hdl : 1813/7192 . ISBN 978-0897914390.
  6. 1 2 3 4 5 6 7 8 9 10 11 12 "FailureDetectors" . www.cs.yale.edu . Consultado el 23 de octubre de 2017 .
  7. Aguilera, Marcos Kawazoe; Toueg, Sam (1996-10-09). "Aleatorización y detección de fallos: Un enfoque híbrido para resolver el consenso". Algoritmos distribuidos . Notas de clase en informática. Vol. 1151. Springer, Berlín, Heidelberg. pp. 29–39 . CiteSeerX 10.1.1.88.1597 . doi : 10.1007/3-540-61769-8_3 . ISBN    978-3540617693.
  8. Chen, Wei; Toueg, S.; Aguilera, MK (enero de 2002). "Sobre la calidad del servicio de los detectores de fallos". IEEE Transactions on Computers . 51 (1): 13– 32. CiteSeerX 10.1.1.461.5630 . doi : 10.1109/12.980014 . ISSN 0018-9340 .  
  • http://www.cs.yale.edu/homes/aspnes/pinewiki/FailureDetectors.html
  • https://www.cs.cornell.edu/home/sam/FDpapers.html