Subject: Re: [nfsv4] LAYOUTCOMMIT byte range

From: <[email-masked]>
Date: Mon, 4 Apr 2011 11:41:54 -0400

> > Also note that Benny is talking about deprecating loca_offset and loca_length, the thing
> > you seem to care about is loca_last_write_offset, which is not affected
>
> Sounds okay but would like to understand the details prior to commenting on this part.
> 
> Questions:
> Will the client send LAYOUTCOMMIT to servers supporting file layout in the current errata?

Yes - There should be no change to the carefully worked out requirements in the current errata for when LAYOUTCOMMIT has to be used with the pNFS file layout.

> I think if we deprecate loca_offset and loca_length the checks for, loca_last_write_offset MUST
> overlap the range described by loca_offset and loca_length need to be removed. There is more text in
> rfc 5661 pertaining to mentioned fields up for deprecation.

Yes, it would be necessary to remove/rewrite all text referring to deprecated fields as part of deprecating them.  Removing those checks is one of the things I like about Benny's suggestion.

The overall result would be that for the pNFS block layout, the server iterates through the layout-specific extents to figure out what to do, but both the pNFS file and object layouts effectively do LAYOUTCOMMIT on the entire file.

Thanks,
--David

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] On Behalf Of Suchit Kaura
> Sent: Thursday, March 31, 2011 9:00 AM
> To: Fred Isaman
> Cc: Benny Halevy; nfsv4 list; Black, David; [email-masked]
> Subject: Re: [nfsv4] LAYOUTCOMMIT byte range
> 
> Hi Fred,
> 
> Thanks for your response.
> > I remember some discussion of using COMMIT (not LAYOUTCOMMIT) ranges to determine if the
> LAYOUTCOMMIT is needed,
> Just to be sure http://www.rfc-editor.org/errata_search.php?rfc=5661&eid=2751 is not being
> considered anymore
> 
> >  but that was tabled once the current errata was proposed.
> The current errata is Benny's email or is it documented somewhere else?
> 
> > Also note that Benny is talking about deprecating loca_offset and loca_length, the thing you seem
> to care about is loca_last_write_offset, which is not affected
> Sounds okay but would like to understand the details prior to commenting on this part.
> 
> Questions:
> Will the client send LAYOUTCOMMIT to servers supporting file layout in the current errata?
> 
> Also from rfc5661:
>    The loca_last_write_offset field specifies the offset of the last
>    byte written by the client previous to the LAYOUTCOMMIT.  Note that
>    this value is never equal to the file's size (at most it is one byte
>    less than the file's size) and MUST be less than or equal to
>    NFS4_MAXFILEOFF.  Also, loca_last_write_offset MUST overlap the range
>    described by loca_offset and loca_length.  The metadata server may
>    use this information to determine whether the file's size needs to be
>    updated.  If the metadata server updates the file's size as the
>    result of the LAYOUTCOMMIT operation, it must return the new size
>    (locr_newsize.ns_size) as part of the results.
> 
> I think if we deprecate loca_offset and loca_length the checks for, loca_last_write_offset MUST
> overlap the range described by loca_offset and loca_length need to be removed. There is more text in
> rfc 5661 pertaining to mentioned fields up for deprecation.
> 
> Regards,
> Suchit
> 
> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] On Behalf Of Fred Isaman
> Sent: Wednesday, March 30, 2011 12:34 PM
> To: Suchit Kaura
> Cc: Benny Halevy; nfsv4 list; David Black
> Subject: Re: [nfsv4] LAYOUTCOMMIT byte range
> 
> On Wed, Mar 30, 2011 at 3:19 PM, Suchit Kaura <[email-masked]> wrote:
> 
> >> 3. The file and object layouts ignore the LAYOUTCOMMIT byte range.
> > This is not true for all file layout based servers. The file layout based servers using asymmetric
> model can use this information as an indication of what was the last client offset that was written.
> I believe we agreed on this as part of the proposal from Mike after the discussion in interim IETF
> meeting, the errata for the same was captured by Ricardo and reviewed.
> 
> 
> Is this mentioned in the errata at all?  I do not see it.  I remember some discussion of using
> COMMIT (not LAYOUTCOMMIT) ranges to determine if the LAYOUTCOMMIT is needed, but that was tabled
> once the current errata was proposed.  Also note that Benny is talking about deprecating loca_offset
> and loca_length, the thing you seem to care about is loca_last_write_offset, which is not affected.
> 
> Fred
> _______________________________________________
> nfsv4 mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/nfsv4

