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
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):
Build a p2p system capable of streaming millions of live video streams, such as March Madness.
Build a p2p version of MapReduce.
Build a p2p version of Akamai.
Build a p2p replacement for DNS.
Build a p2p system for automatic backup storage.
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 |
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 |
|