Sistemas Distribuidos: Ejercicio del tema arquitectura de los sistemas distribuidos

Marzo del 2021.

Grupo de tarde.

Modelo 7

Considere un sistema distribuido destinado a ejecutar simultáneamente múltiples trabajos paralelos que siguen un esquema maestro-trabajador. Para mejorar la tolerancia a fallos ante la caída de un maestro, se van a usar varios maestros por cada trabajo, pero de manera que solo uno de ellos realiza realmente la labor de gestión de las tareas de ese trabajo, estando el resto únicamente informados del estado de las tareas para poder reemplazar al maestro activo en caso de que este se caiga. En el sistema existe un nodo administrador qué conoce qué máquinas están libres y cuáles ocupadas para poder asignárselas a los maestros y trabajadores de cada trabajo.

Para afrontar la funcionalidad requerida se va a usar un esquema productor-consumidor para el envío de las tareas a los trabajadores por parte del maestro, utilizando un esquema editor-subscriptor basado en temas para poder hacer un seguimiento de la evolución de la ejecución del trabajo.

A continuación, se describe el modo de operación de este sistema. El punto de partida es un usuario que quiere ejecutar un trabajo usando para ello un cierto número de trabajadores y varios maestros. El usuario envía esa solicitud al administrador que selecciona qué nodos del sistema actuarán como maestros y trabajadores para ese trabajo. Asimismo, dado que se pretende que haya un desacoplamiento espacial entre el usuario, los maestros y los trabajadores de manera que no se conozcan entre sí, el administrador va a crear una cola productor-consumidor y tres temas editor/subscriptor para la ejecución de ese trabajo informando a los maestros, a los trabajadores y al usuario de los nombres de cola y temas que le atañen a cada uno. Ese desacoplamiento va a proporcionar flexibilidad a la hora de reemplazar maestros y trabajadores durante la ejecución del trabajo. Estas interacciones con el administrador son previas a las que se consideran en este ejercicio, quedando el administrador fuera del análisis que se plantea en el mismo.

El usuario, una vez recibida la respuesta del administrador, envía a los maestros el trabajo especificando las tareas del mismo, cuyo número será significativamente mayor que el número de trabajadores. A partir de ese momento, es informado del progreso del trabajo siendo avisado cada vez que se completa un 25% del mismo.

La interacción entre el maestro activo y los trabajadores se realiza, como se comentó previamente, usando un esquema productor-consumidor. Sin embargo, se requiere añadir una interacción editor-subscriptor ya que los maestros de un trabajo necesitan saber cuándo se inicia y en qué momento se completa la ejecución de una tarea para poder detectar si el trabajador encargado de la misma se ha caído antes de terminarla. En ese caso, el maestro activo volverá a enviar esa tarea.

Con respecto a los tres temas creados para un trabajo X, habrá un tema para su envío a los maestros (X/envío), otro para poder conocer el progreso del trabajo (X/progreso) y un último para poder saber cuál es la evolución de sus tareas (X/tareas).

Acto seguido, se identifican las distintas operaciones de cada componente. Un trabajador (proceso A) inicialmente, y siempre que se queda libre, ejecuta la operación 1 quedando a la espera de una tarea que ejecutar. Cuando recibe una tarea, realiza la operación 2 y, cuando la completa, lleva a cabo la operación 3. El usuario (proceso B), justo después de que el administrador le haya enviado su información de configuración, realiza la operación 4, que envía el trabajo y se queda a la espera de información de progreso. El maestro (proceso C), cuando recibe del administrador su información de configuración, lleva a cabo la operación inicial 5. Más tarde, cuando recibe la información del trabajo, por cada tarea del mismo, realiza la operación 6 que la envía a los trabajadores. Cuando el maestro detecta que se ha llegado a uno de los umbrales de progreso del trabajo prefijados, hace la operación 7 que informa al usuario de esta circunstancia.

Por último, el administrador almacena en un sistema de ficheros los datos que maneja manteniéndose 5 copias usando un mecanismo de cuórum con un valor de 3 tanto para las operaciones de lectura como de escritura, pero de manera que no será necesario lograr ese cuórum para acceder a los datos ante un problema de conectividad que causa una partición.

  1. ¿Qué componentes ejercen el rol de productor? Si hay varios componentes, responda especificando juntas las letras correspondientes a los procesos, en orden alfabético, como, por ejemplo, AC.
    C
Explicación
El maestro envía a la cola las tareas del trabajo que está ejecutando.
  1. ¿Qué componentes ejercen el rol de consumidor? Si hay varios componentes, responda especificando juntas las letras correspondientes a los procesos, en orden alfabético, como, por ejemplo, AC.
    A
Explicación
Un trabajador recibe a través de la cola las tareas del trabajo que va ejecutando.
  1. ¿Qué componentes ejercen el rol de editor? Si hay varios componentes, responda especificando juntas las letras correspondientes a los procesos, en orden alfabético, como, por ejemplo, AC.
    ABC
Explicación
Los tres componentes desempeñan el rol de editor: un usuario ejerce ese papel a la hora de enviar trabajos a los maestros, un maestro lo hace cuando informa del progreso de un trabajo y un trabajador en el momento que notifica el inicio o el fin en su ejecución de una tarea,
  1. ¿Qué componentes ejercen el rol de subscriptor? Si hay varios componentes, responda especificando juntas las letras correspondientes a los procesos, en orden alfabético, como, por ejemplo, AC.
    BC
Explicación
Un usuario está interesado en recibir información sobre el progreso de un trabajo, mientras que un maestro ejerce doblemente el papel de subscriptor: es informado de las características del trabajo que va a orquestar y de la evolución de las tareas de dicho trabajo.
  1. ¿Qué operaciones realizan una subscripción en el tema X/envío? Si hay varias operaciones, especifique, en orden de menor a mayor, un número tal que cada dígito corresponde a una operación, como, por ejemplo, 24.
    5
