[AFS3-std] updated extended callback draft

Matt Benjamin matt@linuxbox.com
Tue, 28 Oct 2008 15:12:23 -0400


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Chaskiel M Grundman wrote:
> What if an application tries to prevent the client from caching disjoint
> sets of dirty data, by using locking? your change could cause such an
> application to see its assumptions violated:
> 
> Client 1            Client 2
> open()
> flock(LOCK_EX)
> read()
> close()
> 
>                     open()
>                     flock(LOCK_EX)
> 	            read()
>                     write()
>                     close()
>          <-- callback break happens(now)
> open()
> flock(LOCK_EX)
> read()
>           <-- callback break happens (future)
> read()
> 

That's supposed to be handled by implementing a write barrier on lock
release.  Tom had indicated this in conversation, too.

> 
> Alternatively, what about applications that use both the filesystem and
> their own network transport? application on node X updates a file, closes
> it and makes an rpc to node Y, which sees the old contents of the file, or
> no file at all!

In the model proposed, what Y sees is undefined.   The delegation
mechanism proposed in the second draft (which I'm sure is buggier,
because fewer people have read and discussed it), is intended to be
extensible (will make an improvement later that makes that more clear),
and I think something like DCE semantics would be relatively easy to
implement over that, at some real cost in performance.

- --

Matt Benjamin

The Linux Box
206 South Fifth Ave. Suite 150
Ann Arbor, MI  48104

http://linuxbox.com

tel. 734-761-4689
fax. 734-769-8938
cel. 734-216-5309

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJB2QXJiSUUSaRdSURCNqRAJ992LyYz5AI2l6BWgB6Ts87+6zPNQCcDfTZ
Dwfy89SYLr+dyl/RTXFUl8Y=
=LszK
-----END PGP SIGNATURE-----