CSE 481G: P2P Distributed Systems Capstone

Instructor: Tom Anderson

TAs: Tomas Isdal and Mike Piatek

Location: Tu/Th 12 – 1:30, EEB 03

Pre-requisites: 303, 326, 341, 373, and one of 490H, 451 or 461


The last few years has seen a blizzard of practical and widely used large scale distributed services. While cluster-based services (such as Google, Akamai, and Amazon) have received most of the attention, peer to peer (p2p) systems such as BitTorrent and eDonkey have emerged as an alternate model for supporting very large scale applications. Given the rapid increases in end host computation, storage, and in some cases bandwidth capacity, the question becomes: can we build google-scale services without a google-scale infrastructure, by leveraging end hosts?


This will be a large project design course, to build some interesting software artifact in the p2p space in a sizable team. To aid the project construction, we have some initial building blocks, and lectures will cover some of the design principles underlying p2p systems, including the challenges of scale, incentives, failures, consistency, and security. The course will count as a capstone for the computer engineering software track, and so a project report and presentation will be required. Some reading of research papers will also be involved, but the primary focus will be on the project design and construction.


Example projects include (student suggested projects welcome):






News





Course Schedule

Week

Tuesday

Thursday

Friday Deliverable

1

April 1: Project brainstorming; A brief history of P2P (if time)

April 3: More project brainstorming

P2P tool overview

Emulab; PlanetLab; PLman

April 4: Team membership and pre-proposal

2

April 8: P2P File Sharing

Read: Cohen, Incentives Build Robustness in BitTorrent

April 10: P2P Game Theory

Read: Piatek et al., Do Incentives Build Robustness in BitTorrent?

April 11: Project Proposal

3

April 15: No class

April 17: no class


4

April 22: P2P Workloads

Breslau et al., Web Caching and Zipf-like Distributions

April 24: P2P Economics

Gray, Distributed Computing Economics, Microsoft TR, 2003.

April 25: First project update

5

April 29: Project presentations and discussion

May 1: Project presentations and discussion


6

May 6: DNS

Read: Mockapetris and Dunlap, The Development of the Domain Name System

May 8: Distributed Hash Tables

Read: Maymounkov and Mazieres, Kademlia: A P2P Information System

May 9: Second project update

7

May 13: Project presentations and discussion

May 15: Project presentations and discussion


8

May 20: Debugging P2P Systems

Read: Lamport, Time, Clocks and the Ordering of Events in a Distributed System

May 22: State Management

Read: Lamport, Paxos Made Simple

May 23: First draft of project report

9

May 27: Project presentations and discussion

May 29: Project presentations and discussion


10

June 3: Project discussion

June 5: no class


Finals Week

June 10: Final project report

June 12: Project Presentations