Modelos de Sistemas Distribuidos
Los modelos de sistemas distribuidos son las suposiciones abstractas —sobre arquitectura, temporización, comunicación y fallos— que definen en qué puede confiar un algoritmo distribuido y qué debe tolerar.
Definition
Un sistema distribuido es una colección de computadoras independientes que se comunican solo mediante el intercambio de mensajes y que aparece a sus usuarios como un único sistema coherente; un modelo de sistema es el conjunto de suposiciones sobre procesos, canales de comunicación, temporización y fallos bajo los cuales se analiza dicho sistema.
Scope
Esta área cubre los modelos arquitectónicos y físicos de los sistemas distribuidos (clientes, servidores, pares y organizaciones de múltiples niveles), los modelos de temporización que distinguen la ejecución síncrona de la asíncrona, los modelos de fallo fundamentales (caída, omisión, temporización y bizantino), y las abstracciones de comunicación de paso de mensajes, memoria compartida, invocación remota y middleware. Estos modelos enmarcan cada resultado en el campo: un algoritmo correcto bajo un modelo puede ser imposible bajo otro, por lo que hacer explícito el modelo es un requisito previo para razonar sobre la corrección y el rendimiento.
Sub-topics
Core questions
- ¿Qué suposiciones sobre temporización, comunicación y fallos requiere un algoritmo distribuido dado?
- ¿En qué se diferencian los modelos síncronos y asíncronos, y por qué la distinción cambia lo que es computable?
- ¿Qué clases de fallos de proceso y canal debe tolerar un protocolo para ser correcto?
- ¿Cuándo debe estructurarse un sistema en torno al paso de mensajes frente a una abstracción de memoria compartida o invocación remota?
Key theories
- Modelos síncronos versus asíncronos
- En un modelo síncrono existen límites conocidos en el retardo de los mensajes y la velocidad relativa del procesador, lo que permite el uso de tiempos de espera (timeouts) para detectar fallos; en un modelo asíncrono no existen tales límites, lo que hace que la detección de fallos sea fundamentalmente poco fiable y subyace a muchos resultados de imposibilidad.
- Jerarquía de modelos de fallos
- Los fallos de proceso y canal se clasifican de benignos a graves —caída (fail-stop), omisión, temporización y arbitrarios (bizantinos)—, necesitándose garantías más fuertes para enmascarar fallos más graves; el modelo elegido determina tanto la resiliencia alcanzable como el coste de un protocolo.
- Abstracciones de comunicación
- La computación distribuida se basa en un pequeño conjunto de primitivas de interacción —paso de mensajes asíncrono y síncrono, memoria compartida distribuida e invocación de procedimientos o métodos remotos—, cada una con semánticas distintas para la entrega, el ordenamiento y los fallos que dan forma al diseño de nivel superior.
Clinical relevance
Elegir el modelo correcto es la primera decisión de diseño en cualquier sistema real: las plataformas en la nube, las bases de datos y los servicios de coordinación declaran un modelo de temporización (a menudo parcialmente síncrono) y un modelo de fallos, y estas elecciones determinan qué garantías de consistencia, disponibilidad y tolerancia a fallos puede prometer el sistema.
History
La investigación temprana en sistemas distribuidos en las décadas de 1970 y 1980 buscó identificar las suposiciones mínimas bajo las cuales la coordinación distribuida es posible, produciendo la dicotomía síncrona/asíncrona y una taxonomía de fallos. Estos modelos se consolidaron en libros de texto de Lynch, Attiya y Welch, Tanenbaum y van Steen, y Coulouris y colegas, convirtiéndose en el vocabulario compartido para todo el campo.
Debates
- ¿Qué tan realista es el modelo asíncrono para sistemas prácticos?
- El modelo puramente asíncrono es demostrablemente el más difícil de programar y excluye la detección fiable de fallos, sin embargo, la mayoría de las redes reales solo son intermitentemente lentas; los modelos parcialmente síncronos y los detectores de fallos surgieron como un punto intermedio pragmático que mantiene el rigor al tiempo que admite los tiempos de espera.
Key figures
- Leslie Lamport
- Nancy Lynch
- Andrew S. Tanenbaum
- Maarten van Steen
Related topics
Seminal works
- lynch1996
- tanenbaum2017
- attiya2004
Frequently asked questions
- ¿Por qué el modelo de temporización es tan importante?
- Porque determina si se puede confiar en los tiempos de espera. En un modelo síncrono, los retardos acotados permiten que un proceso concluya de forma segura que un par silencioso ha fallado; en un modelo asíncrono, un proceso lento y uno caído son indistinguibles, lo cual es la causa raíz de varios resultados de imposibilidad famosos.
- ¿Qué es un fallo bizantino?
- Un fallo bizantino (arbitrario) es aquel en el que un componente defectuoso puede comportarse de cualquier manera, incluyendo el envío de mensajes conflictivos o maliciosos. Tolerarlo es mucho más costoso que tolerar simples caídas y requiere protocolos de acuerdo especializados.