Coda File System

Re: replication and howto confusion

From: Bruce Janson <bruce_at_staff.cs.usyd.edu.au>
Date: Wed, 20 Jan 1999 17:36:06 +1000
    ..
    To: codalist_at_TELEMANN.coda.cs.cmu.edu
    ..
    From: soma_at_cs.unm.edu (Anil B. Somayaji)
    Date: 19 Jan 1999 13:44:35 -0700
    Message-ID: <ut24spnq9fw.fsf_at_lydia.adaptive.net>
    ..
     * Does a client's cache have to be big enough to hold any single
       file?  Or does it have to be big enough to hold a whole directory?
       We definitely had problems when we tried copying a 23M file into
       coda when the client only was set up with a 20M cache.
    ..

Anil and Fellow Codaphiles,
    At the core of this question is an important design(?) limitation of Coda.  
By insisting that all open files be cached (and so read and written) locally,
the total size of all open files must be less than the size of the local cache.
In practice this is not too critical a limitation.  At least a part of Coda's
target is the realm of mobile, disconnected computing.  For mobile users this
often means a single-user laptop which I would expect would open only a small
number of small files at once.  But in the (nearly) orthogonal realm of
large-scale reliable computing (redundancy, higher performance) this limitation
is more of a problem.
    In fact, the current Coda implementation makes things worse than they need
be.  A cached file can grow to consume all free space on the local cache.
At this point the kernel could request that Venus (i.e. the cache manager) free
up cache space if possible, presumably by removing cached but unopened (and
unhoarded?) files.  At present the kernel code and kernel<->Venus upcall that
would be required to do this do not exist.  Venus also must be ready to perform
cache `garbage collection' when it tries to install a file into the cache
during that file's first open.  I am not sure whether Venus does this at
present (the Venus source code was less than scrutible on this point :-)).
    Peter [Braam], at present I expect that in our (ongoing, nefarious, ab)use
of the kernel<->Venus protocol we will move towards a hybrid Coda/Potemkin/NFS 
system which will give us finer grained (i.e. block-level) caching as well as
neatly side-step the above local caching limits.  Nevertheless, I would be
interested to hear what, if any, plans the Coda development team has with
regard to these issues.

Regards,
bruce.
Received on 1999-01-20 02:26:27