Re: [Gen-art] Gen-art LC review of draft-ietf-nfsv4-rfc3530bis-33

David Noveck <davenoveck@gmail.com> Mon, 01 December 2014 18:51 UTC

Return-Path: <davenoveck@gmail.com>
X-Original-To: gen-art@ietfa.amsl.com
Delivered-To: gen-art@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2CF4F1A88F8 for <gen-art@ietfa.amsl.com>; Mon, 1 Dec 2014 10:51:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xL_QwMIii9_0 for <gen-art@ietfa.amsl.com>; Mon, 1 Dec 2014 10:51:05 -0800 (PST)
Received: from mail-ob0-x236.google.com (mail-ob0-x236.google.com [IPv6:2607:f8b0:4003:c01::236]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0EACF1A8906 for <gen-art@ietf.org>; Mon, 1 Dec 2014 10:50:59 -0800 (PST)
Received: by mail-ob0-f182.google.com with SMTP id wo20so1239721obc.13 for <gen-art@ietf.org>; Mon, 01 Dec 2014 10:50:58 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=bX1wNv/Q2AVAk3FwfySmkCrBEYJ5OEVYt6mJWiEMGck=; b=MktIoQT/v0WnjJ1XiW+8BXCudw6Dxk/BWSyY8VkdaNFzx8zGJXzDuFpRo2GOC5EybQ MdyYn/80YMG3V1Bin2YGvWni1GkEKsWCTvDL54ZD3R/as/6YUAVZO/OZ0xzpwglj7vRy XMEy/tmUTlnXJvg+YNgzf8lrjV/qJ80Zre18xWLfwd2ChFxBhedr+9AR7KlN2Lc3VKHl qDwOyCqJtkGTS84WoUDl+sQSa4ZHIf6WHutBfNx7/ZH/gUP8kt/apJSHlIvclni4zHlF sS4j87pxNz+zMTKlB4rOnbpZKM30ofZlVkdZ13JaJA8ZYl5sWm/3oohpNj5gcTwRTreY TsKw==
MIME-Version: 1.0
X-Received: by 10.60.144.129 with SMTP id sm1mr37005982oeb.13.1417459858305; Mon, 01 Dec 2014 10:50:58 -0800 (PST)
Received: by 10.182.5.198 with HTTP; Mon, 1 Dec 2014 10:50:58 -0800 (PST)
In-Reply-To: <547C7E2B.10305@dial.pipex.com>
References: <54627625.9050909@dial.pipex.com> <7E1914F4-413F-4F7E-BE9A-C941FBDD422B@primarydata.com> <5465143D.6020604@dial.pipex.com> <47860B2D-1977-4062-9775-10463F7030B9@primarydata.com> <EF01418C3D9E034EB5E2FD76E33708EB22CAF09541@AUSX7MCPS308.AMER.DELL.COM> <CADaq8jdvdfqDuGs_Gj4qFZ2HxdH71GRSaKGQZfeq5APW40ZxmQ@mail.gmail.com> <CA071301-D89F-4A4C-B253-086E95A4F929@primarydata.com> <546B0F4F.3060504@dial.pipex.com> <B8733C3C-1986-49B3-9AE6-1B88A8F7CA8C@primarydata.com> <547C7E2B.10305@dial.pipex.com>
Date: Mon, 01 Dec 2014 13:50:58 -0500
Message-ID: <CADaq8jcNopgjGZgevo2BNEjWvvV3eCesFLgPzpwg0j33XO1t2A@mail.gmail.com>
From: David Noveck <davenoveck@gmail.com>
To: Elwyn Davies <elwynd@dial.pipex.com>
Content-Type: multipart/alternative; boundary="047d7b339f15567a3005092c1737"
Archived-At: http://mailarchive.ietf.org/arch/msg/gen-art/JA6oKm7fTpxfxSVwGoUL3DDIiE8
X-Mailman-Approved-At: Mon, 01 Dec 2014 11:02:13 -0800
Cc: "gen-art >> General area reviewing team" <gen-art@ietf.org>, Barry Leiba <barryleiba@computer.org>, Tom Haynes <thomas.haynes@primarydata.com>
Subject: Re: [Gen-art] Gen-art LC review of draft-ietf-nfsv4-rfc3530bis-33
X-BeenThere: gen-art@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <gen-art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/gen-art>, <mailto:gen-art-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/gen-art/>
List-Post: <mailto:gen-art@ietf.org>
List-Help: <mailto:gen-art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/gen-art>, <mailto:gen-art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Dec 2014 18:51:09 -0000

My view (remains) that if the cookie is not tied to the change attribute of
the directory, this makes life difficult for both the server (what does it
send if the data has been changed and how does it manage maintaining
checkpoints -- where a readdir finished --, in particular if the checkpoint
was on an entry that has been deleted), and the client.


The cookie is not tied to the change attribute of the directory.

The purpose of the cookie is ensuring that you do a READDIR that
encompasses multiple requests:

   - entries that exist during the entire period of the multi-requuest
   directory read appear exactly once in the result.
   - entries that exists during some part of the period of the
   multi-request directory read  appear at most once in the result.


Basically implementations scan through the directory as it exists on disk
and if there is a created entry, the client may or may not see it,
depending on where the the new entry happens to be put, with respect to the
ongoing scan.  As far as deleted entries, the implementation only has to be
able to move on to the next entry if it encouneters an entry marked as
deleted.

s19.4.1, para 2:

>    For the purposes of open delegation, READs and WRITEs done without an
>    OPEN are treated as the functional equivalents of a corresponding
>    type of OPEN.  This refers to the READs and WRITEs that use the
>    anonymous stateid.  Therefore, READs or WRITEs with an anonymous
>    stateid done by another client will force the server to recall a
>    OPEN_DELEGATE_WRITE delegation.  A WRITE with an anonymous stateid
>    done by another client will force a recall of OPEN_DELEGATE_READ
>    delegations.


suggest rewriting this as;

For the purposes of open delegation, READs and WRITEs done without an

OPEN (anonymous and read-bypass stateids) are treated as the functional
equivalents of a corresponding type of OPEN.  READs and WRITEs done with an
anonymous stateid done by another client will force the server to recall a

OPEN_DELEGATE_WRITE delegation.  A WRITE with an anonymous stateid
done by another client will force a recall of OPEN_DELEGATE_READ

 delegations.  Handling of read-bypass stateid's is identical except that a
READ

done with a read-bypass stateids will not force a recall of an
OPEN_DELEGATE_READ

delegation.




On Mon, Dec 1, 2014 at 9:41 AM, Elwyn Davies <elwynd@dial.pipex.com> wrote:

> Hi, Tom and David.
>
> Sorry to have been dilatory in running through the v35 that Tom sent me.
>
> This looks pretty good to me and has sorted out almost everything that I
> flagged up in the review. In particular s7.8 is much improved.
>
> The one problem that I have left is the issue of directory contents being
> changed under the feet of a multi-part readdir request.  The last mail on
> this subject from 14 November said:
>
>>
>>
>>  On Nov 14, 2014, at 3:05 PM, Tom Haynes <thomas.haynes@primarydata.com>
>>> wrote:
>>>
>>>
> <<snip>>
>
>  On Nov 11, 2014, at 12:48 PM, Elwyn Davies <elwynd@dial.pipex.com
>>>>>> <mailto:elwynd@dial.pipex.com>> wrote:
>>>>>>
>>>>>>
>>>
>>>>>
>>>>>> s15.26.4/s15.26.5: What happens if the directory has been modified
>>>>>> (entries added or deleted) between calls of READDIR intended to
>>>>>> retrieve segments of the directory information?  Related to this,
>>>>>> presumably no ordering of entries is implied in the returned
>>>>>> information - it would be desirable to state this.
>>>>>>
>>>>>
>>>>>
>>>>> This is where the cookieverf is supposed to come in.
>>>>>
>>>>> In most implementations, the cookie needs to be persistent, which
>>>>> indeed
>>>>> means an ordering of the information.
>>>>>
>>>>
>>>> AFAICS the text doesn't tie the cookieverf to the change attribute of
>>>> the
>>>>
>>> >>> directory.  Presumably this is what is intended - it would certainly
> mean
>
> that changes would be picked up and READDIR would have to start from the
> beginning again.
>
>>
>>>>>
>>> Asking an expert…
>>>
>>
>> From Trond:
>>
>> As far as I know, the cookieverf is about validating the cookies
>> themselves. There is no requirement in any of the descriptions in
>> RFC1813, RFC3530 or RFC5661 that states that the contents of the
>> directory need to change when the cookieverf does or vice-versa.
>> In theory, the server could throw out the cookies and regenerate them
>> on reboot, for instance.
>>
>>
> My view (remains) that if the cookie is not tied to the change attribute
> of the directory, this makes life difficult for both the server (what does
> it send if the data has been changed and how does it manage maintaining
> checkpoints -- where a readdir finished --, in particular if the checkpoint
> was on an entry that has been deleted), and the client.
>
> Thoughts?
>
>
> I also found a some minor typos (mostly finger trouble in the new bits)
> and there are a couple of nits outstanding (see below).
>
> Are you intending to publish a -35 before Thursday?
>
> Regards,
> Elwyn
>
> Nits:
> =====
> s2.1: nfs_lease4 definition still missing.
>
> s8.5, last para: I am not sure that the jargon 'trunking relation' is
> widely understood. [I don't think I have ever come across it.]
>
> s19.4.1, para 2:
> >    For the purposes of open delegation, READs and WRITEs done without an
> >    OPEN are treated as the functional equivalents of a corresponding
> >    type of OPEN.  This refers to the READs and WRITEs that use the
> >    anonymous stateid.  Therefore, READs or WRITEs with an anonymous
> >    stateid done by another client will force the server to recall a
> >    OPEN_DELEGATE_WRITE delegation.  A WRITE with an anonymous stateid
> >    done by another client will force a recall of OPEN_DELEGATE_READ
> >    delegations.
>
> Did you mean to take out the 'all 1's case' which was an alternative in
> v33?
>
> s9.10, para 1:
>
>> to use a stateid of all 0's or all 1's
>>
> Ought to be changed to "anonymous" and "READ bypass"
>
> s9.11, last para; s15.18.5, 5th from last para; s15.20.4, para 1:
> Reference s9.1.3 about incrementing seqid. (Three places all told.)
>
> Editorial:
> ==========
>
> s5.4, 2nd bullet labelled '1.': s/common to all object within given file
> system./common to all objects within the given file system./
> [Very nitty: Could use a different label type for the second set of
> bullets.]
>
> s6.2: s/RECOMMENED/RECOMMENDED/
>
> s8.8, para 1: s/an zero-length string/a zero-length string/ [Missed it
> last time].
>
> s9: s/has a secondary purpose/have a secondary purpose/
>
> New s9.1.3 looks good -- except for a bit of finger trouble
> s9.1.3, para 4: s/cuurent/current/
> s9.1.3, para 5: s/raesonably/reasonably/
> s9.1.3, para 6: s/wraparoundby/wraparound by/, s/gretater/greater/
>
> s9.1.6, para 2: s/consiting/consisting/
>
> s9.1.7, para 1: s/Subseuent/Subsequent/
>
> s10.3.1, first bullet: s/(such as an OPENs specifying DENY=NONE)/(such as
> for [or at or on] OPENs specifying DENY=NONE)/
>
> s12.4, 1st bullet: s/has a non-UT8 encoded/has a non-UTF8 encoded/
>                                ^^^
> s15.2.5, para 2: s/in which operation that/in which operations that/
>
> s15.11.5, para 5: s/the server may return the error NFS4ERR_NOTSUPP./the
> server MAY return the error NFS4ERR_NOTSUPP./ (I think)
>
> s15.18.6, last para: s/tfor the same client/for the same client/,
>             s/i size and change attribute/size and change attributes/
>               ^^^                     ^^^
>
> s15.26.4/s15.26.5:  Not convinced about discussion on directory info
> changing under the feet of readdir.
>
> s17, para 7: s/match wth the previous/match with the previous/
>                      ^^^
>
>
>
>
> On 18/11/14 15:17, Tom Haynes wrote:
>
>>
>>  On Nov 18, 2014, at 1:20 AM, Elwyn Davies <elwynd@dial.pipex.com> wrote:
>>>
>>> Hi.
>>>
>>> Could you send me a snapshot of the updated version?  I am getting a bit
>>> lost on the results of the various changes.
>>>
>>> Cheers,
>>> Elwyn
>>>
>>>
>>>
>>
>> Hi,
>>
>> I was wondering about that. :-)
>>
>> Later,
>> Tom
>>
>>
>>
>>
>>
>>
>>