[nfsv4] preliminary review of draft-cel-nfsv4-reminv-design

David Noveck <davenoveck@gmail.com> Thu, 04 August 2016 14:48 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 71E4C12B014 for <nfsv4@ietfa.amsl.com>; Thu, 4 Aug 2016 07:48:38 -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 NOzbzafiMOZ1 for <nfsv4@ietfa.amsl.com>; Thu, 4 Aug 2016 07:48:36 -0700 (PDT)
Received: from mail-oi0-x22a.google.com (mail-oi0-x22a.google.com [IPv6:2607:f8b0:4003:c06::22a]) (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 DD31B12D0C9 for <nfsv4@ietf.org>; Thu, 4 Aug 2016 07:48:35 -0700 (PDT)
Received: by mail-oi0-x22a.google.com with SMTP id k131so16831617oib.1 for <nfsv4@ietf.org>; Thu, 04 Aug 2016 07:48:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:cc; bh=yggs52Lx+M/5/QF+YGo1OGqwumuelKKtX9QCTtIT2lc=; b=RBfx6uh30PQpFXpOk+NVehunUOsTJCYRlCCEnk9bHksabIahpb+WXUFwSwPRs89ZQc oAm/hfYMNrNjQbv6TJTI/JJPIFRnMQCcYvSq7mARsIzcFnCBgdc4P2o3F5vnCcyqQSg+ 6pMa1N099pwVeBhR00WTd+TuTHCYC6evuzrUeUTNJvwSI91RUK+jIMWNQ7ErtuTtsqno c9sOB9IoEQQ13GQ1vZrM0mqRhv5/4KuzgSuNDqT1kH4LwImW7PONJ72H03WIMsn/D0ue K9Wm+xsLVwnFCXqFqjf3+LclaojibENI9t1hElpAHlgYdWMM6t5Rgf3IPHRqGtQatUyz Fawg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=yggs52Lx+M/5/QF+YGo1OGqwumuelKKtX9QCTtIT2lc=; b=cE4C0xy9z39fnR3mc3ZAyh3MEp487K4+NEZKozhg0JyyI7Wgu0Mf9wcku/m1cauK/d VVqKLY3sa1EhBgCbrFzAEsxVgFj9LD453oK/Ir8LrmAHWZYprtXjPLx/CUQGouKAFsQF ephfM9KdjwLYGcb8y97wAwqY8+IvVy7yTKvNJaA/S80uID5xuNvaHNrimTQ6ptggUaUW 8ixQLNE8PYUT98Jk3idCJ7mH0PWA1Oqzj7KBHAUZg+lW+FruQVy4b4LcuM+UKdjJHd2u 52NWk0JwlNd196mKMPwfG5rmm7A1balqzPFTLOw3HyaihP5rAejUoDXKVTO3aylUV+ET WV+g==
X-Gm-Message-State: AEkoouvFjF3vDtLpa839Phxt3gKL7DdLfNXm8DKs1tPaPIEI98IA5OfZgiJDhUUUDgzGHV+nDh5nhLYeVDTt0w==
X-Received: by 10.202.4.196 with SMTP id 187mr8732552oie.128.1470322115289; Thu, 04 Aug 2016 07:48:35 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.182.20.72 with HTTP; Thu, 4 Aug 2016 07:48:34 -0700 (PDT)
From: David Noveck <davenoveck@gmail.com>
Date: Thu, 04 Aug 2016 10:48:34 -0400
Message-ID: <CADaq8jdor+Ju+F=ZBcV6zY3PWJerpM_sDtuTPy9EZTo6hymFPQ@mail.gmail.com>
To: Chuck Lever <chuck.lever@oracle.com>
Content-Type: multipart/alternative; boundary="001a113c0392632a860539400b32"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/p_R7f0ddv6Bj5Q22y7WiqlOUn64>
Cc: "nfsv4@ietf.org" <nfsv4@ietf.org>
Subject: [nfsv4] preliminary review of draft-cel-nfsv4-reminv-design
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.17
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: Thu, 04 Aug 2016 14:48:38 -0000

The first issue concerns the structure rpcrdma2_chunk_lists.  Although this
structure is defined in draft-cel-nfsv4-rpcrdma-version-two-01, there is
nothing that uses it.  The structure that RDMA_MSG and RDMA_NOMSG include
is rpcrdma2_chunks, which is not defined in the XDR.  It appear that this
issue has existed since draft-cel-nfsv4-rpcrdma-version-two-00.

Although that issue can and should be fixed, I think we need to have a more
complete discussion of the extension model for version two and for
RPC-over-RDMA as a whole in the near term.

As I understand things, the original intention was that Version Two be a
compatible extension of Version One.  Now, with the inclusion on the
direction indication added in -01, and now the R-key proposed in
reminv-design, Version One and Version Two messages will be
OTW-incompatible, and I think are better off with a model in which Version
Two consists of  subset which equal to Version One and a set of additions,
primarily optional.  I think we should diverge from that model only if the
benefits are sufficiently important to justify this discontinuity.

With these changes, the implementation barrier to convert a Version One
implementation to be compatible Version Two becomes significant.  I think
we would be better off, if most Version One implementations could be made
compatible with very easily, making the decision to do so more or less
automatic.

To get back to remote invalidation, I would prefer your section 3.3 as a
baseline to be made accessible with no XDR changes in the base Version
Two.  The additional functionality provided by 3.4, while desirable, is not
of sufficient benefit to justify a non-compatible XDR change.  I feel that
this functionality should be available as an OPTIONAL extension.

When I say that it should be an "OPTIONAL Extension", I don't mean to imply:

   - That it needs to be implemented as a subcase of RDMA_OPTIONAL.
   - That it should be documented in a separate document, as opposed to
   being documented (eventually) in draft-ietf-nfsv4-rpcrdma-version-two.

What I do mean is that we should define new message type for extensions (so
that we maintain Version One as a subset of  Version Two) and that we
should (not "SHOULD" :-) make these new message types "OPTIONAL" (in the
RFC2119 sense).  I can see, if there is sufficient reason, making an
extension REQUIRED, but I don't see a reason to change an existing message
type in an incompatible way.

One way to do this is to define new message types RDMA_MESSAGEX and
RDMA_NOMSGX which include direction and rdma_handle but there are other
ways to do this.  To make it easier to determine whether support for
OPTIONAL message types is present, we could define a transport
characteristic/attribute that provides a bit mask of supported message
types.