[Imported from Trac: page GSoCIdeas/Notes, version 12]

kevan 2010-03-28 19:21:59 +00:00
parent 7a93995959
commit 4f23050a34

@ -38,4 +38,31 @@ Here are notes that should be added to wikiGSoCIdeas in a format emulating [this
* improve the FUSE frontend ([source code]source:contrib/fuse). [Tickets labelled 'fuse'](http://allmydata.org/trac/tahoe-lafs/query?status=!closed&order=priority&keywords=~fuse)
* integrate Tahoe-LAFS with the GVFS Gnome virtual filesystem
* Explore running a Tahoe-LAFS grid over [Tor](https://torproject.org) or [I2P](https://i2p2.de) to provide anonymity to servers and/or clients.
* Rescue the neglected C client library [libtahoeclient_webapi](http://allmydata.org/trac/libtahoeclient_webapi).
* Rescue the neglected C client library [libtahoeclient_webapi](http://allmydata.org/trac/libtahoeclient_webapi).
### Medium sized Distributed Mutable Files (MDMF)
Mutable files in Tahoe-LAFS have some significant limitations and
performance issues, as discussed in
[docs/performance.txt](http://allmydata.org/trac/tahoe-lafs/browser/docs/performance.txt). Users who aren't aware of these limitations are
surprised when they find out that mutable files can't scale to large
sizes without using unacceptable levels of memory, and that reading one
byte of the file costs as much as reading the entire file.
A fix for this issue would essentially be fixing #393. That is,
* Developing mutable files that are segmented on upload, as with immutable files. Part of this would involve making sure that the way we currently ensure the integrity of the parts of mutable files stored on servers is adequate for your new design, and altering it if it isn't.
* Implementing efficient reading and writing of arbitrary spans of those mutable files.
This would make Tahoe-LAFS less surprising to users, and allow mutable
files to be used in more ways than they currently are.
To learn more about this issue, you should first read
[docs/performance.txt](http://allmydata.org/trac/tahoe-lafs/browser/docs/performance.txt), so you're familiar with the performance problems
with mutable files as currently implemented. You should also look at the
[file encoding specification](http://allmydata.org/trac/tahoe-lafs/browser/docs/specifications/file-encoding.txt), to understand how immutable files are
segmented (since you'll be doing something similar with this project). [The mutable file specification](http://allmydata.org/trac/tahoe-lafs/browser/docs/specifications/mutable.txt) may be informative as well.
The mutable file upload and download code is in
[mutable](http://allmydata.org/trac/tahoe-lafs/browser/src/allmydata/mutable),
and, for comparison, the immutable file upload and download code is in
[immutable](http://allmydata.org/trac/tahoe-lafs/browser/src/allmydata/immutable).