Degree in Computer Engineering

Study Computer Engineering at La Salle and become a professional with the abilities to work with the latest technologies and new products, designing, implementing and maintaining computer systems for any sector of economic activity

Distributed Architecture Projects

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

Titular Professors

Previous Knowledge

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.

RA.01 - Advanced concepts of databases, security, concurrency and transactions. (GI)
RA.02 - Build computer applications based on client / server and web architectures. (GI)


1. Distributed systems fundamentals.
2. Shared-nothing vs shared-memory architectures.
3. The mutual exclusion problem in distributed architectures.
4. Models & clocks.
5. Communication primitives and strategies.
6. Data replication techniques.
7. Fault tolerance and recovery.
8. Reference models.
9. Existing approaches.


This is an eminently hands-on subject combines theoretical contents and lectures with exercises or micro-assignments aimed at consolidating the knowledge acquired by the students, therefore the subject is taught entirely in the laboratory.


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 of the ordinary evaluation and the corresponding interviews are passed, the final grade of the subject will be the average of the mark obtained in the exercises. Otherwise, it will be necessary to pass a final exam. Then, when all the exercises are approved and the exam has a score equal to or greater than 4 (four), the final grade will be calculated as:

Final grade = 60% Exam + 40% Average exercises

All the grades obtained in exercises and exams will be kept until the extraordinary call of February.

The total or partial copies in any assessable activity will be penalized with what is established in the academic regulations, both in the source and in the copy without exception.

Evaluation Criteria
Basic Bibliography

• Vijay K. Garg. 2007. Concurrent and Distributed Computing in Java. IEEE Press, Piscataway, NJ, USA.
• Patrick Hunt, Mahadev Konar, Flavio Paiva Junqueira, Benjamin Reed: ZooKeeper: Wait-free Coordination for Internet-scale Systems. USENIX Annual Technical Conference 2010
• Fernando Pedone, Matthias Wiesmann, André Schiper, Bettina Kemme, Gustavo Alonso: Understanding Replication in Databases and Distributed Systems. ICDCS 2000: 464-474
• Leslie Lamport: The Part-Time Parliament. ACM Trans. Comput. Syst. 16(2): 133-169 (1998)
• James C. Corbett et al.: Spanner: Google’s Globally Distributed Database. ACM Trans. Comput. Syst. 31(3): 8 (2013)
• Giuseppe DeCandia et al.: Dynamo: Amazon’s highly available key-value store. SOSP 2007: 205-220
• 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-727or other bibliographic format>

Additional Material