copy in share migration from Kevan's notes

[Imported from Trac: page GSoCIdeas2010, version 76]
zooko 2010-03-16 16:19:23 +00:00
parent 25bdd0eac7
commit 3a8d909c45

@ -2,7 +2,7 @@ Tahoe-LAFS Summer-of-Code Projects
This page contains specific suggestions for projects we would like to see in the Summer of Code. Note that they vary a lot in required skills and difficulty. We hope to get applications with a broad spectrum.
If you are interested in working on any of these projects, please contact the developers referenced next to each item.
If you are interested in working on any of these projects, please contact the Mentors listed at the bottom of the page.
In addition, you may wish to discuss your proposal on IRC -- join us on #tahoe-lafs on irc.freenode.net.
@ -10,25 +10,70 @@ We encourage you to come up with your own suggestions, if you cannot find a suit
Deadlines and directions for students' applications to the Google Summer-of-Code can be found on [the Google pages](http://code.google.com/soc/).
| | | |
|---|---|---|
|*Project*|*Difficulty*|*Contact*|
|[#RedundantArrayofIndependentClouds Redundant Array of Independent Clouds]|Medium|[Zooko Wilcox-O'Hearn]mailto:zooko@zooko.com|
| | |
|---|---|
|*Project*|*Difficulty*|
|[#RedundantArrayofIndependentClouds Redundant Array of Independent Clouds]|Medium|
|[#ShareMigration Share Migration]|Medium|
----
# Redundant Array of Independent Clouds
Project summary:
* Estimated difficulty: Medium
* Contact:
See [the RAIC diagram](http://allmydata.org/~zooko/RAIC.png). Add backends to the storage servers so that they store their shares on a cloud storage system instead of on their local filesystem. See #999 for details, including pointers to the relevant source code.
# Share Migration
Project summary:
* Estimated difficulty: Medium
When uploading a file to a grid, Tahoe-LAFS will make sure that the file is
healthy (a good discussion of what healthy means is found in #778) before
reporting that the file is uploaded successfully. Tools to effectively
maintain file health (or to adapt to new definitions of health) aren't
quite complete, however -- our users have had several use cases that aren't
easily addressed with what we have. Students taking this project would be
building tools to address those use cases.
A good starting point would be to become familiar with how files are placed on
a grid. [architecture.txt](http://allmydata.org/trac/tahoe-lafs/browser/docs/architecture.txt),
[file-encoding.txt](http://allmydata.org/trac/tahoe-lafs/browser/docs/specifications/file-encoding.txt),
[mutable.txt](http://allmydata.org/trac/tahoe-lafs/browser/docs/specifications/mutable.txt),
[the immutable file upload code](http://allmydata.org/trac/tahoe-lafs/browser/src/allmydata/immutable/upload.py), and
[the mutable file upload code](http://allmydata.org/trac/tahoe-lafs/browser/src/allmydata/mutable/publish.py) are good
places to do that. Also, you might want to look at the
[storage server code](http://allmydata.org/trac/tahoe-lafs/browser/src/allmydata/storage/server.py) to understand that
better. Some good tickets to start looking at are #699, #543, and #232; you'll
find that those link to other tickets.
There are many ways to help address these issues. Some ideas:
* Alter the CLI and the WUI to give users the ability to rebalance
files that they've uploaded already. (#699)
* Build tools that allow node administrators to moves shares around
a grid (#543, #864)
* Alter Tahoe-LAFS to rebalance mutable files when uploading a new version
of them. (#232)
Any one of these projects is probably too small to fill a summer, but combined they would be a big usability improvement for Tahoe-LAFS.
Depending on how you address this, this is tightly integrated with ideas of
file health and accounting, so prospective students would do well to explore
those open issues, too. A good accounting jumping-off point is #666. A good
jumping-off point for health is #778.
----
# Mentors
*Who is willing to spend about five hours a week (estimated) helping a student do it right?*
<br>
* [Zooko Wilcox-O'Hearn](http://testgrid.allmydata.org:3567/uri/URI:DIR2-RO:j74uhg25nwdpjpacl6rkat2yhm:kav7ijeft5h7r7rxdp5bgtlt3viv32yabqajkrdykozia5544jqa/wiki.html) (Python/C/C++/JavaScript, cryptography)
* [Zooko Wilcox-O'Hearn](http://testgrid.allmydata.org:3567/uri/URI:DIR2-RO:j74uhg25nwdpjpacl6rkat2yhm:kav7ijeft5h7r7rxdp5bgtlt3viv32yabqajkrdykozia5544jqa/wiki.html) (Python/C/C++/JavaScript, cryptography) |
* [Jack Lloyd](http://www.randombit.net) (C/C++/Python, cryptography)
* David-Sarah Hopwood (david-sarah at jacaranda.org) (Python/C/JavaScript, SFTP frontend, security+cryptography)