![]() |
CPS 512 (Duke University) Distributed * Systems | ![]() |
|||||
|
|||||||
This offering of CPS 512 will focus on core concepts in distributed systems, using geo-distributed mega-services in the cloud as a motivation and driving example. Well-designed cloud applications are layered above common service platforms that handle the hard problems: tracking groups of participating servers (views), distributing state and functions across a group, coordinating control and ownership of data, managing consensus, and recovering from server and network failures. The course focuses on the design of these service platforms and their abstractions.
Although the course covers the fundamentals, the emphasis is on practical technologies and their limitations. This course includes an important software technology component. We will do some projects using the Scala language and the Akka actor system for scalable “reactive” applications. Programming labs include a key-value application, a leased lock service, atomic transactions, and a consensus service. There will also be a course project of your choosing.
The course divides loosely into three parts. The first part covers basic problems and abstractions, focusing on elastic key-value stores as an example. In the second part, we dive deeper into foundational distributed systems topics that underlie these systems: quorum replication, logical time and causality, eventual consistency with vector clocks, views and leader election, and consensus.
The third part shifts focus to secure Internet-scale systems with multiple identities and federation, showing how cryptosystems are used to manage naming, identity, and authorization. We introduce trust logic as a formalism for building secure networked systems, and use it to represent the Internet security architecture and cloud access control.
The readings for the course are research works: there is no textbook. The papers include some tutorial and survey works, with a handful of full-strength research papers, including systems papers from major cloud services companies (e.g., Amazon and Google). See the topics page for a full list of topics and readings.