Schedule

2019/01/01

Topic 1

Topic: Introduction, network programming, layering, framing, parsing, addressing, UDP and TCP sockets, HTTP and the web

Reading: Van Steen 1 (Intro), 2.1 (Architectures), P&D 1.3 (Layering), 1.4 (sockets), 1.5 (performance), 2.3 (Framing), P&D 5.1 (UDP), 5.2 (TCP), Beej’s socket guide

Topic 2

Topic: Remote procedure calls and networked storage, network programming via message passing

Reading: Van Steen 4.1 and 4.2, P&D 5.3, 7.0, and 7.1

Topic 3

Topic: Virtualization and cloud platforms

Reading: Van Steen 3 (Processes), The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines, 2nd ed., by Barroso, Clidaras, and Hölzle. (optional)

Topic 4

Topic: Naming, DNS, and peer-to-peer networks

Reading: Van Steen 5 (Naming)

Topic 5

Topic: Clock synchronization, logical and physical clocks

Reading: Van Steen 6 through 6.4 (Coordination)

Topic 6

Topic: Fault tolerance, availability, reliable communication, distributed commit, checkpointing

Reading: (Optional, material will be covered in the RAFT paper) Van Steen 8 (Fault tolerance)

Topic 7

Topic: Replication, content placement, caching and the web

Reading: (Optional) Van Steen 7 (Consistency and Replication), (Optional) Dean and Barroso, “The Tail at Scale”

Topic 8

Topic: Datacenter design

Reading: The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines, 2nd ed., by Barroso, Clidaras, and Hölzle

Summary

Course review and feedback