El curso introduce principios fundamentales de los sistemas distribuidos y paralelos, con especial
énfasis en aquellos que se usan en plataformas de computación en la nube y de procesamiento masivo
y escalable de datos. Se exploran conceptos de comunicación y coordinación entre procesos
distribuidos, recalcando los conceptos de atomicidad y consenso. Se recalca que resulta
imprescindible el usar paralelismo para conseguir mejoras de rendimiento, y se estudian las
estrategias de descomposición, diseño y arquitectura de sistemas, incluyendo estrategias de
implementación, análisis de rendimiento y mejoras (tuning). Se estudia también los conceptos de
tolerancia a fallos, con un énfasis en el mantenimiento de estado replicado, introduciendo conceptos
que proporcionan un enlace con los conceptos estudiados bajo el contexto de las redes de datos.
*M. van Steen and A.S. Tanenbaum, Distributed Systems, 3rd ed., distributed-systems.net, 2017.
(Complementario) *George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair. 2011. Distributed Systems: Concepts and Design (5th. ed.). Addison-Wesley Publishing Company, USA.
Cada video de clase y recursos externos por sesión, tienen un control de lectura en SidWeb el cual está disponible una semana antes de la sesión correspondiente.
Sesión |
Unidad |
Subunidad |
Mes |
Día |
Tipo |
Tema |
Link |
1 |
1 |
|
Octubre |
13 |
|
Syllabus y políticas del curso |
|
2 |
1.1 |
Octubre |
15 |
Cuestionario |
Estado personal |
Teams |
Video de clase |
Conceptos básicos de sistemas distribuidos y computación en la nube |
|
Lectura externa |
Google as xerox parc |
|
3 |
1.2 |
Octubre |
20 |
Video de clase |
Desafíos al construir sistemas distribuidos |
|
Video externo |
Why Are Distributed Systems So Hard? |
|
4 |
1.3 |
Octubre |
22 |
Video de clase |
Modelos y arquitecturas distribuidas |
|
Video externo |
Scaling Memcache at Facebook |
|
5 |
2 |
2.1 |
Octubre |
27 |
Video de clase |
Modelo de fallas en sistemas distribuidos |
|
Video externo |
How Netflix Embraces Failure to Improve Resilience and Maximize Availability |
|
6 |
2.2 |
Octubre |
29 |
Video de clase |
Redundancia y enmascaramiento de fallas |
|
7 |
2.3 |
Noviembre |
5 |
Video de clase |
Escalabilidad, replicación, consenso y acuerdo |
|
Video externo |
In Search of an Understandable Consensus Algorithm |
|
1 |
1 y 2 |
|
Noviembre |
10 |
Lección |
Unidades 1 y 2 |
|
9 |
3 |
3.1 |
Noviembre |
12 |
Video de clase |
Parte 1: Descomposición de tareas paralelas y distribuidas |
|
Video de clase |
Parte 2: Descomposición de tareas paralelas y distribuidas |
|
Lectura externa |
Professor Enlists Android Phones in Search for Black Holes |
|
10 |
3.2 |
Noviembre |
17 |
Video de clase |
Parte 1: Análisis de rendimiento de algoritmos paralelos |
|
Video de clase |
Parte 2: Análisis de rendimiento de algoritmos paralelos |
|
Lectura externa |
Uber Marketplace: Location Serving & Storage in the Uber Marketplace |
|
11 |
3.3 |
Noviembre |
19 |
Video de clase |
Parte 1: Plataformas de procesamiento distribuido |
|
Video de clase |
Parte 2: Plataformas de procesamiento distribuido |
|
Video externo |
Achieving Rapid Response Times in Large Online Services |
|
12 |
4 |
4.1 |
Noviembre |
24 |
Video de clase |
Protocolo pedido-respuesta |
|
Video externo |
The Two Generals’ Problem |
|
13 |
4.2 |
Noviembre |
26 |
Video de clase |
Parte 1: Comunicación directa entre procesos |
|
Video de clase |
Parte 2: Comunicación directa entre procesos |
|
Lectura externa |
Avoiding Double Payments in a Distributed Payments System |
|
14 |
4.3 |
Diciembre |
1 |
Video de clase |
Parte 1: Comunicación indirecta entre procesos (colas de mensajes, publicar-subscribir) |
|
Video de clase |
Parte 2: Comunicación indirecta entre procesos (colas de mensajes, publicar-subscribir) |
|
15 |
1, 2, 3 y 4 |
|
Diciembre |
3 |
Lección |
Unidades 1, 2, 3 y 4 |
|
16 |
5 |
5.1 |
Diciembre |
8 |
Video de clase |
Latencia versus throughput |
|
17 |
5.2 |
Diciembre |
10 |
Video de clase |
Consistencia, disponibilidad, tolerancia a particiones, en bases de datos distribuidas |
|
Video externo |
Why Computers Can't Count Sometimes |
|
18 |
5.3 |
Diciembre |
15 |
Video de clase |
Servicios con estado o sin estado |
|
Lectura externa |
Spanner, the Google Database That Mastered Time, Is Now Open to Everyone |
|
Video externo |
Spanner: Google’s Globally-Distributed Database |
|
19 |
5.4 |
Diciembre |
17 |
Video de clase |
Localidad de datos y su aplicación en almacenamiento y cacheo en la nube |
|
Video externo |
An analysis of Facebook photo caching |
|
20 |
5.5 |
Diciembre |
22 |
Video de clase |
Redes de distribución de contenidos: Balanceo de carga |
|
Video externo |
Client-side load balancing |
|
Video externo |
Server-side load balancer |
|
Lectura externa |
(Opcional) Spring Cloud Series: Balanceo de carga en el cliente (client side load balancing) usando Ribbon |
|
21 |
Enero |
5 |
Video de clase |
Redes de distribución de contenidos: Ruteo global de pedidos |
|
22 |
6 |
6.1 |
Enero |
7 |
Video de clase |
Tiempo físico |
|
Lectura externa |
Time Split to the Nanosecond Is Precisely What Wall Street Wants |
|
23 |
6.2 |
Enero |
12 |
Video de clase |
Tiempo lógico |
|
Video externo |
Hybrid Logical Clocks |
|
24 |
6.3 |
Enero |
14 |
Video de clase |
Consenso y elecciones |
|
Video externo |
Paxos vs Raft: Have we reached consensus on distributed consensus? |
|
25 |
|
|
Enero |
19 |
Presentación de proyectos |
|
|
26 |
|
|
Enero |
21 |
Presentación de proyectos |
|
|
|
1,2,3,4,5,6 |
|
Enero |
25 |
Examen - 14:00 a 16:00 |
|
|
|
1,2,3,4,5,6 |
|
Febrero |
8 |
Examen - 14:00 a 16:00 |
|
|