Skip to main content
Link
Menu
Expand
(external link)
Document
Search
Copy
Copied
Sistemas Distribuidos I
Inicio
Papers y bibliografía
Clases
Clase 1 — Introducción, TCP/IP y RPC
1. Sistemas y abstracciones
2. Sistemas distribuidos: definición y motivaciones
3. Organización cliente-servidor
4. Web servers: HTTP, load balancers y escalado
5. RPC y semánticas de entrega
Clase 2 — MapReduce
1. Introducción histórica: cinco eras de sistemas distribuidos
2. Origen y modelo de programación de MapReduce
3. Ejecución en el clúster y shuffle
4. Funcionamiento interno del mapper y del reducer
5. Arquitectura, localidad y tolerancia a fallas
Clase 3 — Replicación y sharding
1. Sistemas de storage
2. Sharding
3. Replicación y tipos de falla
4. State transfer, máquina de estados y orden de las operaciones
5. Log
6. Ordenamiento de las operaciones
7. Chain replication
8. Reconfiguración: split-brain y servicio de configuración
Clase 4 — Google File System
1. Motivación de un file system distribuido
2. Abstracción y arquitectura
3. Escrituras
4. Garantías de consistencia
5. Integración con MapReduce
6. Funcionamiento del coordinador
7. Limitaciones de GFS
Clase 5 — Raft I
1. Motivación de los algoritmos de consenso
2. Mayorías
3. Quórums
4. Raft: origen y funcionamiento
5. Elección de líder en Raft
6. Divergencia de los logs
Clase 6 — Raft II
1. Restricción de elección
2. Sincronización de los logs
3. Criterio de log más actualizado
4. Persistencia
5. Log compaction y snapshots
6. Idempotencia y reintentos del cliente
Clase 7 — Linealizabilidad y Zookeeper
1. Lecturas desde los followers
2. Linealizabilidad
3. Lecturas linealizables en Raft
4. Zookeeper: consenso como servicio
5. Modelo de consistencia de Zookeeper
6. Programación sobre Zookeeper
Clase 8 — Dynamo y relojes lógicos
1. Motivación de Dynamo
2. Consistent hashing
3. Limitaciones de los relojes físicos
4. Happens-before y relojes de Lamport
5. Relojes vectoriales y reconciliación en Dynamo
Clase 9 — Dynamo II y DynamoDB
1. Objetivos y técnicas de Dynamo
2. Sloppy quorum y hinted handoff
3. Anti-entropy y Merkle trees
4. Gossip y membresía
5. Servicios cloud
6. DynamoDB: modelo de datos y arquitectura
7. Control plane y data plane
8. Diseño orientado al SLA
Clase 10 — Transacciones distribuidas
1. Transacciones distribuidas y propiedades ACID
2. Control de concurrencia y two-phase locking
3. Two-phase commit
4. Transacciones en DynamoDB
5. Timestamp ordering
6. Lecturas transaccionales
Clase 11 — Spanner
1. Objetivos y arquitectura de Spanner
2. Transacciones read-write: two-phase commit y locking sobre Paxos
3. Transacciones read-only y external consistency
4. Multiversion concurrency control
5. Relojes desincronizados y TrueTime
6. Asignación de timestamps con TrueTime
Prácticas
Práctica 1 — Replicación y consistencia
1. Replicación asincrónica
2. El LSN y los replication slots
3. Replicación sincrónica
4. Read replicas y read your writes
5. El caso de uso: compras sin transacción
6. Transacción y reintentos
7. La notificación y la transacción
8. Dual writes y contextos de ejecución durables
9. Leer el WAL
10. El notifier como consumer del WAL
11. La intención de compra y la idempotency key
12. Idempotency key en la base
13. Semánticas de entrega
14. Orden en el consumer del WAL
15. Referencias
Search Sistemas Distribuidos I
Clase 10 — Transacciones distribuidas
Table of contents
1. Transacciones distribuidas y propiedades ACID
2. Control de concurrencia y two-phase locking
3. Two-phase commit
4. Transacciones en DynamoDB
5. Timestamp ordering
6. Lecturas transaccionales