[nfsv4] Review of draft-haynes-nfsv4-delstid-00

David Noveck <davenoveck@gmail.com> Mon, 21 May 2018 17:10 UTC

Return-Path: <davenoveck@gmail.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ADB4B12E8C1 for <nfsv4@ietfa.amsl.com>; Mon, 21 May 2018 10:10:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 kB-cTmdLHsC6 for <nfsv4@ietfa.amsl.com>; Mon, 21 May 2018 10:10:04 -0700 (PDT)
Received: from mail-oi0-x22b.google.com (mail-oi0-x22b.google.com [IPv6:2607:f8b0:4003:c06::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5820E12E89C for <nfsv4@ietf.org>; Mon, 21 May 2018 10:10:04 -0700 (PDT)
Received: by mail-oi0-x22b.google.com with SMTP id b130-v6so13625358oif.12 for <nfsv4@ietf.org>; Mon, 21 May 2018 10:10:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=ehRtZsSSaikVFofC/0lI6ruH8N8jb2XOxtD9Nr7cZGM=; b=hdp4bO2ZEpcuSykqpmwHU62ZbVzHlILidfJ9ISQm32tDVFGA+p0lWISLpAo90aUyBJ dHxGAy8aw9SJBDhPik+hSU7j1OFmNxhCa5fj1/gTsp6Orxpyvg7ySXk/Qjr5iSe9jqQm PVNIT9hN4R+5WMEoVDMf+oQIP6u4a5rO/2Hy0L7rvLDFvc52lJLvBnz1RFol5ETZoGUQ i8oKAzhdssxYjC+tzrvwRs6dJYrWIJGnA8eNx9RJ0AIHrqLzKp0k/YiQqzaO25Mrhveu Pf+75k8O9fv2NpEo6/pRFsHX9Nlnid8ASRknTVfJ6f+SHaWLaUz3AH5FddQ1DzVQ+vYU gcsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=ehRtZsSSaikVFofC/0lI6ruH8N8jb2XOxtD9Nr7cZGM=; b=BmpT0x9pS1viZNc8W2kr1MgyfzwpXQ9u32z5Dag1PrBmJ1OwWup60tQTpJpMK/Dx46 EjiErpgDevTnak/TzE4TWFXLZPWZLipuXQjzkvouBwyc4aGq7MmM9mBAK5nzOx/SNH3G tJCLMtc9sNRyxrj+GkyvgV3jeNj89C9kEuXMcGCexR3RlZKw34eXuhEGZeJTMtvfn67X eHwcWe/6Z5wINqGj51s4777PJShNnFsb/1ifRP7gNkXc3tDXE2FJqv3nXaDRapEtCrro 2G0u3UWlaCakYW/XhsDIKIf2ojVvw5hP1hW0FhoHHEAsxftfbtm6AEj6+IDgo8OlkGb2 UAUw==
X-Gm-Message-State: ALKqPwfLB/TFYjAmOWQ6aCiUGRN7tT6rL8f7ebM3bVCRCRUCXuRd47zS WBggqqkPB1pgLfCJ4GsqIjJYB4ce9maw7rShc5M=
X-Google-Smtp-Source: AB8JxZoGKGG5o7I/s8mTpTZ3iSB8toU74ZZM54XAboEMc8iKLgYhhhHVht0Cru55tIW3i+jPdPwHF1/0kOLpgnqHDic=
X-Received: by 2002:aca:1003:: with SMTP id 3-v6mr11549556oiq.317.1526922603551; Mon, 21 May 2018 10:10:03 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.201.55.233 with HTTP; Mon, 21 May 2018 10:10:03 -0700 (PDT)
From: David Noveck <davenoveck@gmail.com>
Date: Mon, 21 May 2018 13:10:03 -0400
Message-ID: <CADaq8jdspqcMkpO=zoLGDWzn91m0oeca9HC2jUJ0ne=LnuLwNg@mail.gmail.com>
To: Tom Haynes <loghyr@primarydata.com>
Cc: NFSv4 <nfsv4@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000626020056cba5f34"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/sR52sheY5HHqymIm47UumSi0oCQ>
Subject: [nfsv4] Review of draft-haynes-nfsv4-delstid-00
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4/>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 21 May 2018 17:10:07 -0000

I have read the document and believe all of the extensions suggested in
this document are worthy of serious consideration by the working group,
but, as we are unsure which of these the working group will choose to
pusue, I don't think we can be sure of the structure of the working group
document(s) that will be pursued.  I hope we will get a better sense of
that at IETF 102.

There are a number of specific issues of presentation that I want to call
your attention to.   As these made it rather difficult to understand the
various individual extensions proposed, I suggest that you take note of
these in preparing further I-D versions.  Some of these might also be
useful in preparing your presentation for IETF 102.

   - There was a lot of uncetainty about features involving delegations
   that results from confusing text that mentions "delegations" but in fact
   only refers to write delegations.  Note that read delegations do not give
   the client the ability to open the file on the client without reference to
   the server but much of the text assumes that returning any delegation will
   make it unnecessary to return an open stateid.
   - It is very confusing that section 2 includes two of your extensions
   without clearly distinguishing between them.  Adding to the confusion is
   the fact that the motivation of the open support attribute is dependent on
   the added flags bits which appear later.  I suggest you give each of the
   proposed extensions its own section, including a statement of the
   motivation for it.  Note that section 4.1 is a good explanation of the need
   for the time-attribute proxying feature but it is hidden and appears after
   the feature is laid out.  The place for the motivation of a feature is near
   the beginning of the description that feature.   After all, you know why
   the feature is needed but you can't expect the reader to have the same
   insight, and it is unrealistic to assume he is going to assimilate the
   protocol details and then correlate them with text explaiing th motivation
   that appears later.
   - The material in sections 5 and 5.1 is distracting.   You need to look
   at RFCs 8275 and 8276 as a model for dealing with XDR extension issues,
   rather than the pNFS RFCs.   I don't see the need for a consolidated XDR
   file such as is appropriate to a pNFS mapping type or a separate licensing
   section.

With regard to the individual exensions, I have, in some cases, issues with
how you have chosen to do the feature while agreeing that these cover
important issues that it is worthwhile to address:

   - With regard to the offline file support, I don't agree with the
   assumption that the server will necessarily have to bring the file online
   in order to open it.  Also, requiring him to do a GETATTR in one compound
   and then decide whether to open the file adds to complexity.  Given that
   you are extending open, you should consider bits that indicate that an
   offline file is not to be opened, or that bringing the file online be
   deferred until the first IO operation.  I still think the attribute is
   useful but don't think it should be the only  piece of offline file support
   specified.
   - With regard to the open-support attribute. I like the general idea.
   It is certainly better than forcing the client to try various bits and deal
   with NOTSUPP errors.  However, I think that basing this on bitmaps adds
   unneded complexity, in that you need separate bit number definitions for
   each existing flag and have the task of adding a bit nmber whenever you
   extend the protocol by adding a flag.  It would be simpler for this
   attribute to parallel the current definition of open and use flags where
   OPEN uses flags.  Also, definition of bit numbers for combinations of flags
   (e.g. _NONE, _BOTH) probably will become unworkable if we add more bits to
   share and deny such as DELETE.
   - With regard to the time-attribute-proxying feature, I don't understand
   why new attributes are needed rather than basing this on  setting the
   attributes that are being proxied.  One option that should be considered is
   extending the union time_how to provide for this case. I also have problems
   with requirements that SETATTR's be done the same in COMPOUND as the
   DELEGRETURN.  I'm not sure why this is needed.  If it is really necessary
   that setting of these attribute needs to be tightly bound to the delegation
   return, an extended delegation return operation should be considered.   If
   you do use SETATTRs, then the stateid would have to be that of the
   delegation.  Given what section 18.30 of RFC5661 currently says about the
   stateid in SETATTR, the very limited discussion of the stateid in that
   section would have to be extended.   The best way to do that would for the
   eventual RFC to include a new section essentially replacing section 18.30
   of RFC5661.