Degree in International Computer Engineering La Salle Campus Barcelona

Bachelor in International Computer Engineering

La Salle Degree s in Computer Engineering, is the only Degree program in Barcelona which equips you with the skills and knowledge needed to meet the new international demands of the computer engineering sector and of the global business world.

Distributed Architecture Projects

Description: 

This subject reviews the fundamental theory of distributed systems and analyzes the main modern solutions in this fieldIt begins by identifying the problems associated with sharing data 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
Obligatoria no de Primer
Semester
First
Course
4
Credits
4.00

Titular Professors

Professors

Previous Knowledge: 

  • Knowledge of object-oriented programming.
  • Knowledge of the inner working of an operating system.
  • Knowledge of mutual exclusion and algorithms.

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. Understand the algorithms that lead to the design of scalable distributed systems.

Contents: 

  1. Introduction to Distributed systems and its fundamentals.
  2. Shared-nothing vs shared-memory architectures: Multithread programming and Distributed applications.
  3. Models & clocks: Logical clocks, Direct dependency clocks, and Vector clocks.
  4. The mutual exclusion problem in distributed architectures: Token-based algorithm, Lamport's bakery algorithm, and Ricart & Agrawala's algorithm.
  5. Communication primitives and strategies: Message passing & RPCs, and gRPC & binary encoding with Protocol Buffers.
  6. Data replication techniques: Eager replication, Lazy replication, Primary copy, Update everywhere, and CAP Theorem.
  7. Fault models: Byzantine and Crash/stop.
  8. Failure tolerance and recovery policies: Leader election - Raft
  9. Consistent hashing.
  10. Modern challenges - Paper reading.

Methodology: 

This is an eminently hands-on subject that 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.

Evaluation: 

All exercises proposed, without exception, must be delivered and passed in order to be able to pass the subjectActive participation in class discussions, answering questions during lectures will contribute 5% to the final gradeRegular attendance and engagement are essential for successful completion of this component.

If exercises are delivered before the date of the examination of the ordinary evaluation and the corresponding interviews are passed, no exams will be needed to passThe final grade is calculated using the following formula:

Subject final grade = 95% Exercises average + 5% Attendance

Otherwise, it will be necessary to pass a final examWhen all exercises are approved and the exam has a score equal to or greater than 4, the final grade will be calculated asSubject final grade = 55% Exam + 40% Exercises average + 5% Attendance.

Evaluation Criteria: 

The following aspects will be assessed:

  • Practical Assignments: The ability to design scalable distributed systems and correctly apply the main techniques used in distributed architectures within a hands-on laboratory setting.
  • Paper Reading: The capacity to comprehend and analyze a scientific article about modern challenges in distributed systems.
  • Final Exam: The assimilation and correct identification of the main features, fundamental theory, and models of a distributed system.

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-727.

Additional Material: 

-