5.45.4.9 Memoria y Consistencia (3 horas) [Habilidades AG-C09,AG-C11]

Referencias Bibliográficas: [van Steen and Tanenbaum, 2023,Kleppmann, 2017a]

Temas

  1. Modelos de memoria, consistencia de datos y tolerancia a fallos:
    1. Modelos de memoria: consistencia secuencial y de liberación/adquisición.
    2. Gestión de memoria; incluyendo la reclamación de datos compartidos; conteo de referencias y alternativas.
    3. Colocación y transferencia masiva de datos; reducción del tráfico de mensajes y mejora de la localidad; superposición de transferencia de datos y computación; impacto del diseño de datos como array de estructuras vs. estructura de arrays.
    4. Emular memoria compartida: memoria compartida distribuida, Acceso Directo a Memoria Remota (RDMA).
    5. Consistencia de almacenes de datos: Atomicidad, linealizabilidad, transaccionalidad, coherencia, orden causal, resolución de conflictos, consistencia eventual, cadenas de bloques.
    6. Fallos, particionamiento y fallos parciales; votación; protocolos como Paxos y Raft.
    7. Compromisos de diseño entre consistencia, disponibilidad, tolerancia a partición (fallos); imposibilidad de cumplir con todos a la vez.
    8. Seguridad y confianza: Fallos bizantinos, prueba de trabajo y alternativas.

Aprendizaje esperado (Learning Outcomes)

  1. Dar un ejemplo de un orden de accesos entre actividades concurrentes (por ejemplo, un programa con una carrera de datos) que no sea secuencialmente consistente [Crear]
  2. Escribir un programa que ilustre el reordenamiento de acceso a memoria o de mensajes [Escribir]
  3. Describir los méritos relativos del control de concurrencia optimista versus conservador bajo diferentes tasas de contención entre actualizaciones [Describir]
  4. Dar un ejemplo de un escenario en el que un intento de actualización optimista podría nunca completarse [Crear]
  5. Modificar un sistema concurrente para usar un almacén de datos más escalable, confiable o disponible [Crear]
  6. Usando una plataforma existente que admita almacenes de datos replicados, escribir un programa que mantenga un mapeo clave-valor incluso cuando uno o más hosts fallen [Escribir]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM