EECE 411 - Design of Distributed Software Applications
(Spring’14)

 

Instructor: Matei Ripeanu

TAs: Bo Fang (bof@ece), Hao Yang (haoy@ece)

        (please email the mailing list rather than individual TAs)

 

Announcements

[04/10]    Final exam: April 12th, 12pm in MCLD 242.  Open-book, open-notes.

[04/10]    Project presentation on April 25th in KAIS 3028 (early morning) then KAIS 4018. Please prepare 2-3 slides ch oices you have made, what you think differentiates your project from everyone else’s, and a summary of your performance results.

              Deadline: Tuesday, April 22nd 11:59pm. 

              What to submit? Please send to the usual email address the following: code archive, a short ‘readme’ file presenting the key design choices you have made, a summary of your best test results.

[03/15]    Project phase 4 and 5 posted. Due date: 04/03 11:59pm for P4.

[03/07]    Project phase 3 posted. Due date:  Thursday 03/20, 11:59pm

[02/15]    Project phase 2 posted. Due date:  Thursday 03/06, 11:59pm

[01/29]    Draft for the rest of the project posted phase 2..N posted.

[01/28]    Project phase 1 posted. Due date:  Thursday 02/13, 11:59pm.

[01/25]    Assignment 2 posted. Due date:  Thursday 02/06, 11:59pm.

[01/15]    Assignment 1 posted. Due date:  Thursday 01/23, 11:59pm.

[01/06]    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: Mo/We/Fri 15:00 to 16:00 in Earth Sciences Building 1012.

·         Lab: Wed 6-8pm in KAIS348

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

 

Lecture schedule (tentative)

 

 

Date

Topic

Required

Reading

Slides

Assignments

Optional reading / Links

W1

01/06

Course overview.

Sources of complexity.

 

One point in the distributed system design space: P2P systems.

 

Definitions & goals. Transparency.

Policy vs. Mechanism. Architectural styles.

 

 

 

 

 

 

 

Tann. p1-43;

[L01]

 

 

[L02]

 

 

 

[L03]

 

 

 

 

 

 

 

Gnutella links

BitTorrent links

 

W2

01/13

Network protocols. Berkley sockets.

End-to-end principle.

Net neutrality.

Tann. p115-140;

section 8.3,

 

[L04-6]

[A1]

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

Code: socket examples

 

NetNeutrality – a good collection of high-level articles from NewYorker:  Jan’14; May’13; Oct’09,

 

End-to-end principle: [1] 

W3

01/20

 

Remote Procedure Calls

Remote Method Invocation (RMI).

Project introduction.

Colouris chap5

[L07-8]

 

[L09-10]

 

 

[A1 due 01/23]

 

[A2]

RFC1057; RFC1831, RPC tutorial

RMI example code and runtime configurations

Sun’s RMI guide

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

W4

01/27

RMI (cont) Soft-state. Distributed garbage collection.

 

Data distribution: multicast; epidemic protocols.

Tann. p69-103

 

Tann. 145-157; 167-176

[L09-10]

 

[L11-13]

 

[P01]

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

 

W5

02/03

Epidemic protocols (cont) Naming systems.  Naming systems for flat namespaces.

Tann. chapter 5

[L11-13]

[L14]

 

 

[A2 due 02/06]

 

[P02]

Consistent hashing and DHTs in Wikipedia

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

 

W6

02/10

Synchronization: Physical clocks.

Quiz (02/12).

Quiz discussion.

Tann. chapter 6

[L15-16]

 

[P01 due 02/13]

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

Spring break

W7

02/24

Synchronization: Logical clocks. Ordered group communication.

Tann. chapter 6

[L17-19]

 

[P03]

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

W8

03/03

Vector clocks.

Amazon’s Dynamo.

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

[L17-19]

[L20]

 

 

 

[P02 due 03/06]

 

CAP Theorem [slides]

W9

03/10

Mutual exclusion.

 

Server design. Non-blocking IO.

 

Replication & consistency.

Tann. chapter 6

 

Read the background section of the SEDA paper

[L20]

 

  [L21]

 

 

[L22-25]

 

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

·    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

W10

03/17

 

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

Tann. chapter 7

[L22-25]

 

[P03 due 03/20]

·    H. Yu et al.,Tunable Consistency / Availability Tradeoffs

·    Google’ Spanner

W11

03/24

Fault tolerance.

Review

Quiz (03/28).

Tann. chapter 8

[L23-26]

 

 

Top500

W12

 

03/31

Quiz review.

Virtual synchrony.

Parallel processing / GPUs

[L23-26]

 

[P04 due 04/03]

W13

04/07

Project submission.  Other days to be announced

 

 

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.