Coda File System

Re: Iozone

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Tue, 29 May 2007 20:00:34 -0400
On Tue, May 29, 2007 at 06:12:01PM -0400, Cezar Augusto wrote:
> I try to run Iozone in Coda Client, but I am receiving the error below:
> 
> Sanity check failed. Do not deploy this filesystem in a production
> environment!

iozone creates a file with the modebits set to all zeros (i.e. not
writeable), checks that the length is 0 and then truncates it to 0
bytes.

Coda returns an access permission error because the file's mode bits
don't allow modifications except for writes to the open filedescriptor
which are handled as a special case (virgin write).

I made a small change so that my client would just ignore file
truncation to the existing file length, but iozone fails a little bit
later on when it tries to open the file with O_DIRECT, which we don't
support. Dropping the -I flag avoids the attempt to use O_DIRECT and
iozone actually reports a bunch of numbers.

Not sure how useful those are though. It mostly calls read and write on
the single file it created at startup, however in Coda those operations
are just passed on to the file system that stores the container files.

On 64KB writes we are slower, which makes sense because we lock out
concurrent writers to keep the i_size information of the Coda and
container file inodes in sync. Interestingly for larger writes it
pretty much evens out, I guess lack of concurrency isn't hurting for
large file IO.

In any case, these numbers are fairly meaningless since they test
a database type workload. The client doesn't even bother sending
anything back to the server since the file is unlinked after the test
completes and the client simply optimizes away the open/close/unlink
sequence.

Jan
Received on 2007-05-29 20:02:06