[nfsv4] Review of draft-cel-nfsv4-rpcrdma-cm-pvt-msg-00

David Noveck <davenoveck@gmail.com> Mon, 06 March 2017 11:47 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 B233612964B for <nfsv4@ietfa.amsl.com>; Mon, 6 Mar 2017 03:47:15 -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, RCVD_IN_DNSWL_NONE=-0.0001, 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 tIi6Ff829_de for <nfsv4@ietfa.amsl.com>; Mon, 6 Mar 2017 03:47:13 -0800 (PST)
Received: from mail-ot0-x22c.google.com (mail-ot0-x22c.google.com [IPv6:2607:f8b0:4003:c0f::22c]) (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 6FF0A129460 for <nfsv4@ietf.org>; Mon, 6 Mar 2017 03:47:13 -0800 (PST)
Received: by mail-ot0-x22c.google.com with SMTP id x37so66092416ota.2 for <nfsv4@ietf.org>; Mon, 06 Mar 2017 03:47:13 -0800 (PST)
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=XYtfCv9kSoMZl8mCGmRcqxTnP2sMowqUfxlh0SXjUZo=; b=qEKTC9Bo0IArOT2kCuHAlqCNFzyevPCF5evsVOq4JbNTZ2bZCFE3tcV5jS247/hRsj RZff7Jlcd6uqlNf+bE/Svv3diOHWmL+CedhUpyPdjoCG+Hcs4zmz9fkZXOi6yH7syKwf ZgeV0D6zkVBz3ouqQYLnx7vhc6okUTACRJ1ow+6Rdj2YUnv1R8uNUGenceCL2YEcPDnb IrZf4adLRt9Bzx+QTroUseh4VCxgeAF3dPsGs0QlGQwkAA5KHD/xtLg/bJ3mFfK0IUic zk9xzWLbHM2rynLQTepfQ1QWr+xP6v7j2575IxhXYhqQYo4HXg0tGvWxemO8YG3EXwom T0Rw==
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=XYtfCv9kSoMZl8mCGmRcqxTnP2sMowqUfxlh0SXjUZo=; b=dgzxnsyCy5lT1flfa7CCCS+LR50jZFTBVST4AdwHoA6mpxYGzuLJb3ahTfP9ytW+M4 YbcoLvZQ/ge44qlStF3R4YSnnmmFbYwmI/107MbaVhCc70C8LbZrXBUXfOGJzdW8pf4r ga2Q760zM1u48mb87QOwyG1xmnh2ANN9Z+VKzIsfn9DjKUs4yqFUlhQVowJYDHmHRNY7 FGWfrzScTvOF4YGZXVHvMNabnjAUD2ShKYTrp5vxyDUMtWg9bVJprxf+AOWV8dS1gG0d AZZQFqociJUN98mdao9WDnk6TY/7cJodyfwZwbleExkYK6DBE2zLcGqijcJYAvHOCMLp hUMA==
X-Gm-Message-State: AMke39kwVNeQxTE1NLZDLB15AaB2ELqDrDOgS5bRTbXsnwM5/ydWrew/lwdndE1aY0zDLGqc9Fl7OnrKuq8zvQ==
X-Received: by 10.157.60.237 with SMTP id t42mr8769144otf.224.1488800832422; Mon, 06 Mar 2017 03:47:12 -0800 (PST)
MIME-Version: 1.0
Received: by 10.182.137.200 with HTTP; Mon, 6 Mar 2017 03:47:12 -0800 (PST)
From: David Noveck <davenoveck@gmail.com>
Date: Mon, 06 Mar 2017 06:47:12 -0500
Message-ID: <CADaq8jdMkau_t-RW4d5VQz29tBmxqEONi1Rf_tkhOeuH6mVJ9w@mail.gmail.com>
To: Chuck Lever <chuck.lever@oracle.com>
Content-Type: multipart/alternative; boundary="94eb2c1902c6c208e7054a0e7442"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/u6PFHAKDO0_qewg9uT6uFXsG4xg>
Cc: "nfsv4@ietf.org" <nfsv4@ietf.org>
Subject: [nfsv4] Review of draft-cel-nfsv4-rpcrdma-cm-pvt-msg-00
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: Mon, 06 Mar 2017 11:47:15 -0000

*General Comments*

*Purpose of Review*

The purpose of this review is to help the working group decide on the
appropriate next steps to take regaring this document and more particularly:

   - Whether it is in appropriate to convert this document to be a working
   group document.
   - Whether the working group needs any changes in this document to allow
   it to become a working group document.
   - What other changes should be considered as important to make in this
   document to allow it to help the working group meet its needs with regard
   to RPC-over-RDMA performance which are summarized in the first few
   paragraphs of Section 1 of the document.

*Context of the Review*

Previously I had been assuming that addressing our immediate performance
issues, required faster work on Version Two, necessitating a prompt advance
of *draft-cel-nfsv4-rpcrdma-version-two *to working-group document status.

However, the simpler nature of a  transition to using the mechanism laid
out in this document suggests the possibility of addressing our performance
issues in the context of Version One.  This would enable a more measured
approach to Version Two, given that the prime performance concerns can be
addressed in a Version One context.

*Overall Evaluation of Document*

This document is in good shape and the issues within it should pose no
difficulty to it becoming a working group document.  It is relatively far
along so that the path to getting it to be ready for an eventual WGLC
should be relatively short.

However there is a complex of issues that would benefit from a period of
working group discussion.

These issues include:

   - Whether its current status of Experimental is appropriate given its
   expected use or whether it needs to be converted, at some point, to be
   standards-track.
   - Whether there needs to be some adjustment in the declared purpose on
   this document, to address the issues raised below in *1.  Introduction*.

*Suggestions Regarding Procedure*

I am assuming that Chuck will respond with his views regarding the issues
raised in this review including his view regarding the basic issue of
converting this document to working-group.  At that point, I would expect
Chuck to make some suggestion about how to proceed.

With regard  to my own expectations about an appropriate procedure:

   - Chuck could at that point propose that the document be made into a
   working group document.
   - Chuck could, as part of that request, suggest an appropriate period
   for working group comments, and indicate his intentions regarding issues
   related to the purpose of that document and the document's current status
   as experimental status.
   - After completion of the comment period, we could quickly convert the
   document to working-group status as-is, without addressing any of the
   issues noted in the review.  I am anticipating that this sort of deferral
   might be required since Chuck might be occupied with issues relating to
   rfc5666bis, bidirection, and rfc56667bis.

*Comments by Section*

Note that most of these comments are not directly connected with the
original purpose of the review, determining whether  this document is an
appropriate state to be  converted to a working group document.   During
the ensuing  complete review, I noted  everything that I found,
irrespective of whether the issue had to be addressed as part of the change.

As a result, many of the comments below relate only indirectly to the
original purpose of the review and serve mainly to point to issues that
will need to be addressed as the document moves forward toward WGLC.

*Abstract*

In the second sentence, suggest replacing "can" by "could".

With regard to the last sentence, I'm not sure what it means and why it is
there.

*Requirements Language*

I know that the author didn't really write this sentence and that I'm
probably the first person to actually read it.  Nevertheless, I feel the
fact that it actually appears in the document and seems to make relevant
statement makes it fair game.

I'm aware that I may be trying people's patience in noting this, but ask
the readers' indulgence as I point out that RFC2119 concerns the use of
these terms in standards-track documents and it isn't clear exactly what
they are to mean in this document, if the current status is maintained.

*1.  Introduction*

Normally, in per-section comments I proceed in order but in this case, the
nature of the issue forces me to start at the end of the section.

The nature of the last sentence of the last paragraph is such that it needs
to be changed along with a serious rethink of the purpose of this
document.  In particular,

   - If this message format is only to be used in future transport
   versions, then what has been said about how challenging it is to extend
   version One becomes beside the point.
   - Future versions of the protocol might well have their own ways of
   addressing the issues cited at the beginning of this section

In my view, it is appropriate to rewrite the last two sentences of the last
paragraph as follows:

The purpose of this message format is to allow Version One
implementations to exchange information allowing them to resolve the
shortcomings discussed above, while remaining compatible with existing
implementations. Future versions of RPC-over-RDMA may use the same
mechanism or may choose to address these issues in different ways.

The document probably needs to be changed from Experimental to
standards-track. However:

   - I'm not sure if this is necessary since I don't understand how an
   Experimental RFC differs from a Proposed Standard (supposedly "just a
   proposal").
   - I am pretty clear that if this change is necessary, it need not be
   done immediately and should pose no obstacle to this becoming a working
   group document.

The fundamental issue that needs to be addressed is the purpose of the
document. If this is not addressed:

   - It doesn't seem to me that the document has any point since the
   relevant experimentation has already been done.
   - Version One would have no defined means of addressing the performance
   issues we have been discussing. leaving the task to Version Two.

We now return to the start of the section.

I suggest rewriting the last sentence of the second (unbulleted) paragraph
as follows:

However, [I-D.ietf-nfsv4-rfc5666bis] eliminated support for this
protocol making it unavailable for this purpose.

With regard the third (unbulleted) paragraph, I have problems with the word
"challenging". The issue is that nobody knows what this means (Are some
people wondering why this is a problem :-) . I think the intention is to
say it is impossible, which it is given the restrictions that have been
placed on the Version One XDR. In any case, I don't think we have to prove
that this infeasible and simply state that it will not be done. So, I
suggest rewriting this paragraph as follows:

Version One has no means of providing an extension mechanism that
allows interoperability with existing implementations.  As a result,
another out-of-band mechanism is required to help relieve these
limitations for RPC-over-RDMA Version One implementations.

*2.1.  Inline Threshold Size*

There are a couple of minor issues in the last paragraph:


   - In the first sentence, suggest replacing "Thus" by "To enable the
proper size to be determined,"
   - The use of the terms "requester" and "responder" suggests that
there might be separate limits for each direction of use.  Suggest
replacing "requester" by "client" and "responder by "server".

The other issue is more subtle.  At first, it appeared that the word
"MUST", while natural, was overkill.  For example, consider a server that
was prepared to allocate buffers of a maximum of 4K in size but was
prepared to split them up into 2K or 1K buffers. In that situation, it
isn't clear why, for example, the fact that the client could send a 3K
request should essentially force the server to allocate 3K buffers wasting
25% of the buffer space, or why choosing 2K buffers might raise
interoperability issues.

Also, it isn't clear:


   - Why the fact that a client might send a 3K request in rare
circumstances is relevant to he choice of the server's inline buffer
threshold
   - How the client could possibly know how big its requests might be
since the client, per se, is not in charge of that.
   - How, given the reply size estimation issues we have been
wrestling with rfc5667bis the server can determine the maximum size of
replies that might be sent.

The following suggested revision aims:

   - To give the server a meaningful role in determining the
receiver's buffer size, without promising more than can be delivered.
   - To make it clearer why "MUST" is the appropriate choice here
   - To address the minor issues noted above

In any case, I suggest replacing the current last paragraph by the following:

To enable the proper size to be determined, each peer advertises:


   - a target message size that it could use effectively in sending
messages.  Note that this size does not include space for data items
placed directly although it would include space for the associated
chunk headers an the rest of RPC-over-RDMA headers.
   - the largest size buffer it is prepared to allocate to receive messages..

In order for each peer to determine its inline threshold in a manner
consistent  with the value assumed by the other peer, each needs to
use a common algorithm known to other peer, and based only on the
private data known to both.  In order to arrive at these consistent
values:


   - The client MUST use the smaller of its target send size and the
server's maximum receive buffer size as its value for the server's
inline threshold, while the server uses the same procedure to arrive
at the same value.
   - The server MUST use the smaller of its target send size and the
client's maximum receive buffer size as its value for the client's
inline threshold, while the client uses the same procedure to arrive
at the same value.

*2.2.  Support for Remote Invalidation*

My only concern in this section concerns the status of
*draft-cel-nfsv4-reminv-design*, which is currently a private
informational draft.

If *draft-cel-nfsv4-rpcrdma-cm-pvt-msg *is to become an RFC, the only
point of the exercise in my opinion, we have two options with regard
to
*draft-cel-nfsv4-reminv-design*:


   - Making it first a working group document and eventually an
Informational RFC.  Note that this is the type of exploratory document
that, typically, we do not bother to publish as an RFC.
   - Eliminate the reference by prov using a brief targeted
introduction to the subject focused on defing the trms used, taking
into account all the references in this document.

*3.  Private Data Message Format*

In the last sentence, suggest replacing "requesters and responders"
by "clients and servers".

I recall hearing that there are some implementions with rather tight
restrictions on the size of this private data.  if my recollection is
correct, something shoul be said about this issue.

*3.1.  Fixed Mandatory Fields*

In light of RFC2119's statement that these terms are to be used
"sparingly", suggest replacing "MUST" in the first sentence by "is
to".

Under Version,  suggest rewriting the second sentence as follows:

The value "1" in this field indicates that exactly eight octets are
present, that they appear in the order described in this section, and
that each has the meaning defined in this section.

Under Flags, suggest revising 'boolean flags" as it appears redundant.
Possible replacements are "boolean values" and "flag bits".

Under Send Size,  suggest rewriting the first sentence as follows:

This 8-bit field contains an encoded value specifying a target message
size that the peer could use effectively in sending messages using
RDMA Send.

Under Receive Size,  suggest rewriting the first sentence as follows:

This 8-bit field contains an encoded value specifying the largest
receive buffer size this peer is prepared to allocate.  Such buffers
are used to receive messages sent using RDMA sends.

*3.1.2.  Inline Threshold Encoding*

Suggest replacing the section title by "Message Size Encoding".

In the first sentence, suggest replacing "Inline threshold sizes" by
"Message and buffer sizes".

In the last sentence, suggest replacing "complementary operations" by
"a complementary set of operations"

*3.2.  Extending The Private Message Format*

In the first sentence, suggest:


   - Replacing "to add" by "by adding"
   - Replacing "to make us of one of" by "making use of"

In the second sentence, suggest:


   - Replacing "allocated" by "to be allocated"
   - Replacing "are defined" by "defined".

In the third sentence, suggest replacing "must also be provided" by
"is to to be provided as well".

with regard to the last sentence, since at appears that the document
is unikely to still be "a personal draft in the Experiemental
category" a replcement nees to be provided.  Suggest the following
sentence:

Such situations are best addressed by specifying the new format in a
document updating this one.

*4.  Interoperability** Considerations*

In the second sentence, suggest replacing "assume" by "act as if".

In the third sentence, suggest replacing "behaves" by "is to behave".

*7.2.  Informative References*

With regard to the reference to *draft-cel-nfsv4-rpcrdma-cm-pvt-msg-00*, it
is probably the case that if this reference is to remain in the document,
it should be converted to be normative, since the terms it defines are
central to understating the function of this document.

With regard to the IB-IBTA reference, the following issues need to be
addressed:

   - The URL currently there gets you to the appropriate web site but not
   to the referenced document
   - the version mentioned is no longer current and does not appear to be
   present on the web site.