|
CS603 Spring 2008: Distributed Systems
| Class Information |
Instructor
Class Schedule
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),
programming projects (PP), one final project (FP) and class participation (CP), as
follows:
Grade = 20%*HW + 30%*PP + 40*FP + 10%*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. 7-11 |
Lecture 1 - Introduction, Basic communication services. |
Lecture 2 - Client-Server Architecture, RPC, Corba |
| Jan. 14-18 |
Lecture 3 -Web Services |
Lecture 4 - Ordering events. Failure detectors. |
| Jan. 21-25 |
Lecture 5 - Global States. Consensus in Synchrnonous Systems. |
Lecture 6 - Consensus in Asynchronous Systems |
| Jan. 28 - Feb. 1 |
Lecture 7 - Consensus with Byzantine Failures |
Lecture 8 - Onion routing.
|
| Feb. 4 - 8 |
Lecture 9 - Distributed Commit: 2PC and 3PC. |
Lecture 10 - Membership. Reliable multicast. |
| Feb. 11 - 15 |
Lecture 11 - Virtual Synchrony. |
Lecture 12 - Byzantine-Resilient Replication (cont.) |
| Feb. 18 - 22 |
Lecture 13 - Byzantine-resilient Replication (cont) |
Lecture 14 - Quorum Systems |
| Feb. 25 - Feb. 29 |
Lecture 15 - Ben-Or Randomized Algorithm and Secure Group Communication. |
Lecture 16 - Secure Group Communication (cont.). |
| Mar. 3 - 7 |
Lecture 17 - Gossip Protocols |
Lecture 18 - Distributed Hash Tables |
| Mar. 10 - 14 |
Spring Break.
|
Spring Break.
|
| Mar. 17 - 21 |
No class (makeup time for the project presentation during final week). |
Lecture 19 - Distributed Hash Tables
|
| Mar. 24 - 28 |
Lecture 20 - Security Issues in DHTs |
Lecture 21 - Security Issues in DHTs |
| Mar. 31 - Apr. 4 |
Project proposals presentation |
Lecture 22 - Multicast Overlays. |
| Apr. 7 - 11 |
Lecture 23 - P2P Streaming. |
Lecture 24 - Security Issues in Unstructured Overlays. |
| Apr. 14 - 18 |
Project Progress Presentations. Architectures for reputations systems. |
No class (makeup time for the project presentation during final week).
|
| Apr. 21 - 25 |
Lecture 25 - Distributed File Systems. |
Lecture 26 - Distributed File Systems.
|
| |
| 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
|
|