Midterm and Final Exams
Two midterm exams will be given, each one covering about one half of the class.
Each exam will be about four pages long, and you can expect to
be asked to describe fundamental properties of distributed systems,
sketch the architecture and interaction of specific system designs,
and detail the operation of distributed algorithms.
A selection of good topics to study for midterm one:
- Chapter 1: Definitions, objectives, metrics, and limitations of distributed systems.
- Chapter 2: Physical and logical architectures of distributed systems.
- Chapter 3: Process fundamentals, construction of clients and servers, server clustering methods and metrics.
- Chapter 4: Networking fundamentals, properties of TCP and UDP, remote procedure call mechanics and semantics (also Ch 8.3), Network File System (also Ch 2.4)
- Chapter 5: Naming properties and purposes, broadcast name lookups, centralized name servers, distributed naming systems.
- Chapter 6.1: Definition of time and clocks, properties of electronic and astronomical clocks, time synchronization techniques.
- Chapter 6.2: Logical clocks, totally ordered multicast, vector clocks
- Specific systems: World Wide Web, Network File System, ZeroMQ, Domain Name System, Chord, Network Time Protocol
And for midterm two:
- Chapter 6.3 - Mutual Exclusion Algorithms.
- Chapter 6.4 - Election Algorithms.
- Chapter 7.1-7.3 - Replication strategies and consistency models.
- Chapter 8.5 - Two phase commit.
- Chapter 9.1-9.3 - Security principles, symmetric key systems, and asymmetric key systems.
- Case studies: Chain replication, TaskVine, Ceph, Kafka
The final exam will be similar in format to the midterm exams,
likely six pages long, and may address any of the above topics
from both exams.