Explicación
Cuando se inicia el maestro debe subscribirse a este tema para ser informado de las características del trabajo.
  1. ¿Qué operaciones realizan una publicación en el tema X/envío? Si hay varias operaciones, especifique, en orden de menor a mayor, un número tal que cada dígito corresponde a una operación, como, por ejemplo, 24.
    4
Explicación
El usuario, una vez recibida la información de configuración por parte del administrador, lleva a cabo esta labor en su única operación para indicar a los maestros las características del trabajo.
  1. ¿Qué operaciones realizan una subscripción en el tema X/progreso? Si hay varias operaciones, especifique, en orden de menor a mayor, un número tal que cada dígito corresponde a una operación, como, por ejemplo, 24.
    4
Explicación
El usuario, una vez recibida la información de configuración por parte del administrador, realiza esta labor en su única operación para ser notificado del progreso del trabajo.
  1. ¿Qué operaciones realizan una publicación en el tema X/progreso? Si hay varias operaciones, especifique, en orden de menor a mayor, un número tal que cada dígito corresponde a una operación, como, por ejemplo, 24.
    7
Explicación
Cuando un maestro detecta que se ha llegado a uno de los umbrales prefijados, lo notifica usando esta operación.
  1. ¿Qué operaciones realizan una subscripción en el tema X/tareas? Si hay varias operaciones, especifique, en orden de menor a mayor, un número tal que cada dígito corresponde a una operación, como, por ejemplo, 24.
    5
Explicación
En su operación inicial, el maestro también se subscribe a este tema para hacer un seguimiento sobre cómo los trabajadores van ejecutando las tareas.
  1. ¿Qué operaciones realizan una publicación en el tema X/tareas? Si hay varias operaciones, especifique, en orden de menor a mayor, un número tal que cada dígito corresponde a una operación, como, por ejemplo, 24.
    23
Explicación
Tanto cuando un trabajador inicia la ejecución de una tarea como en el momento que la completa debe notificarlo para que lo sepan los maestros.
  1. ¿Qué operaciones realizan un put en la cola? Si hay varias operaciones, especifique, en orden de menor a mayor, un número tal que cada dígito corresponde a una operación, como, por ejemplo, 24.
    6
Explicación
Una vez recibida la descripción del trabajo, un maestro va insertando las tareas del mismo en la cola.
  1. ¿Qué operaciones realizan un get en la cola? Si hay varias operaciones, especifique, en orden de menor a mayor, un número tal que cada dígito corresponde a una operación, como, por ejemplo, 24.
    1
Explicación
Tanto inicialmente como al completar una tarea, un trabajador intenta extraer una tarea de la cola.
  1. ¿Se puede añadir un maestro o un trabajador adicional durante la ejecución de un trabajo sin usar ninguna operación editor/subscriptor?
    1. Solo un trabajador
    2. Ambos
    3. Ninguno de los dos
    4. Solo un maestro
Explicación
Cuando se añade un maestro, este debe realizar operaciones de subscripción para ser operativo. Al incluir un nuevo trabajador, sin embargo, este queda inmediatamente en operación sin que haya que llevar a cabo ninguna operación editor/subscriptor: ese nuevo proceso simplemente realiza un get de la cola.
  1. Se plantea usar un esquema con un filtro de eventos por contenido en vez de un filtro por temas. ¿Para cuál de estos casos ese cambio sería más ventajoso en el sentido de reducir el número de mensajes recibidos pero no deseados?
    1. Interés en conocer cuándo se completa una determinada tarea de un trabajo.
    2. Interés en conocer cuándo un trabajo llega al 50% de su ejecución.
    3. Interés en conocer cada vez que se completa cualquier tarea de un trabajo.
    4. Interés en conocer cada vez que un determinado trabajador completa una tarea cualquiera de un trabajo.
Explicación
Veamos cada caso planteado analizando en cuál el uso de un filtro por contenido sería más efectivo (es decir, descartaría más eventos no deseados).
  1. ¿Qué módulos deberían enviar los mensajes de renovación si se aplica leasing al esquema editor/subscriptor? Si hay varios componentes, responda especificando juntas las letras correspondientes a los procesos, en orden alfabético, como, por ejemplo, AC.
    BC
Explicación
Los usuarios y los maestros, en su rol de subscriptores, deben renovar el lease.
  1. ¿De qué tipo de sistema se trata según el teorema CAP?
    1. AP
    2. CA
    3. CP
    4. CAP
Explicación
Aunque la suma de los cuórums sea mayor que el número de copias (6>5), en el sistema se ha optado por no requerir cuórum en el acceso a los datos cuando se produce una partición (P), primando la disponibilidad (A) sobre la consistencia (C).
  1. ¿De qué tipo de sistema se trata según el teorema PACELC?
    1. PAEC
    2. PAEL
    3. PCEC
    4. PCEL
Explicación
Cuando hay una partición (P) se prioriza la disponibilidad (A) sobre la consistencia (C), pero si no hay problemas de conectividad (E), sí que se ha optado por buscar el cuórum, que al sumar más que el número de copias (6>5), asegura la consistencia (C) frente a la latencia (L).
  1. ¿Qué esquema de replicación de servicio se usa en el sistema?
    1. hot standby
    2. cold standby
    3. warm standby
    4. replicación activa
Explicación
El modo de operación de los maestros sigue un esquema de tipo hot standby puesto que solo un proceso está activo en cada momento, pero los procesos en estado pasivo son informados continuamente sobre el estado del sistema.