---

From: Benny Halevy <[email-masked]>
Date: Mon, 04 Apr 2011 09:30:00 -0700

On 2011-03-31 07:23, [email-masked] wrote:
>> LAYOUTCOMMIT is needed, Just to be sure
>> http://www.rfc-editor.org/errata_search.php?rfc=5661&eid=2751 is
>> not being considered anymore
> 
> That is incorrect, the above (2751) errata is still being considered
> - it affects only the pNFS file layout.
> 

Right.

Benny

> This email thread about byte range concerns a different problem that
> has arisen for the pNFS block layout.  To oversimplify, the problem
> arises from the byte ranges to be committed being described in two
> places for the block layout, leading Benny to ask: do we need the
> layout-independent description for other layout types? The resolution
> of this problem may lead to another errata (which cannot be written
> until we agree on how to solve the problem).
> 
> Thanks, --David (who talked to Benny about this in Prague).
>

---

From: Benny Halevy <[email-masked]>
Date: Mon, 04 Apr 2011 09:35:35 -0700

On 2011-04-04 08:41, [email-masked] wrote:
>>> Also note that Benny is talking about deprecating loca_offset and
>>> loca_length, the thing you seem to care about is
>>> loca_last_write_offset, which is not affected
>> 
>> Questions: Will the client send LAYOUTCOMMIT to servers supporting
>> file layout in the current errata?
> 
> Yes - There should be no change to the carefully worked out
> requirements in the current errata for when LAYOUTCOMMIT has to be
> used with the pNFS file layout.
> 
>> I think if we deprecate loca_offset and loca_length the checks for,
>> loca_last_write_offset MUST overlap the range described by
>> loca_offset and loca_length need to be removed. There is more text
>> in rfc 5661 pertaining to mentioned fields up for deprecation.
> 
> Yes, it would be necessary to remove/rewrite all text referring to
> deprecated fields as part of deprecating them.  Removing those checks
> is one of the things I like about Benny's suggestion.
> 

In addition, since loca_last_write_offset is currently optional we may
want to mandate it when client wrote to the file via pNFS and did not
get FILE_SYNC (with the file layout).

loca_offset, loca_length were never meant to be used for determining
the file length.

> The overall result would be that for the pNFS block layout, the
> server iterates through the layout-specific extents to figure out
> what to do, but both the pNFS file and object layouts effectively do
> LAYOUTCOMMIT on the entire file.

Agreed,

Benny

> Thanks, --David

---

From: <[email-masked]>
Date: Tue, 19 Apr 2011 12:11:42 -0400

Based on this message, it looks like the right way forward is to deprecate loca_offset and loca_length in the LAYOUTCOMMIT arguments, because:

- loca_last_write_offset will remain to handle EOF update.
- The file and object layouts commit the entire file or object.
- The block layout passes the ranges to commit in its layout-dependent arguments.

Thanks,
--David

> From: Benny Halevy [mailto:[email-masked]]
> Sent: Monday, April 04, 2011 12:36 PM
> To: Black, David
> Cc: [email-masked]; [email-masked]; [email-masked]

---

From: Spencer Shepler <[email-masked]>
Date: Tue, 19 Apr 2011 16:40:49 +0000

With this, were are we with including block/object issues to the LAYOUTCOMMIT
errata that is outstanding?

Are there other comments/issues from anyone?

Spencer

> From: [email-masked] [mailto:[email-masked]] On Behalf Of
> [email-masked]
> Sent: Tuesday, April 19, 2011 9:12 AM
> To: [email-masked]
> Cc: [email-masked]
> Based on this message, it looks like the right way forward is to deprecate
> loca_offset and loca_length in the LAYOUTCOMMIT arguments, because:
> 
> > > deprecated fields as part of deprecating them.  Removing those
> > > checks is one of the things I like about Benny's suggestion.
> > >
> >

---

From: "Mike Eisler" <[email-masked]>
Date: Tue, 19 Apr 2011 14:41:30 -0700

This is a major and welcome simplification. The more we chip away at
LAYOUTCOMMIT the better. Maybe by NFSv4.3 we will have the utopian
LAYOUTCOMMIT_MINUS, with LAYOUTCOMMIT in NFSv4.4 being REQUIRED to not
implement.

-- 
Mike Eisler, Senior Technical Director, NetApp, 719 599 9026,
http://blogs.netapp.com/eislers_nfs_blog/