Double Qualification in Engineering Studies in Telematics and Computer Science

Double Degree in Engineering Studies in Telematics and Computer Science

Receive training to become an expert engineer in Network and Internet Technologies and get the CCNA and CCNP official qualifications

Distributed Architecture Projects

Description: 
This subject reviews the fundamental theory of distributed systems and analyzes the main modern solutions in this field. It begins by identifying the problems associated with sharing a datum between several physical machines, describing how a distributed system can be modeled, discussing the techniques to synchronize various nodes communicated by a network, studying what techniques can be used to replicate data as well as their advantages and disadvantages, and ends up analyzing the modern, highly scalable distributed systems.
Type Subject
Tercer - Obligatoria
Semester
First
Course
4
Credits
4.00

Titular Professors

Previous Knowledge

Knowledge of object-oriented programming.
Knowledge of the inner functioning of an operating system.
Knowledge of mutual exclusion.

Objectives

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.

Contents

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

Methodology

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.

Evaluation

- Exercises.

Evaluation Criteria

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.

Basic Bibliography

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

Additional Material