COMP 734 (243) Distributed Systems

Fall 2008

11:00 AM - 12:15 PM Tuesday and Thursday
Sitterson 115

Instructor: Don Smith

Office hours: TBA.
FB312, smithfd@cs.unc.edu

 

 
Line

Introduction

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)

  • Line

    2008 Course General Information Handout

    Link to Fall 2007 course web page (internal CS access only)


    Line

    - Last updated: August 7, 2008