Due - 12 Noon - Thursday, May 21, 2009
For this project, you will propose and implement an extension to your FileSync application. The lecture period on April 27 will be devoted to
discussion of your proposal. By April 27, you will need to submit a 1-2
paragraph description of your extension. I will respond promptly with any
comments about your proposal. You are strongly encouraged to meet with the professor early and often to discuss your ideas.
For this project, you may choose to work in teams of 2. I will expect teams to complete roughly 2 times more work than individuals, and each team member will receive a grade based on my assessment of the individual contributions. Your final grade will be based upon your proposal, the functionality of your final submission, the design of your final submission, and the degree of difficulty of your proposed project. Submissions that demonstrate a low level of difficulty and/or few new features will be graded accordingly. Upon reading your proposal I will give you feedback on the level of difficulty of the project.
Following are several ideas for Project 3. This is not meant to be an
exhaustive list, and is meant to inspire your creativity. Keep in mind that I will expect the amount of work required for Project 3 to
exceed
that of Project 2.
Load Distribution
Implement and compare several load-aware strategies for selecting nodes where replicas will be placed. For example, you might consider a round-robin approach, a random approach, an approach that keeps track of the amount of space available for backup on each node, and an approach that considers the uptime of each node. Experimentally compare the approaches using metrics such as how often restoration is successful and submit a writeup.
DHT
Replace the current strategy you use to maintain a list of peers with a DHT such as CAN. Use the DHT to help you determine where data should be backed up.
Bit Torrent-style Backup
|