[OpenAFS] Last Update not updating?

Jeffrey Hutzelman jhutz@cmu.edu
Tue, 10 Jan 2006 21:41:18 -0500


On Tuesday, January 10, 2006 09:31:09 AM +0100 Horst Birthelmer 
<horst@riback.net> wrote:

>
> On Jan 10, 2006, at 3:18 AM, Jeffrey Hutzelman wrote:
>> On Monday, January 09, 2006 04:43:47 PM -0800 Mike Polek
>> <mike@pictage.com> wrote:
>
>>> Good to know. The reason I'm looking at it is that I have a perl
>>> script that will release a set of volumes, but only if they
>>> need it. It checks the updateDate of the volume and compares
>>> it to the updateDate of the cloneID if there is one to
>>> figure out if the volume needs to be released.
>>
>> Yup; we have that too.  It doesn't notice changes made too close
>> before it runs.  That's one of the reasons I'm looking at making
>> 'vos examine' go back to the slower, more accurate results.
>
> Jeff, I remember our talk at the 2004 Hackathon about this.
> The problem was not that the examine took too long.
> The problem was, that you could cause timeouts on file transfers, if  you
> do a few 'vos examine' calls, due to the disk operations those  calls
> would trigger.

Hrm.  Yeah, I'd forgotten about that.
But reporting out-of-date information is surprising and has turned out to 
break multiple sites' auto-release tools.


> BTW, 'vos release' won't do any transfer if the RW volumes didn't change.
incremental volume dump to each RO site.
Not true.  Unless there is a pending incomplete release, 'vos release' will 
always clone a new RO volume on the RW site, and will always do a 
VolForward from the newly-updated RO clone to each of the other replicas 
(after the first two, remaining replicas are updated in parallel).

Now, if nothing has actually changed, then the dump that is forwarded will 
be a fairly short incremental, containing only a list of the vnodes present 
in the volume.  But even so, it is necessary to lock the VLDB entry for the 
duration of the transaction, busy the RW volume long enough to clone it, 
and take each RO volume completely offline for the time it takes to apply 
the incremental dump -- which may be significant if there are many vnodes 
in the volume.  And to top it all off, attaching these volumes forces the 
volume data to be flushed, just as an examine would have under the old code.

Besides the performance impact on the servers, this means that "just 
release all the volumes in the cell" is considerably slower than examining 
each RW volume and its same-site RO volume and only releasing those which 
have changed, even when the examines are the slow kind.  People, including 
me, have auto-release tools because experience has shown that the 
just-release-everything approach is unacceptably slow.

-- Jeff