Coda File System

Re: Files Bigger Than Cache Size

From: Phil Nelson <phil_at_cs.wwu.edu>
Date: Wed, 30 Jan 2008 06:31:17 -0800
On Wednesday 30 January 2008 4:08:20 am u+codalist-p4pg_at_chalmers.se wrote:
> > So, what happens when I need to use, say, a 4.5GB DVD ISO? How is this 
> > condition handled?
> 
> It is not.
> 
> 1. Coda does not handle files over 2G in size.
> 2. A Coda client reads the whole file into the cache at open() so unless
> you have a _really_ fast network you do not usually want to wait as long.

Actually, using the Windows implementation of Coda you can store those 4.5GB
IOS with no problem.   The windows kernel includes a 'big file' implementation that
allows you to copy your big files to the coda server using a "mkcodabf" command.
It creates a directory tree of smaller files to be fetched by the client that will fit into
cache.   There are command line options to mkcodabf to allow you to select the
size in number of MB for the "file chunks".    Once the big file is written to the servers
as a tree of file chunks, a special meta-data file is written to the top directory of the
tree.   Once the meta-data file is written, the kernel then tells userland that that
directory is just a big file.   Venus still sees the tree of files and just thinks that it
is fetching just small files.    The application treats it as a single file.   The kernel
implements a read-only file.    Finally, since we assumed these large files are
more likely to be media files, when a "file chunk" is accessed, the kernel asks
venus to pre-fetch the next "file chunk" so that the next chunk is in the cache
by the time the application wants that chunk.  Random access is also supported, but
the application may be blocked on a read() while waiting for venus to fetch the
"file chunk" that is needed to satisfy the read.

--Phil

p.s.  I've ripped several DVD movie collections into Coda and been able to watch
them using standard media players.

-- 
Phil Nelson (phil at cs.wwu.edu) http://www.cs.wwu.edu/nelson
NetBSD: http://www.NetBSD.org  Coda: http://www.coda.cs.cmu.edu


Received on 2008-01-30 09:33:42