
CSCI B534 Distributed Systems
Spring 2007
Department of Computer Science, School of Informatics
M, W 5:30-6:45 p.m., Lindley Hall Rm. 102
Instructors: Professor Beth Plale and Yogesh Simmhan, and with Professor Dennis Gannon
Professor Plale: LH301D, 812-855-4373
plale@cs.indiana.edu
Office Hours: Monday 4:30-5:30PM
Yogesh Simmhan: LH316
ysimmhan@cs.indiana.edu
Office Hours: Wednesday 10:30-11:30AM
Associate Instructor: Jeff Cox
Location: LH330
Office Hours:
Course Description and Goals
This course covers the foundations of distributed systems including models of computing, logical clocks and synchronization, concensus,
distributed indexing, concurrency, consistency, failures, reliability and security. We will examine popular applications of distributed
computing, analyze how the foundations manifest themselves in different ways depending on real-world constraints.
Such applications include distributed file systems, peer-to-peer systems,
distributed transactions, and web services.
The course will include a couple projects. The first is a systems development and optimization project. It will provide
hands-on experience building a reasonably sized distributed application then using that application to conduct a through
performance evaluation, leading to optimizations that improve performance. The expectation is that students have mastered one or
more programming languages, and have some experience using libraries and packages from other sources. Specific language mastery is not important,
though knowing one of C, C++, or Java will be helpful. The second project will be
a synthesis paper. Students will research an area by selecting and reading three related works from highly selective conference or journal
venues. The student will then construct a taxonomy and use the taxonomy as an organizing principle for his/her thoughts and for the
paper. The synthesis paper can be a breakthrough experience in independent scholarship for a student. When coupled with the
first project around a cohesive theme,
the two projects can provide a path for independent scholarship beyond the spring semester, resulting in publishable material suitable
for a workshop or conference.
The textbook is Coulouris, Dollimore, and Kindberg's, Distributed Systems Concepts and Design, 4th Edition,
Addison Wesley, 2005. It is a required text. Other readings will come from conference and journal papers.
Grading
The course grade is determined by the student's performance over three
areas: projects, readings, and problem solving. Discussion is instrumental to effective learning, so the student is expected to
read papers outside of class. Abstracts (1-2 paragraphs each) will be required for each reading. No more than 8 abstracts will
be required.
Abstract Submission
The abstract should be about 500 words in length. An abstract should include all three of the following components:
- Identify the problem being solved,
- the solution the author proposed and how the author validates the solution, and
- your assessment of the importance of the work.
Abstracts that cut-and-paste out of the paper will be rejected.
Abstracts are due before class (5:30PM) on the day the paper is scheduled to be discussed. Submit the abstract under
the assignments section of the course webpage on Oncourse. A separate assignment entry is open for each paper.
Projects
Agenda:
Below is the agenda guiding the course. Because of the variability of guest speakers and other unexpected events, this schedule will likely change some so please check back frequently.
Intro to Distributed Systems: Issues and Architectures
- Mon Jan 8: Characterization of Distributed Systems [Chs 1 and 2]
- Wed Jan 10: "Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors",
T. Anderson, IEEE Transactions on Parallel and Distributed Systems, 1,1, pgs. 6-16, January 1990.
- Mon Jan 15: Martin Luther King Holiday
- Wed Jan 17: Networking, internetworking and interprocess communication. [Chs 3 and 4]
- Mon Jan 22:
- :
"Myths around Web Services", G. Alonso, Data Engineering, vol 25, no. 4, December 2002
and "A Note on
Distributed Computing", Jim Waldo, Geoff Wyant, Ann Wollrath, and Sam
Kendall, Sun Microsystems Laboratories Technical Report TR-94-29, November
1994.
Naming and Threads
- Jan 24: Naming and name services [Ch secs 9.1-9.3]
- Jan 29: Remote Invocation, Processes and threads [Ch secs 6.1-6.5]
Models of Distributed Computing: Performance, Replication, Virtualization, Scalability
[Ch secs 15.1-15.4 and class notes]
- Jan 31: Synchronous network model and leader election
- Feb 4: Project 1 rollout: separate locations for benchmark and bittorrent projects
- Feb 7: Asynchronous shared memory model, fairness, and mutual exclusion
- Feb 12: Models, cont.
- Feb 14: Data-Centric Consistency Models Notes
A suite of definitions for consistency criteria in distributed shared memories", Proceedings Intl Conf on
Parallel and Distributed Computing (PDCS'96), 1996.
- Feb 19: Multicore architectures and benchmarks
- Rob Lowden, "Virtualization for Scalability and Availability in an Academic Computing Center"
- James Kovach, HP and Shannon Champion, Matrix Integration, "The multicore HP ProLiant DL585 G2"
- David Morse, Dell, Server Performance Analysis group, Austin, TX, "Performance Benchmarking on the Dell Poweredge 6950"
- Feb 21: Client-Centric Consistency Models
- Mon Feb 26:
Scale in Distributed Systems, B. Clifford Neuman, Readings in Distributed Computing Systems, IEEE Computer Society Press, 1994.
Hw 1 due; Hw 2 assigned; HW 2 due Friday Mar 2.
- Wed Feb 28:
End-to-End Arguments in System Design, J.H. Saltzer, D.P. Reed, and D.D. Clark, ACM Transactions on Computer Systems, Vol. 2, No. 4, Nov 1984.
- Mar 5: In-class Midterm
- Mar 7: OmniFind Yahoo! Edition speaker, Dr. John McPherson, Distinguished Engineer, IBM. Will speak at the Data and Search Institute seminar 4-5:00
- Mar 12: Spring break
- Mar 14: Spring break
Logical time, Global Snapshots, Stable Properties
Distributed File Systems and File Sharing Applications
- March 26: Distributed File Systems [8.1, 8.2] and SUN Network File System
- Mar 28: The Google File System, Proceedings of 18th Annual ACM Symposium on Operating Systems Principles. October 2003. Bit Torrent project due, 12:00 noon
- Apr 2: "NFS Sensitivity to High Performance Networks", Richard P. Martin and David E. Culler, ACM SIGMETRICS, 1999. Project 2 assigned
- Apr 4:
Chord: A Scalable Peer-to-peer Lookup Service for Internet
Applications, Ion Stoica, Robert Morris, David Karger, M. Frans
Kaashoek, Hari Balakrishnan, ACM SIGCOMM, 2001
Web Services
- Reference materials for this section.
- Apr 9: Web services overview. Core concepts and example. An introduction to the Web Services Architecture and its Specifications, Curbera, Kurt, and Box, 2004.
- Apr 11: XML Schemas, WSDL 2.0 and SOAP
- Apr 16: WS-Standards Part 1. WS-Addressing, WS-security, WS-eventing. The Next Step in Web Services, Curbera, Khalaf, Mukhi, Tai, and Weerawarana, CACM Oct 2003.
- Apr 18: WS-Standards part 2. WS-Policy, WS-reliable messaging, BPEL
Student Presentations
- Apr 23: Student topic presentations.
- Apr 25: Student topic presentations.
May 2, 5:00-7:00 final exam
Resources
Efficient Reading of Papers in Science and Technology,
a brochure by Michael J. Hanson, updated and re-typeset by Dylan McNamee
Pthreads notes:
C Language, Debugging, and Programming Mechanics Resources:
System Monitoring functions:
Statement on academic integrity
Learning is a collaborative enterprise. However, plagiarism, copyright infringement,
and other types of academic dishonesty will NOT be tolerated. As a rule of thumb,
when in doubt, cite the source (of both written and verbal contributions to your
ideas and products).
The course prerequisite is B536 Advanced Operating Systems or consent of instructor.