EECE 411 - Design of Distributed Software Applications
(Fall’11)

 

Instructor: Matei Ripeanu

TAs: Samer Al-Kiswany

 

Announcements

 

[11/9]      Final exam: December 9th, 12pm, MCLD 254

[10/31]    Second phase of the project posted (P02). Submission deadline November 2nd 11:59pm.

[10/10]    First phase of the project posted (P01). Do send us your group membership and apply fro PlanetLab accounts (one per group). Submission deadline November 2nd 11:59pm.

[09/07]    Subscribe to the class mailing list either by emailing sympa@ece.ubc.ca with “subscribe eece411@ece.ubc.ca” in the body of the message or by visiting https://oldlists.ece.ubc.ca/sympa

 

Logistics

·         Class: Tu/Th 12:30 to 14:00 in McLeod 242

·        Office hours: 14:00 to 14:30 (after each class) in KAIS 4033. Other times by appointment.

 

Lecture schedule (tentative)

 

 

Date

Topic

Required

Reading

Slides

Assignments

Optional reading / Links

W1

09/08

Course overview. P2P systems. Project introduction.

 

[L01]

[project]

 

 

Gnutella links; BitTorrent links

 

W2

09/13

Definitions & goals. Transparency. Scaling. Policy vs. Mechanism. Architectural styles.

Tanenbaum p1-43; 115-125

[L02]

[A1]

Waldo, et. al., A note on distributed computing

Code: socket examples

09/15

Network protocols. Berkley sockets. Remote Procedure Calls. 

p125-157;

[L03]

 

RFC1057; RFC1831, RPC tutorial

W3

09/20

 

RPC (cont).

section 8.3, p491-496;

[L04]

[A1 due 09/23]

 

09/22

Remote Method Invocation (RMI).

Sun’s RMI guide

[L05]

[A2]

RMI example code and runtime configurations

Sun’s document on Java Garbage collection -- a few references to RMI

W4

09/27

Soft-state. Distributed garbage collection. Assignment 2 discussion.

Tann. p69-103

[L06]

 

Amazon’s report on the S3 Availability Event: July 20, 2008

 

09/29

Data distribution: Multicast. Epidemic protocols.

Tann. 145-157; 167-176

[L07]

 

 

W5

10/04

Naming systems.  Naming systems for flat namespaces. Consistent hashing. DHTs.

Tann. chapter 5

[L08]

 

Consistent hashing and DHTs in Wikipedia

Jung et al., DNS Performance and the Effectiveness of Caching

 

10/06

Consistent hashing. DHTs.

 

[L09]

[A2 due 10/07]

 

W6

10/11

Synchronization: Physical clocks.

Tann. chapter 6

[L10]

[P01]

B. Liskov et al, Practical Uses of Synchronized Clocks in Distributed Systems

10/13

Synchronization: Physical clocks

 

[L11]

 

 

W7

10/18

Quiz.

 

 

 

 

10/20

Quiz discussion. Synchronization: Logical clocks. Ordered group communication.

Tann. chapter 6

[L12]

 

Time, clocks, and the ordering of events in a distributed system,  Communications of the ACM 21 (7): 558–565.

W8

10/25

Synchronization: Ordered group communication. Vector clocks.

Tann. chapter 6

[L13]

 

 

10/27

Amazon’s Dynamo.

Giuseppe DeCandia et al., Dynamo: Amazon's Highly Available Key-Value Store, SOSP’07 [link]

[L14]

[P02]

CAP Theorem [slides] [wikipedia] [a view]

 

http://www.allthingsdistributed.com/ 

W9

11/01

Mutual exclusion.

Tann. chapter 6

[L15]

[P01 due 11/2]

Lin et al., A Practical Distributed Mutual Exclusion Protocol in Dynamic Peer-to-Peer Systems [link]

 

11/03

Mutual exclusion (cont). Replication and consistency

Tann. chapter 6

[L15]

[L16]

 

 

W10

11/8

Project discussion. Non-blocking IO. Server design.

Read the background section of the SEDA paper

[L17-1] [L17-2]

[P03]

Habibi et al., Section 7 of The Sun Certified Java Developer Exam with J2SE 1.4 (from UBC online library).

 

Welsh et. al., SEDA: An architecture for well-conditioned, scalable Internet services

11/10

Replication & consistency. Consistency models. Replication protocols (client-centric, primary-backup protocols; quorum protocols)

Tann. chapter 7

[L18]

 

Project:

warning!

 

 

W11

11/15

No class – travel

 

 

 

 

11/17

Quiz

 

 

 

 

W12

 

11/22

More on replication.

Tann. chapter 7

[L18]

 

[P02 due 11/14]

Top500

H. Yu et al., Tunable Availability and Consistency Tradeoffs

11/24

Cloud computing

ClusterComputing and MapReduce video series

[cloud]

 

MapReduce: Simplified Data Processing on Large Clusters, Jeffrey Dean, Sanjay Ghemawat, OSDI’04

Wikipedia entry with lots of links

W13

11/29

Map reduce

[mapreduce]

 

 

12/01

System design considerations

 

496 and other project opportunities in distributed systems

 

[L21]

[P03 due 12/01 or 12/8]

 

 

Discussion list

Subscribe to the class mailing list either by emailing sympa@ece.ubc.ca with “subscribe eece411@ece.ubc.ca” in the body of the message or by visiting https://oldlists.ece.ubc.ca/sympa

 

Syllabus: one page course description

 

Textbook

Distributed Systems: Principles and Paradigms by Andrew S. Tanenbaum, Maarten van Steen. Publisher: Prentice Hall; 2nd edition.

 

Grading

* Assignments: 10%

* Project: 40% (65% of that for final submission). 

* Quizzes: 20%

* Final exam: 30% (no midterm).

* Class and mailing list participation: 3% (bonus)

 

Attendance

Class attendance is mandatory, though attendance won't be taken. Most of the course material, including assignments and lecture notes, will be posted on the class web page. However, some topics may get covered in class and not reflected in the online notes. You're responsible for all material covered in class, whether or not it appeared on the Web site - I suggest you ask a fellow student, the TA, or the professor to fill in any material you may have missed.