Coda File System

Questions/Clarifications on Hoard

From: Paul Patrick Carpio Prantilla <>
Date: Sat, 20 Mar 2004 15:59:44 +0800

I've been using coda for a few months now (I'm currently using 6.0.4 but
am about to upgrade to 6.0.5), however I have a few questions regarding
how the hoard command and it's priorities affect the HDB. Please correct
my if I'm wrong, but my assumption is that once the venus cache is full,
the cached objects with the lowest priority value assigned to them are
automatically evicted from the cache to make room for a new incoming
object. If this is so, I'm quite confused as to why a certain experiment
I'm working on doesn't turn out results as I expect.

I have a small wireless setup that consists of 3 pc nodes. 2 of these
run coda servers, and the remaining pc runs a coda client.I've written a
small program for testing purposes in the client that calls hoard each
time a file is opened in coda (using filenames outputted by spy). The
program uses a system() call for hoard to assign a priority value from
1-1000 to the just-opened file. This priority is primarily based on the
wireless connection strength (among other things) from the client to the
server the opened file resides in. Thus,the weaker the connection
strength...the higher the priority value assigned by hoard to that file.

I made a script that would copy 200 files from a pool of fifty 1mb files
from both servers, where one server has a missing wireless card antenna.
This would force my program to assign high priority hoard values (at
least 900 according to "hoard list") to files coming from that server.
Consequently, it would assign relatively low values to files coming from
the other "stronger" server (around 100). Using the linux time command,
the script finishes in around 14 minutes.

My question is this: why is it that if I hardcode my program to assign a
constant priority value (e.g 100) using hoard to all opened files from
both servers...the script still finishes in around 14 minutes? I flush
the cache and clear the hoard list before running each script.
Theoretically, I was expecting it to be a lot slower because it would
not prioritize keeping files from the "weak" server in the cache.
Manually copying a file from the "weak" server takes at least twice the
time to copy a file of the same size from the "stronger" server.

On another note, sometimes when hoard is called repetitively for long
periods fo time..something like this happens:

Coda_pioctl: Venus return -4 for (0xf000001.0X1.0x)
16:28:23  Dispatchworker: Signal received (seq=6307)

I guess hoard wasn't meant to be used like this though...:)

Thanks for your time, I'd appreciate any
insights/suggestions/workarounds. More power to the coda project!

Received on 2004-03-20 03:01:13