[AFS3-std] File Server/Cache Manager Extended Status Information
Jeffrey Hutzelman
jhutz@cmu.edu
Mon, 07 Apr 2008 17:54:49 -0400
--On Monday, April 07, 2008 04:18:49 PM -0400 Jeffrey Altman
<jaltman@secure-endpoints.com> wrote:
> As opposed to the existing model in which
>
> 1. client A requests block byte range write lock on fid 1.2.3
> 2. server replies EWOULDBLOCK
> 3. another client drops the held lock
> 4. server sends client A a callback indicating that the lock state on
> fid 1.2.3 has changed
> 5. client decides whether or not to request the lock again. if so,
> go to 1
Actually, last I checked (about 3 seconds ago) the existing model is that
after the server replies EWOULDBLOCK, client A sleeps for 1 second and
tries again. What you describe would be a significant improvement, and
requires only that the clients change, since RXAFS_LockRelease has done a
callback on release of the last lock for some time.
> Using multiple callback messages would make it hard to coalesce delayed
> callbacks of different types.
Yes, but it might not matter. For one thing, I'm not sure we need to
provide extended notifications from BreakDelayedCallbacks; it may be
sufficient just to do a traditional callback break and let the client sort
it out, at least initially.
Incidentally, I don't think "union is not currently used" is a good
argument for not using it. I'm pretty sure I've actually seen a use
outside of AFS, though I can't find it at the moment, but even if there is
none, it doesn't matter. If it turns out to be buggy, we'll fix it!
-- Jeff