Skip to content
lectern.tv
University of CambridgeCST-DSSystems & CSundergraduate· 2020

Distributed Systems

Prof. Martin Kleppmann

Martin Kleppmann's concise Cambridge lecture sequence on physical and logical clocks, causality, broadcast protocols, Raft consensus, replication, CRDTs, and distributed transactions.

Start Lecture 115 lectures · 5h total
Syllabus progress0 of 15 watched
Cambridge CST: Distributed Systems

Syllabus

15
Lecture 1· 14:36

Lecture 1.1: Introduction to Distributed Systems (CST-DS)

This introductory lecture establishes core concepts of distributed systems, examining fundamental challenges, desirable properties like scalability and fault tolerance, and common architectural patterns.

Lecture 2· 19:44

Distributed Systems 1.3: RPC (Remote Procedure Call)

This lecture introduces Remote Procedure Call (RPC) as a fundamental mechanism for inter-process communication in distributed systems. It examines the design principles and challenges, including marshalling, message passing semantics, and error handling.

Lecture 3· 20:44

Distributed Systems 2.3: System models

This lecture introduces the fundamental system models for distributed computing, analyzing various failure modes, communication paradigms (e.g., synchronous vs. asynchronous), and ordering guarantees essential for robust distributed system design. It lays the groundwork for understanding fault tolerance and consistency in complex distributed architectures.

Lecture 4· 20:47

Distributed Systems 3.1: Physical time

This lecture segment introduces the complexities of physical time in distributed systems, detailing issues such as clock drift, the inherent inaccuracies of hardware clocks, and the mechanisms of Network Time Protocol (NTP) for synchronization across nodes.

Lecture 5· 15:57

Distributed Systems 3.2: Clock synchronisation

This lecture investigates the fundamental challenges of clock synchronization in distributed systems, contrasting physical clock synchronization protocols like NTP with logical clocks and vector clocks, and their implications for event ordering.

Lecture 6· 16:24

Distributed Systems 3.3: Causality and happens-before

This lecture introduces the concept of causality in distributed systems, detailing Lamport's happens-before relation and its implications for ordering events across independent processes. It covers vector clocks as a mechanism to capture causal dependencies.

Lecture 7· 24:01

Distributed Systems 4.1: Logical time

This lecture introduces the concept of logical time in distributed systems, contrasting it with physical time. It details Lamport timestamps and vector clocks as mechanisms for establishing causal ordering of events across distributed processes.

Lecture 8· 16:19

Lecture 4.2: Broadcast Ordering (CST-DS)

This lecture investigates different guarantees for message delivery in broadcast communication, including FIFO, causal, and total order broadcast, crucial for consistent state management in distributed environments.

Lecture 9· 25:21

Lecture 5.1: Replication (CST-DS)

The lecture explores the principles of data replication in distributed systems, covering techniques like leader-based and leaderless replication, and their implications for availability and consistency models.

Lecture 10· 18:15

Lecture 6.1: Consensus (CST-DS)

This lecture introduces the fundamental problem of consensus in distributed systems, exploring the challenges of achieving agreement among multiple nodes in the presence of failures and network latency. It lays the groundwork for understanding key algorithms like Paxos and Raft.

Lecture 11· 38:09

Lecture 6.2: Raft (CST-DS)

This lecture provides an in-depth explanation of the Raft consensus algorithm, detailing its leader election, log replication, and safety properties designed for understandability and practical implementation.

Lecture 12· 18:45

Lecture 7.1: Two-Phase Commit (CST-DS)

This lecture analyzes the two-phase commit protocol, a classic distributed transaction mechanism, examining its operational phases, failure modes, and suitability for ensuring atomicity across multiple nodes.

Lecture 13· 18:44

Lecture 7.2: Linearizability (CST-DS)

The session defines linearizability as a strong consistency model for distributed systems, illustrating its strict real-time ordering guarantee and contrasting it with weaker consistency properties.

Lecture 14· 14:59

Lecture 7.3: Eventual Consistency (CST-DS)

This lecture delves into eventual consistency, a relaxed consistency model widely adopted in large-scale distributed systems, discussing its benefits for availability and partition tolerance, alongside its challenges.

Lecture 15· 36:26

Lecture 8.1: Collaboration Software (CST-DS)

This lecture examines the architecture and synchronization challenges of collaborative software, including operational transformation (OT) and conflict-free replicated data types (CRDTs), which enable real-time co-editing.