Subject: clarification on OPEN delegation

From: kvs sivak <[email-masked]>
Date: Thu, 16 Mar 2000 04:28:12 +0000 (GMT)

hi,
a clarification as to how initially a delegation gets
granted to a client

NFS v4 draft 3: 

section 9.4 reads 

   When an open delegation is 

requested and granted,  : is a request made by client
?

 the response to the
   OPEN contains an open delegation structure which
specifies the
   following:

   o    the type of delegation (read or write)

   o    space limitation information to control
flushing of data on
        close (write open delegation only, see the
section "Open
        Delegation and Data Caching")

   o    an nfsace4 specifying read and write
permissions

   o    a stateid to represent the delegation for READ
and WRITE

draft 6  
the corresponding section reads :

 When an open delegation is 

          made,     : made arbitrarily by the server ?

the response to the OPEN contains an
   open delegation structure which specifies the
following:

   o    the type of delegation (read or write)

   o    space limitation information to control
flushing of data on
        close (write open delegation only, see the
section "Open
        Delegation and Data Caching")

   o    an nfsace4 specifying read and write
permissions

   o    a stateid to represent the delegation for READ
and WRITE  

Is the granting of a delegation done only when a
client requests one Or is it done by the server
whenever possible so that the client MUST support
delegation handling ?
if a client can request delegation where is the
request made to the server (which RPC operation !)
how ?

kvs_sivak

____________________________________________________________
Do You Yahoo!?
Get your free @yahoo.co.uk address at http://mail.yahoo.co.uk
or your free @yahoo.ie address at http://mail.yahoo.ie

---

From: "Noveck, Dave" <[email-masked]>
Date: Thu, 16 Mar 2000 07:44:48 -0800

> requested and granted,  : is a request made by client

This text in draft 3, was left over from an earlier 
proposal in which the client did indeed have to 
specifically request the delegation as part of the
OPEN operation.
 
>           made,     : made arbitrarily by the server ?

It is up to the server to decide.  Page 82 of draft 6 
lists some conditions that servers might be expected to
use in making this decision.

> whenever possible so that the client MUST support

As the draft now stands, it can be done by the server
whenever possible but it is expected that servers
will adjust their behavior based on current conditions
and past behavior.  When there is a lot of sharing,
causing delegation recall, a server may choose not to
delegate.  When clients are not conflicting, more 
delegation may be done.  If clients do not respond
to delegation recall or they do so too slowly, causing
problems, a server may choose not to delegate or not
to delegate to particular clients.

Delegation is a performance optimization that the server
is best placed to decide upon.  The rate at which conflicts
will occur is something that the server can't predict
but he has a lot of previous experience to go on.  While
I can imagine cases in which an application might 
have some useful information about the chances that other
clients might reference the file, I don't expect that
the client issuing the OPEN request will normally have 
this information.

As far as a client having to support delegation, it
does have to respond to the delegation grant, but 
the support can be minimal.  If the client immediately
returns the delegation, and ignores all callbacks,
everything will work fine.  The server will probably
decide pretty quickly that granting delgations to
this client is a waste and life will go on.