Sistemas Distribuidos: Ejercicio del tema arquitectura de los sistemas distribuidos

Marzo del 2018.

Grupo de tarde.

Se pretende usar un sistema distribuido para la ejecución de aplicaciones paralelas que acceden a un sistema de almacenamiento de objetos (SA: contiene N objetos), tal que cada proceso de una aplicación se ejecutará en un nodo de procesamiento distinto (NP). Por motivos de rendimiento, se implementa una caché local de objetos en cada NP con políticas write-through (las modificaciones sobre los objetos se escriben inmediatamente en SA) y write-invalidate (cuando se modifica un objeto, hay que avisar inmediatamente a los otros nodos NP, sean de la misma aplicación o no, que tengan copia del mismo para que lo invaliden, es decir, lo eliminen de su caché). Asimismo, para facilitar el seguimiento y depuración de las aplicaciones, se implementa un sistema de log replicado, independiente para cada aplicación, que será gestionado por un nodo administrador (NA). Para la implementación del sistema se va a usar un esquema editor/subscriptor (E/S) con creación dinámica de temas, sólo para el envío de las invalidaciones y de los mensajes al log (NOTA: se recomienda comenzar estableciendo cuántos temas se requieren en el sistema, que corresponde a la pregunta con el enunciado en negrilla; debe determinarse el número de temas mínimo requerido pero asegurándose de que ningún nodo recibe un evento que no le concierne), y un modelo cliente/servidor para el resto de las interacciones. El esquema E/S implementado asegura que no se pueden perder notificaciones de eventos pero puede entregar las notificaciones de varios editores en diferente orden a distintos suscriptores. A continuación, se detallan las diversas operaciones que puede realizar un nodo NP cuando forma parte del conjunto de nodos que ejecutan una aplicación. Activación del log: operación solicitada inicialmente por uno de los NP de la aplicación a NA, el cual selecciona tres nodos (NL) para que den soporte al log de esa aplicación y les informa de ese hecho (nótese que ninguno de los NP de la aplicación conoce qué nodos NL van a dar soporte a su log, ni los nodos NL saben qué nodos NP forman parte de dicha aplicación). Lectura de objeto: si no está en la caché, lo lee primero de SA; a continuación, accede al objeto en la caché. Actualización de objeto: si no está en la caché, lo lee primero de SA. Estando ya presente en la caché, lo modifica actualizando SA y activando el protocolo de invalidación, que afectará a todos los NP que tengan copia del mismo, con independencia de a qué aplicación estén asociados. Tratamiento de invalidación: al recibir una invalidación asociada a un objeto, elimina el objeto correspondiente de la caché. Expulsión de un objeto de la caché por falta de espacio: elimina de la caché el objeto seleccionado por el algoritmo de reemplazo debido a que no hay sitio en la misma a la hora de traer otro objeto. Escritura en el log: envío de un mensaje al log. En el sistema se implementan distintas técnicas para mejorar la fiabilidad. Por un lado, hay tres nodos que implementan la funcionalidad NA, tal que sólo uno de ellos está totalmente activo, comunicándose periódicamente con el resto y almacenando su información de estado en el propio SA. Por otro lado, a la hora de consultar el log, ante problemas de conectividad puntuales que impidan el acceso a todas las copias, se mantiene el acceso a los datos.
  1. ¿Cuántos temas existen en el sistema si hay A aplicaciones que acceden a todos los objetos?
    1. N + A
    2. N + 1
    3. A + 1
    4. N * A
  1. ¿Qué módulos realizan el papel de subscriptores?
    1. NP y NL
    2. Sólo NP
    3. Sólo NL
    4. Sólo SA
  1. ¿Qué módulos realizan el papel de editores?
    1. Sólo NP
    2. Sólo NL
    3. NP y NL
    4. Sólo SA
  1. ¿A cuántos temas como máximo se subscribe un nodo NP que accede a todos los objetos y usa el log?
    1. N
    2. N + 1
    3. 1
    4. 0
  1. ¿A cuántos temas como máximo se subscribe un nodo NL que da soporte al log de una aplicación que accede a todos los objetos?
    1. 1
    2. N + 1
    3. N
    4. 0
  1. ¿Qué acción E/S realiza un nodo NL cuando NA le selecciona como soporte del log de una aplicación?
    1. subscripción
    2. baja
    3. publicación
    4. notificación
  1. ¿Qué acción E/S realiza un nodo NP durante el procesamiento de una lectura de un objeto que no está en su caché?
    1. subscripción
    2. baja
    3. publicación
    4. notificación
  1. ¿Qué acción E/S realiza un nodo NP durante el procesamiento de una actualización de un objeto que sí está en su caché?
    1. publicación
    2. baja
    3. subscripción
    4. notificación
  1. ¿Qué acción E/S realiza un nodo NP durante el tratamiento de una invalidación?
    1. baja
    2. publicación
    3. subscripción
    4. notificación
  1. ¿Qué acción E/S realiza un nodo NP durante la expulsión de un bloque de la caché por falta de espacio?
    1. baja
    2. publicación
    3. subscripción
    4. notificación
  1. ¿Qué acción E/S realiza un nodo NP cuando realiza una escritura al log?
    1. publicación
    2. baja
    3. subscripción
    4. notificación
  1. ¿De qué tipo de sistema se trata según el teorema CAP?
    1. AP
    2. CA
    3. CP
    4. CAP
  1. ¿De qué tipo de sistema se trata según el teorema PACELC?
    1. PAEL
    2. PCEC
    3. PAEC
    4. PCEL
  1. ¿Qué esquema de replicación de servicio se usa en el sistema?
    1. warm standby
    2. hot standby
    3. cold standby
    4. Activa
  1. ¿Cuál de las siguientes soluciones es más adecuada para implementar SA si se busca que sea más fácil de programar?
    1. Creación dinámica de threads.
    2. Basada en eventos.
    3. Uso de un pool estático de threads.
    4. Uso de un pool dinámico de threads.
  1. ¿Qué tipo de nodos no tendría que darse de alta en el binder si se usara un servicio de binding?
    1. NP
    2. NL
    3. NA
    4. SA
  1. ¿Cuál de las siguientes circunstancias propiciaría el uso de un esquema con estado en SA?
    1. Poder asegurarse de que un objeto no se borra mientras está siendo usado.
    2. Facilitar el mantenimiento del servicio si se reinicia SA.
    3. Favorecer el reparto de carga si SA usa un esquema con escalado horizontal.
    4. Reducir el gasto de memoria en SA.
  1. Se plantea cambiar las 2 políticas actuales de la caché por delayed-write (periódicamente, se escriben las modificaciones sobre los objetos a SA) y write-update (en vez de enviar invalidaciones, se propaga a los otros NP afectados el nuevo valor), respectivamente. ¿Cuál de ellas propiciaría el uso de pipeline de peticiones en la interacción con SA?
    1. delayed-write
    2. Ambas
    3. Ninguna
    4. write-update
  1. ¿Qué módulo debería enviar los mensajes de renovación del lease si se aplica la técnica de leasing al esquema editor/subscriptor?
    1. NP y NL
    2. Sólo NL
    3. Sólo NP
    4. Sólo SA
  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 todas las modificaciones de objetos que realiza un determinado NP.
    2. Interés en conocer todas las modificaciones sobre un determinado conjunto de objetos.
    3. Interés en conocer todos los mensajes que escriben al log un cierto conjunto de aplicaciones.
    4. Interés en conocer todas las modificaciones sobre un determinado objeto que realiza cierto NP.