![]() |
COMP 734 (243) Distributed Systems
Fall 2008
11:00 AM - 12:15 PM Tuesday and Thursday |
![]() |

This is an introductory graduate course on the design of systems that fundamentally require multiple independent processors interconnected by local- and wide-area networks. The focus is on building scalable distributed systems to provide services that support many users (in contrast to those designed for high-performance computing). The requirements that must be met by these services are:
Ongoing (highly available), Reliable (correct results), and Responsive (good performance)
Upon completion, you should
be familiar with the major design trade-offs and decisions used in a variety of distributed systems, be able to design and implement a distributed system for some service that meets straight-forward requirements for availability, reliability, and performance, and have experience with implementing a concurrent service component and be able to measure, tune, and analyze its performance under stress loads.
The course is taught using lectures on design concepts, case studies of real systems, readings from the literature, and hands-on programming experiences. Course topics (with the approximate number of class meetings in parentheses) are:
Introduction, course overview, and client-service model (1) Object naming and scalability in the Domain Name System (DNS) (2) Scalability in the web and web caches (3) Remote procedure calls (2) Distributed file systems (4) Peer-to-peer distributed systems (3) Highly-available distributed systems (3) Replication and consistency (3) Transactions (3) Distributed systems for data-intensive computing (Google) (4)
![]()
