1 of 15

CSE 40771 - Distributed Systems

Prof Douglas Thain - Spring 2026 - 11:30-12:20 MWF

Catalog

HashTableServer

HashTableClient

HTTP GET

lookup(key)

value

UDP update

UDP update

UDP update

JSON

A distributed system consists of multiple machines that work together on a common problem. Distributed systems appear everywhere: mobile computing, edge computing, the internet of things, aerospace systems, and more. Students will learn the fundamental principles of distributed systems, study examples of current distributed systems, and build their own distributed systems from scratch. This will be a fun and challenging class for students who like to build working systems. The skills that you learn here will apply directly to advanced systems used in industry.

web

web

web

LB

db

db

2 of 15

Course Materials

3 of 15

What is a distributed system?

Prof. Thain: Any system of multiple independent computers connected by an (unreliable) network, working together on a common problem.

Prof. Lamport: When you can't get your work done because a computer you never heard of has crashed… then you know you have a distributed system. (Wikipedia: Leslie Lamport)

4 of 15

Why would you want a distributed system?

You might choose to design a distributed system in order to get:

  • Increased performance by parallelizing across nodes.
  • Increased capacity by pooling together resources.
  • Improved reliability (sort of) by replicating across unreliable nodes.

You might have to design a distributed system if:

  • The participating nodes are physically separated.
  • The participating people make independent decisions.
  • The communication network is intrinsically unreliable.

5 of 15

The World Wide Web is a Distributed System

6 of 15

Distributed Sensor Networks

6

7 of 15

Distributed Cloud Services

8 of 15

Distributed High Performance Computing

9 of 15

Scientific Workflow Systems

Workflow Manager

Task / Data Scheduler

Computing Facility

Express overall workflow structure, components, constraints, and goals.

Assign ready tasks and data objects to resources in the cluster, subject to runtime constraints.

Execute tasks on computational resources, store and move data between nodes.

10 of 15

Bitcoin and other Cryptocurrencies

11 of 15

The Chord Distributed Hash Table

12 of 15

The Ceph Distributed Filesystem

13 of 15

Design Considerations of Distributed Sys.

Physical Scalability - scope of deployment

Numerical Scalability - # of nodes, people, files, transactions…

Transparency - can the user tell it is distributed?

Cooperation - how well do the people get along?

Reliability - how well can it handle network or node failures?

Security/Privacy - how well is each node protected from another?

14 of 15

Eight Fallacies of Distributed Computing

Observations by Peter Deutsch (Sun Microsystems) of mistaken assumptions often made in the design phase of a system:

  1. The network is reliable;
  2. Latency is zero;
  3. Bandwidth is infinite;
  4. The network is secure;
  5. Topology doesn't change;
  6. There is one administrator;
  7. Transport cost is zero;
  8. The network is homogeneous;

https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing

15 of 15

First Week Steps

  • Make sure you are registered for class and on Slack channel.
  • Purchase or request PDF for the textbook.
  • Read chapters 1-2, do reading assignment.
  • Assignment A2 due next Friday.
  • Start thinking about project ideas!