[OpenAFS] oAFS & Arla

Jeffrey Hutzelman jhutz@cmu.edu
Mon, 19 Jul 2004 18:45:20 -0400

On Monday, July 19, 2004 15:13:03 -0700 Mike Fedyk <mfedyk@matchmail.com> 

> Thomas Kirk wrote:
>> Hep
>> On Mon, Jul 19, 2004 at 12:13:23PM -0400, Jeffrey Hutzelman wrote:
>>> Actually, it's much cooler than that.  Arla keeps track of the apparent
>>> performance of each server it talks to (which can be a function of
>>> actual  fileserver capabilities, network speed, distance, load, etc),
>>> and  dynamically adjusts what fraction of its requests are sent to each
>>> server  accordingly.
> How does that deal with file versioning where a file is updated on the
> r/w volume, and being transferred to the several r/o volumes?  Is it an
> atomic switch once the transfer is complete, or can you see partial
> updates nfs style?

AFS does not conflate a read/write volume with its read-only clones.
So if you are reading a replicated read-only volume, you _never_ get data 
from the read/write volume.

Replication does not occur as you write a file; it happens only during an 
explicit release operation, which is atomic if the clients implement the 
protocol correctly.

>> Does OpenAFS work this way to or how is the "load" distributed among
>> more OpenAFS servers?
> I read once on the lists, that it only uses one r/o volume, and it picks
> the one with the lowest IP address even if it's not local.  But I really
> hope it was wrong.

No, this is not correct.  The OpenAFS cache manager assigns each server a 
gross priority based on address similarity, perturbed by a small random 
value such that no two servers have the same priority.  It then selects 
between multiple servers by using the lowest-priority server that is 
currently believed to be up.  Priorities may be adjusted manually by using 
"fs setserverprefs".

-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
   Sr. Research Systems Programmer
   School of Computer Science - Research Computing Facility
   Carnegie Mellon University - Pittsburgh, PA