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

Elwyn Davies <elwynd@dial.pipex.com> Tue, 02 December 2014 01:16 UTC

Return-Path: <elwynd@dial.pipex.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 0B9121AC43A for <gen-art@ietfa.amsl.com>; Mon, 1 Dec 2014 17:16:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-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 EJssJ7bzNLOy for <gen-art@ietfa.amsl.com>; Mon, 1 Dec 2014 17:16:18 -0800 (PST)
Received: from mk-outboundfilter-6.mail.uk.tiscali.com (mk-outboundfilter-6.mail.uk.tiscali.com [212.74.114.14]) by ietfa.amsl.com (Postfix) with ESMTP id 7A9391AC42A for <gen-art@ietf.org>; Mon, 1 Dec 2014 17:16:18 -0800 (PST)
X-Trace: 146917255/mk-outboundfilter-6.mail.uk.tiscali.com/PIPEX/$OFF_NET_AUTH_ACCEPTED/TUK-OFF-NET-SMTP-AUTH-PIPEX-Customers/81.187.254.252/None/elwynd@dial.pipex.com
X-SBRS: None
X-RemoteIP: 81.187.254.252
X-IP-MAIL-FROM: elwynd@dial.pipex.com
X-SMTP-AUTH: elwynd@dial.pipex.com
X-MUA: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0
X-IP-BHB: Once
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: Ag8FAHkRfVRRu/78/2dsb2JhbABbhC+DBcl+AoEuAQEBAQGFAAEBBCMPAQVAARALDgoCAgUWCwICCQMCAQIBRQYNAQUCAQEVhgWCJr46lxEBAQEBBgEBAQEBHYErj0QHgnWBUwWOYo0kgSyDOIJMTokihAGDe2+BBIFDAQEB
X-IPAS-Result: Ag8FAHkRfVRRu/78/2dsb2JhbABbhC+DBcl+AoEuAQEBAQGFAAEBBCMPAQVAARALDgoCAgUWCwICCQMCAQIBRQYNAQUCAQEVhgWCJr46lxEBAQEBBgEBAQEBHYErj0QHgnWBUwWOYo0kgSyDOIJMTokihAGDe2+BBIFDAQEB
X-IronPort-AV: E=Sophos;i="5.07,497,1413241200"; d="scan'208";a="146917255"
X-IP-Direction: OUT
Received: from neutrello.netinf.eu (HELO [81.187.254.252]) ([81.187.254.252]) by smtp.pipex.tiscali.co.uk with ESMTP/TLS/DHE-RSA-AES128-SHA; 02 Dec 2014 01:16:16 +0000
Message-ID: <547D12DE.3080001@dial.pipex.com>
Date: Tue, 02 Dec 2014 01:16:14 +0000
From: Elwyn Davies <elwynd@dial.pipex.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Tom Haynes <thomas.haynes@primarydata.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> <CADaq8jcNopgjGZgevo2BNEjWvvV3eCesFLgPzpwg0j33XO1t2A@mail.gmail.com> <547CC75C.7010909@dial.pipex.com> <1F2B554C-4C7C-4BF0-B078-AA7988F7B0AF@primarydata.com>
In-Reply-To: <1F2B554C-4C7C-4BF0-B078-AA7988F7B0AF@primarydata.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: http://mailarchive.ietf.org/arch/msg/gen-art/u4_ggMGD0C2qOlgH536StY3kLm0
Cc: "gen-art >> General area reviewing team" <gen-art@ietf.org>, Barry Leiba <barryleiba@computer.org>, David Noveck <davenoveck@gmail.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: Tue, 02 Dec 2014 01:16:22 -0000

Hi.

I think we are just about done with this, unless you feel your last 
couple of statements (about stability etc) down the bottom could be 
usefully fed into the document.

I have a feeling that some of this is a bit reliant on the usual 
properties of Unix directories and could be a pig to implement on other 
filesystems - I don't remember enough about directories in NTFS etc (if 
I ever knew) to know whether it would work easily there.  However, since 
this has all been implemented, I'll just go quietly into the night.....

Thanks for your patience!

Please let me have a snapshot of the finished item if you don't submit a 
new version before the IESG meeting.

And now it must be bed time here in the UK!

Good might.
Elwyn

On 02/12/14 00:56, Tom Haynes wrote:
>
>> On Dec 1, 2014, at 11:54 AM, Elwyn Davies <elwynd@dial.pipex.com> wrote:
>>
>> Hi, David.
>>
>> Thanks for the response.
>>
>> A couple of comments below...
>>
>> Regards,
>> Elwyn
>>
>> On 01/12/14 18:50, David Noveck wrote:
>>>     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.
>>
>> OK, so the server has to be clever rather than telling the client to restart the readdir -- I'm not sure this is the right trade-off since the client has to cope with being told the cached cookie is useless (as per Trond's input below) but I guess implementations work this way already and it isn't my call.  In that case I suggest that the last sentence of s15.26.4, para 9, is modified to tell server implementers a bit more clearly what they have to do.  Suggestion:
>> OLD:
>>    Ideally, the cookie value should not change if the directory is
>>    modified since the client may be caching these values.
>> NEW:
>>    The server SHOULD try to accept cookie values issued with READDIR
>>    responses even if the directory has been modified between the
>>    READDIR calls but MAY return NFS4ERR_NOT_VALID if this is not
>>    possible as might be the case if the server has rebooted in the
>>    interim.
>
> I’ve taken this change.
>
>>
>> One nasty thought occurs to me regarding the idea that a client caches
>> the cookie value(s):  Is the server supposed to maintain the whole
>> sequence of cookies for a sequence of READDIRs on a single directory so
>> the client can reissue some of the READDIR calls or is it fair enough for the server to throw them away after the client has used them once? And how long should the server hang onto cookie state in normal operation?
>>
>
> No, it does not have to save them.
>
> But the cookies are pretty persistent in the first place. I.e., use some property of either the inode or the dirent to generate the cookie.
>
> As such, the cookie state does not need to be held onto.
>
> And for the life, it actually needs to be “stable” between the opendir() and closedir() call on the client. While we are safe on a client reboot, a client could end up holding onto the DIR pointer for a large indeterminate time.
>