[tahoe-lafs-trac-stream] [tahoe-lafs] #935: zandr's FUSE/NAS idea

tahoe-lafs trac at tahoe-lafs.org
Sat Mar 12 16:59:40 PST 2011


#935: zandr's FUSE/NAS idea
-------------------------------+--------------------------------------------
     Reporter:  warner         |       Owner:                                                    
         Type:  enhancement    |      Status:  new                                               
     Priority:  major          |   Milestone:  eventually                                        
    Component:  code-frontend  |     Version:  1.5.0                                             
   Resolution:                 |    Keywords:  fuse smb sftp sshfs webdav cache preservation gsoc
Launchpad Bug:                 |  
-------------------------------+--------------------------------------------

Comment (by gdt):

 There is prior art that should be studied, in particular Coda.  Coda's
 primary concept is that files are stored on replicated servers, and that
 clients have a cache.  In this way it is similar to AFS, which can satisfy
 reads from the cache when no servers are reachable.  Coda adds the ability
 to do disconnected writes, where changes are cached and reintegrated.
 This in turn requires fairly complex conflict detection and resolution
 code.

 Not required by the above vision, but also present in Coda, is a kernel
 module (for Linux, and for various BSDs) that implements vnodeops and
 passes operations to userspace.  This is similar to FUSE, but predates it
 - I've been using it since probably 1997.  One of Coda's design goals is
 to be efficient once you have the file - operations on a file in coda are
 actually done on the container file, which is a normal file on the local
 disk, and these operations are short-circuited in the kernel so they are
 almost as fast as local file operations.  On read of a file that doesn't
 have a container file, there is a pause while it's faulted in, and on
 close of a file that was opened for writing a store operation begins.

 Were Coda to start over now, it should use FUSE, and FUSE would be
 extended to have fast container file redirects.   I would then argue that
 the caching FUSE module is generic, and can serve both a Coda backend as
 well as a tahoe back end, or at least could be written so that most code
 is shared.

-- 
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/935#comment:8>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list