[tahoe-dev] Another FUSE interface
zooko
zooko at zooko.com
Tue Apr 29 12:53:33 PDT 2008
On Apr 27, 2008, at 12:55 PM, Armin Rigo wrote:
> For now, a link is probably more appropriate.
Okay:
http://allmydata.org/trac/tahoe/changeset/2516
> At some point I plan to
> refactor this "hack/pyfuse/" directory into a clean library on the one
> hand, and actual file systems implemented with this library on the
> other
> hand. If this occurs, the cleanest solution might then be to let the
> tahoe file system live in Tahoe's contrib/ dir, alongside a copy of
> (some version of) this library.
Yes, that sounds good.
> write access (of course);
Nathan Wilcox's fuse interface (currently known as "contrib/
fuse_a" [1]) has basic write access. Oh no, I asked Nathan on IRC
and he said that, while he did write system tests to test write
access, he may or may not have finished the actual write access.
> "http range" reads;
This would require the Tahoe backend to support HTTP range reads
(ticket #288).
> a way to read the caps of files and directories and to add files and
> directores by giving their caps;
This is interesting -- the Tahoe back-end already supports it, but
how would a POSIX-oriented application access this functionality?
Some sort of "metadata" API?
> some correspondance between the Posix
> "write" permission and the read-only-ness of caps;
This one sounds easy -- just clear the write-permission bit on all
read-only caps.
> and a local on-disk
> cache with a configurable size, which could also act as a write buffer
> to avoid blocking applications during write() and close().
It is unfortunate that this is needed -- it would be better if Tahoe
did streaming writes in the first place (ticket #320) -- applications
typically don't mind blocking long enough to do a normal network
filesystem operation.
Note that ticket #320 would not be sufficient for other uses which
are allowed by POSIX, such as seeking and overwriting. We have plans
for making more efficient implementations of such operations [2].
However, I think we should first satisfy the common need to just
efficiently write out on sequential copy of a file.
By the way, are you aware of the *third* fuse interface? Rob
Kinninmont's mac fuse interface: [3].
> In fact I
> suspect that not all files written to the Fuse filesystem should
> automatically be uploaded (e.g. vim and emacs backup files...). Maybe
> a "check-in" model would be appropriate.
That's interesting -- again I wonder what the API would be like.
Perhaps for starters we should fix up the CLI. Speaking of which, I
will now investigate why Ben Laurie's attempt to use the CLI failed.
Regards,
Zooko
[1] http://allmydata.org/trac/tahoe/browser/contrib/fuse_a?rev=2516
[2] http://allmydata.org/trac/tahoe/browser/docs/mutable-DSA.txt
[3] http://allmydata.org/trac/tahoe/browser/mac/tahoefuse.py
tickets mentioned in this e-mail:
http://allmydata.org/trac/tahoe/ticket/288 # (resumption of
interrupted downloads)
http://allmydata.org/trac/tahoe/ticket/320 # (add streaming upload to
HTTP interface)
http://allmydata.org/trac/tahoe/ticket/393 # (mutable: implement MDMF)
More information about the tahoe-dev
mailing list