CS603 Spring 2006: Distributed Systems


Class Information
Lectures
Reading List


Class Information
Instructor
TA
    HyoJeong Kim
    Email:hjkim@cs.purdue.edu
    Office hours: W 1-3 PM, G050
Class Schedule
    Tu Th 1:30 - 2:45 REC 302
Course Description
This course is an introduction to distributed systems. The lectures will cover fundamental concepts in distributed systems showing how they are applied when building reliable distributed systems and services. Topics include:
  • Internet communication protocols
  • Client Server paradigm, RPC, Corba
  • Web services, .net Java enterprise
  • How and why computers systems fail. How to overcome failures in a distributed system. Failures models. The distributed commit problem.
  • Dynamic membership. Replicating data with malicious failures. Impossibility of asynchronous consensus.
  • Group communication systems, properties and dynamic group membership. Causal and total order.
  • Virtual Synchrony and extended virtual synchrony.
  • Virtually synchronous algorithms and tools: replicated data, state transfer, load-balancing, primary-backup and coordinator-cohort fault tolerance.
  • Enhancing complex systems with reliability: fail-over TCP.
  • Reliable distributed shared memory.
  • Architectures for group communication systems.
  • Clock synchronization and synchronous systems.
  • Transactional model and implementation of a transactional storage systems. Distributed transactions and multiphase commit.
  • Weak consistency models. Weak and strong consistency in partitioned database systems. Linearizability.
  • Peer-to-peer file sharing.
  • Peer-to-peer distributed indexing.
  • Peer-to-peer data fusion and data mining.
  • Building highly assured web services.
  • Security issues in group communication systems.
  • Security topics in overlay networks.
Grade:
The grade will be based on several written homework assignments (HW), three programming projects (PP), one final project (FP) and class participation (CP), as follows:
Grade = 30%*HW + 35%*PP + 30*FP + 5%*CP.
Textbooks and reading list
Mailing list

The class mailing list is cs603. To be added to the list sent an email to mailer@cs.purdue.edu, with the body containing the text 'add your_email to cs603'.

Academic Integrity

Academic Honesty and Ethical behavior are required in this course, as it is in all courses at Purdue University ( here is the guide for academic integrity). The class will be conducted according to the policy written by Professor Gene Spafford. Please take the time to read it carefully. This will be followed unless I provide written documentation of exceptions.

You are encouraged to talk with the professor about any questions you have about what is permitted on any particular assignment.


Lectures

Lecture slides will be posted below. Homework and projects will be handed in class. This is a tentative schedule of the course.



Week Tuesday Thursday
Jan. 9-13 Lecture 1 - Introduction, Basic communication services. Lecture 2 - Client-Server Architecture, RPC, Corba
Jan. 16-20 Lecture 3 - Web Services Lecture 4 - Ordering events. Failure detectors.
Jan. 23-27 Lecture 5 - Global States. Consensus in Synchrnonous Systems. Lecture 6 - Consensus in Asynchronous Systems
Jan. 30 - Feb. 2 Lecture 7 - Consensus with Byzantine Failures Lecture 8 - Byzantine Failures in Routing and MAC Protocols
Feb. 6 - 10 Lecture 9 - Distributed Commit: 2PC and 3PC. Lecture 10 - Membership. Reliable multicast.
Feb. 13 - 17 Lecture 11 - Byzantine-Resilient Replication Lecture 12 - Byzantine-Resilient Replication (cont.)
Feb. 20 - 24 Lecture 13 - Virtual Synchrony Lecture 14 - Applications using Virtual Synchrony
Feb. 27 - Mar. 3 Lecture 15 - Quorum Systems Lecture 16 Guest speaker: P. Eugster, Probabilistic Group Communication
Mar. 6 - 10 Lecture 17 - Distributed Hash Tables Lecture 18 - Distributed Hash Tables (cont.)
Mar. 13 - 17 Spring Break. Spring Break.
Mar. 20 - 24 Attend CERIAS Security Symposium Poster Session Lecture 19 - Security Issues in DHT: Attacks and Defense Mechanisms
Mar. 27 - 31 Lecture 21 - Class critique of presentations from Hw1. Lecture 22 Class critique of presentations from Hw 1.
Apr. 3 - 7 Lecture 23 - Multicast Overlay Networks Lecture 24 - Anonymous Communication
Apr. 10 - 14 Lecture 25 - Project demonstration. Lecture 26 - Project demonstration.
Apr. 17 - 21 Lecture 27 - Project demonstration. Lecture 28 - Project demonstration.



Reading List

  • Leslie Lamport for "Time, Clocks, and the Ordering of Events in a Distributed System," Communications of the ACM, July 1978, 21(7):558-565.
  • Unreliable Failure Detectors for Reliable Distributed Systems, T. Chandra and S. Toueg. 1996.
  • K. Mani Chandy and Leslie Lamport, Distributed Snapshots: Determining Global States of Distributed Systems. ACM Transactions on Computer Systems, Vol. 3, No. 1, February, 1985, pp. 63-75.
  • M.J.Fischer, N.A.Lynch and M.S. Paterson. Impossibility of Distributed Consensus with One Faulty Process. ACM SPDS 1983.
  • L. Lamport, R. Shostak, and M. Pease. The Byzantine Generals Problem ACM Transactions on Programming Languages and Systems 4(3):382-401, July 1982.
  • K. P. Birman and T. A. Joseph. Exploiting virtual synchrony in distributed systems. In Proceedings of the ACM Symposium on OS Principles, pages 123--138, Austin, TX, 1987.
  • L. E. Moser, Y. Amir, P. M. Melliar-Smith, D. A. Agarwal, Extended Virtual Synchrony, The 14th IEEE International Conference on Distributed Computing Systems (ICDCS) 1994.
  • Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, H. Balakrishnan, Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications, SIGCOMM 2001.
  • Security Considerations for Peer-to-Peer Distributed Hash Table. E. Sit, R. Morris
  • Secure routing for structured peer-to-peer overlay networks. M. Castro, P. Druschel, A. Ganesh, A. Rowstron, D. S. Wallach
  • Enabling Conferencing Applications on the Internet using an Overlay Multicast Architecture, Y.-h. Chu, S. Rao, S. Seshan and H. Zhang.



Copyright© 2005 Cristina Nita-Rotaru. Send your comments and questions to Cristina Nita-Rotaru