Announcements
Class schedule: Wed 5:10-7:00pmCIWW 101
Class instructor: Jinyang Li
TAs: Eric Yu Cao
Office hours: Jinyang (Tue 4-5pm, 60 5th Ave Room 410), Yu (Thu 4-5pm, 60 5th Ave Room 406)
Discussions: Piazza
Course information
Large-scale distributed systems are the core software infrastructure underlying
cloud computing. These systems consist of tens of thousands of networked
computers working together to provide unprecedented performance and
fault-tolerance. Examples include distributed databases (e.g. Google's
Spanner, Amazon's S3 and Dynamo), distributed computation frameworks (e.g.
Hadoop/Spark and TensorFlow) or even decentralized currency systems (e.g.
BitCoin). This class teaches the abstractions, design and implementation
techniques that allow you to understand and build such distributed systems.
Topics include multithreading, network programming, consistency, naming, fault
tolerance, and security and several case studies of distributed systems.
This class is a graduate-level course, but undergraduate students are welcome! The course consists of lectures and a series of programming labs.
This class satisfies the Ph.D. breadth requirement in Systems and also serves as a M.S. capstone course.
Prerequisites:
- Undergraduate Operating Systems or Computer Systems Organization
- Extensive programming experience
Useful Books
The following books may help provide background help. None of them are required. They are listed in rough order of usefulness.
- Principles of Computer System Design. Jerome Saltzer and M. Frans Kaashoek, Morgan Kaufmann.
- Distributed Systems: Principles and Paradigms, Andrew Tanenbaum and Maarten van Steen, Prentice Hall.