Subject: RE: [nfsv4] CB_NOTIFY_LOCK

From: Peter Varga <[email-masked]>
Date: Tue, 22 Aug 2006 16:42:33 -0400

What about OPENs for WRITE ?

Why don't write delegations really allow you to go beyond the existing
close-to-open caching model? My understanding is that it allows the client
to write locally, and flush later.

Peter

> -----Original Message-----
> From: Trond Myklebust [mailto:[email-masked]] 
> Sent: Tuesday, August 22, 2006 3:45 PM
> To: [email-masked]
> Cc: [email-masked]
> Subject: Re: [nfsv4] CB_NOTIFY_LOCK
> 
> 
> On Mon, 2006-08-21 at 15:41 -0700, Mike Eisler wrote:
> > > 
> > > Can we drop support for write delegations too? One of 
> their few real
> > 
> > This is interesting. Why aren't write delegations advantageous for
> > WRITEs? 
> 
> Write delegations don't really allow you to go beyond the existing
> close-to-open caching model. Pretty much all they do is to allow the
> caching of OPENs, and locks.
> If we don't need to cache locks, then a read delegation will 
> suffice to
> allow you to cache the OPENs...
> 
> Cheers,
>   Trond
> 
> 
> _______________________________________________
> nfsv4 mailing list
> [email-masked]
> https://www1.ietf.org/mailman/listinfo/nfsv4
> 

_______________________________________________
nfsv4 mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/nfsv4

---

From: Trond Myklebust <[email-masked]>
Date: Tue, 22 Aug 2006 17:20:36 -0400

> What about OPENs for WRITE ?

What about them? The only difference between an OPEN for WRITE and an
OPEN for READ is that we've decided that OPEN for WRITE must be
exclusive. If applications still need to obey the close-to-open caching
model in order to deal with the case where the client loses the
delegation (or fails to obtain it in the first place), then why do you
care?

> to write locally, and flush later.

That can be a real win in the case where you have a single client
reading and writing the same data, however as soon as you want to do
anything more than open the file and manipulate the data, you usually
need to return the delegation first. In addition, pretty much any
operation by other clients requires either a slow CB_GETATTR callback or
a delegation recall.

In practice, most clients are probably still flushing the data on
close() simply because it makes returning the delegation fast.

Cheers,
  Trond