Planeamento

Aulas Teóricas

Introduction to the course

Overview of the course.

Key aspects in the design of distributed systems

Safety and liveness properties. System model (synchronous, asynchronous, network model, etc). Performance metrics.

Physical time in distributed systems

Clock synchronization in distributed system. Synchronizing from an external source. Internal synchronization.

Logical time in distributed systems

Lamport´s logical clocks. Vector clocks.

Mutual exclusion in distributed systems

Use of logical clocks to solve the mutual exclusion problem. Ricart and Agrawala Algorithm. Maekawa.

Leader election

Leader election in distributed systems. Bully algorithm.

How to write technical papers

Some key aspects to consider when writting a technical paper.

How to make a presentation

Some key aspects for making good presentations.

Global states and distributed snapshots

Consistent global states. Chandy and Lamport algorithm.

Basic replication techniques

Primary-backup replication. State-machine replication.

Reliable multicast

The reliable multicast problem. Regular and uniform multicast. An algorithm.

Consensus and total order

The consensus problem. A solution for systems with a perfect failure detector. Consensus and total order.

Lazy replication

Using epidemic strategies for disseminating updates.

Group Communication

Introduction to group communication. Services and properties. View synchrony.

Group Communication (continuation)

Implementing group primitives. The "flush" protocol.

Distributed File Systems

Introduction to distributed file systems. The NFS and AFS file systems.

File replication

The CODA file system. Disconnected operation.

Optimistic replication

Key aspects. Operation propagation and scheduling. Conflict resolution.

The Bayou system

How to model and propagate operations.

The Bayou system (continuation)

How to provide "session semantics". How to compress the operation history.

Load balancing

Load balancing in distributed systems.

Web clustering

Load balancing in web clusters.

Unstructured P2P systems

Properties and examples of unstructured P2P systems.

Structured P2P systems

The distributed hash table approach.