Titular Professors
Knowledge of object-oriented programming.
Knowledge of the inner functioning of an operating system.
Knowledge of mutual exclusion.
The subject has the following objectives:
1. Identify the main features of a distributed system.
2. Understand a scientific article about distributed systems.
3. Assimilate the main techniques used in distributed systems.
4. Design scalable distributed systems.
The Learning outcomes are:
- LO.01 Advanced concepts of databases, security, concurrency, and transactions.
- LO.02 Build computer applications based on client/server and web architectures.
1. Introduction to Distributed systems and its fundamentals
2. Shared-nothing vs shared-memory architectures
3. Models & clocks
4. The mutual exclusion problem in distributed architectures
5. Communication primitives and strategies
6. Data replication techniques
7. Fault models
8. Failure tolerance and recovery policies
9. Consistent hashing
10. Modern challenges - Paper reading
This is an eminently hands-on subject that combines theoretical content and lectures with exercises or microassignments aimed at consolidating the knowledge acquired by the students; therefore, the subject is taught entirely in the laboratory.
- Exercises.
All exercises proposed, without exception, must be delivered and passed in order to be able to pass the subject. If these exercises are delivered before the date of the examination, and the corresponding interviews are passed, the final grade of the subject will be the arithmetic mean grade obtained in the exercises.
1. Vijay K. Garg. 2007. Concurrent and Distributed Computing in Java. IEEE Press, Piscataway, NJ, USA.
2. Patrick Hunt, Mahadev Konar, Flavio Paiva Junqueira, Benjamin Reed: ZooKeeper: Wait-free Coordination for Internet-scale Systems. USENIX Annual Technical Conference 2010
3. Fernando Pedone, Matthias Wiesmann, André Schiper, Bettina Kemme, Gustavo Alonso: Understanding Replication in Databases and Distributed Systems. ICDCS 2000: 464-474
4. Leslie Lamport: The Part-Time Parliament. ACM Trans. Comput. Syst. 16(2): 133-169 (1998)
5. James C. Corbett et al.: Spanner: Google's Globally Distributed Database. ACM Trans. Comput. Syst. 31(3): 8 (2013)
6. Giuseppe DeCandia et al.: Dynamo: Amazon's highly available key-value store. SOSP 2007: 205-220
7. Tom White: Hadoop - The Definitive Guide: Storage and Analysis at Internet Scale (4. ed., revised & updated). O'Reilly 2015, ISBN 978-1-491-90163-2, pp. I-XXV, 1-727