Aulas Teóricas

Presentation of the course

Presentation of the course. Evaluation method. Bibliography. 

System Models

Physical models. Architectural models. Fundamental models. (Chapter 2)

Group Communication

Introduction to group communication. JGroups. (Chapter 6)


Introduction to publish-subscribe systems. (Chapter 6)

Publish-subscribe systems and message queues

Architecture of publish-subscribe systems. Example systems. Message queues (chapter 6).

Distributed shared memory

Distributed shared memory. (chapter 6)

Tuple spaces

Tuple spaces: model and implementation (chapter 6)

Introduction to peer-to-peer systems

Introduction to peer-to-peer systems and network overlays. Structured P2P systems. Chord. (chapter 10)

Peer-to-peer systems: examples

Continuation from the previous class: PASTRY. Some concrete peer-to-peer systems and applications. Oceanstore and Scribe.  Unstructured overlay networks. (chapter 10)

P2P & Time and physical clocks

Time, physical clocks, clock synchronization. (chapter 14)

Logical time a logical clocks

Clock synchronization (end). Lamport´s logical clocks. Vector clocks. (chapter 14) 

Global states

Consistent cut. Snapshot algorithm. (chapter 14)

Global States (conclusion) and Mutual-exclusion

Global states and distributed debugging. Introduction to mutual-exclusion. Ricart and Agrawala's algorithm. (chapter 15)


Maekawa´s algorithm for mutual exclusion.  Leader Election. (chapter 15).

Coordination in group communications

Total order multicast on top of view synchronous communication. (chapter 15)

Implementing total order and View Synchrony

Using total order to implement mutual exclusion with quorums. Implementing View Synchrony. Reliable Multicast (regular and uniform). View Change Protocol.

Consensus and related problems

Consensus. Interactive consistency. Total order broadcast. (chapter 15)


Consensus without a perfect failure detector. Paxos.

Concurrency control techniques

Optimistic and pessimistic concurrency control. (chapter 16)

Distributed transactions

Concurrency control in distributed transactions. Distributed deadlock detection. (chapter 17).

Replicating transactional systems using consensus

State-machine replication variants to implement transactional systems.

The gossip architecture

The gossip architcture. (chapter 18)


Bayou and optimistic replication/ eventual consistency. (chapter 18)

Distributed File Systems: BFS, AFS, CODA and Google File System

Distributed File Systems: 

Historic perspective: NFS and AFS

CODA (chapter 18)

   - Architecture

   - Main use cases

Google File System  (chapter 21)

Case Study: Google

Other google services (chapter 21)