CSCI 4510/6510 - Distributed Systems and Algorithms - Fall 2018

General Information

Class Time and Place: T F 12:00pm - 1:50pm, Low 3051
Instructor: Stacy Patterson     sep AT cs.rpi.edu
Office Hours: T 2:00pm - 3:00pm or by appointment, Lally 301
TA: Matthew Obetz     obetzm AT rpi.edu
TA Office Hours: W 9:00am - 10:00am, R 6:00pm - 7:00pm, AE 127

Course Description

This course explores the principles of distributed systems, emphasizing fundamental issues underlying the design of such systems: communication, coordination, synchronization, and fault-tolerance. We will study key algorithms and theoretical results and explore how these foundations play out in modern systems and applications like cloud computing, edge computing, and peer-to-peer systems.

Course Syllabus
Intro Slides

Prerequisites

  • CSCI-2300: Intro. to Algorithms
  • CSCI-4210: Operating Systems
  • Project Information

  • Project 0 - No due date
  • Project 1 - Due October 14, 2018 at 11:00pm
  • Pseudocode and Resources

  • Wuu Bernstein Replicated Dictionary Al gorithm
  • Maekawa's deadlock-free algorithm, with corrections
  • Papers

    Some papers are behind a pay wall and can only be accessed from the RPI network.

  • Time, clocks, and the ordering of events in a distributed system, Leslie Lamport, Communications of the ACM, 1978.
  • Timestamps in Message-Passing Systems That Preserve the Partial Ordering, Colin J. Fidge, Australian Computer Science Communications, 1988. (Relevant section: Asynchronous Communication pages 58-59)
  • Efficient solutions to the replicated log and dictionary problems, Gene T.J. Wu and Arthur R. Bertsein, Principles of Distributed Computing, 1984.
  • A optimal algorithm for mutual exclusion in computer networks, Glenn Ricart and Ashok K. Agrawa la, Communications of the ACM, 1981.
  • A √ N Algorithm for mutual exclusion in decentralized systems, Mamoru Maekawa, ACM Transactions on Computer Systems, 1985.
  • The Information Structure of Distributed Mutual Exclusion Algorithms, Beverly Sanders, ACM Transactions on Computer Systems, 1987
  •