[tahoe-dev] How do I do an immutable tree upload?

Vladimir Arseniev vladimira at aport.ru
Sat Nov 26 18:33:10 UTC 2011


On 11-11-26 08:29 AM, Kevin Reid wrote:

> I want to experiment with running a webapp off a Tahoe grid.
> It would handle its own "database" read/write, but I need to
> bootstrap same-origin by uploading its source files to the grid.

That interests me too.  I'm also interested in mobile loop filesystems
and VMs via Tahoe grids.

> It seems to me that the right thing here is a command which
> will upload the entire file tree (preferably with exclusions)
> immutably (to minimize duplication when I upload with changes)
> and return a dircap for it. What 'tahoe' arguments will do this?

I initially focused on sshfs mounting to simplify uploading and updating
file trees.  You create root directory first.  Everything is immutable
by default.

However, my initial experience suggests that filesystem commands with
Tahoe sshfs mounts are considerably slower than 'tahoe put' and 'tahoe
get' with SDMF files (15-30 Mbps vs 50-80 Mbps on my test setup).  Also,
rsync with sshfs mounts was much slower than cp (which makes sense, I
think, in retrospect).

<snip>

> I suppose 'tahoe cp' is the closest in function I have found,
> but all else being equal I would like to have my 'install'
> function not actually use any of the user's pre-existing Tahoe
> capabilities. I could 'tahoe mkdir' a fresh directory and cp
> into it.

I'm tending toward making SDMF directories, and just using 'tahoe put
/foo/bar bar-writecap' and 'tahoe get bar-readcap /foo/bar' individually
for each file.  Although messy, and perhaps unworkable with complex
and/or changing file trees, that approach is the fastest that I have tried.

> Any suggestions on how to do this more cleanly?

I also wonder about that.


More information about the tahoe-dev mailing list