Weekly Hours: 5
ECTS Credits: 5
Introduction to Distributed Systems: Organization, main properties, transparency, scalability, fundamental models of distributed systems. Communication: Point-to-point communication, remote procedure calls, multicasting. Coordination: Clock synchronization, causality, logical and vector clocks, totally ordered multicasting, causally ordered multicasting, leader election, mutual exclusion, global state. Reliable group communication: Reliable multicasting, atomic multicasting, virtual synchrony, distributed commitment. Consistency protocols and replication: Strict consistency, linearizability, sequential consistency, local and remote write protocols, leases, active replication, quorum replication protocols. Fault tolerance: Remote procedure calls in the presence of failures, creation of checkpoints, maintaining a log, recovery.