CSE481G: Capstone: Distributed Systems

Description: The last few years has seen a blizzard of practical and widely used large scale peer to peer systems: BitTorrent, Kazaa, Gnutella, seti@home, Kademlia, etc. BitTorrent, for example, has over 6M users. In this class, we will first discuss the design principles underlying these systems, including the challenges of scale, incentives, failures, consistency, and security. (These challenges apply to nearly all distributed systems, but they are especially important to peer to peer systems.) Students will then form groups to do a substantial project, either by modifying an existing peer to peer system or building one of your own. As the state of the art in peer to peer systems moves quite rapidly, it is impossible to say with certainty which projects will make sense a year from now, but some example projects that might be appropriate, if we were to start the class today, would be: (i) modify BitTorrent to support live streamed data and/or cooperative caching of web traffic; (ii) build a peer to peer version of DNS; (iii) build a peer to peer email system; (iv) build a peer to peer file store or backup system; (v) build a faster BitTorrent client (cf. http://bittyrant.cs.washington.edu/), for example one that preferentially finds local/high bandwidth peers. Student suggested projects welcome. Pre-requisites: 451 and 461 or permission of the instructor. Counts as a capstone for the computer engineering software track.

Prerequisities: (none listed)

Portions of the CSE481G web may be reprinted or adapted for academic nonprofit purposes, providing the source is accurately quoted and duly credited. The CSE481G Web: © 1993-2024, Department of Computer Science and Engineering, University of Washington. Administrative information on CSE481G (authentication required).