Re: [nfsv4] Barry Leiba's No Objection on draft-ietf-nfsv4-minorversion2-40: (with COMMENT)

Tom Haynes <thomas.haynes@primarydata.com> Mon, 25 January 2016 20:00 UTC

Return-Path: <thomas.haynes@primarydata.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E97AA1A0029 for <nfsv4@ietfa.amsl.com>; Mon, 25 Jan 2016 12:00:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_PASS=-0.001] autolearn=unavailable
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 WQE7kP3rDkwt for <nfsv4@ietfa.amsl.com>; Mon, 25 Jan 2016 12:00:00 -0800 (PST)
Received: from mail-pf0-x230.google.com (mail-pf0-x230.google.com [IPv6:2607:f8b0:400e:c00::230]) (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 8445D1A00CA for <nfsv4@ietf.org>; Mon, 25 Jan 2016 11:59:56 -0800 (PST)
Received: by mail-pf0-x230.google.com with SMTP id e65so87260481pfe.0 for <nfsv4@ietf.org>; Mon, 25 Jan 2016 11:59:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=primarydata-com.20150623.gappssmtp.com; s=20150623; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=UkfceCer4VkG75ejbzhk/jtSQStXXDbOWwcboRsue4s=; b=dkzv+LQEoAYZ75scE2T17EioMobjLhEFiKXflWt09vyW8CapfOmpuoDVjEj+AtPPCK cxR3Jvzoe+/Fu5luVjo+Z1ADLFwPAtMSyCPf14e5D5RNwr1z9bTekuyr0VM4tk6s7l7p X5C0/ed4vPYq2+gljTvd5Fir8cxHTv3iK7dQAu27y63K9onE2WGLvEmm9QgbkS+r/wEL +DoOF8I3iyJ+xjoia2M31URF6N5hl/RelVNX2GhyYLT9FuCyyI0Y+G3kZUmVlFM1wmYy pLcz9iTOo/Z0RY5p5uPdpzUPwN/296DJKxJF7g6fZY5yKqD6KQcLigR0S+Ap+YS/XV0D iyWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=UkfceCer4VkG75ejbzhk/jtSQStXXDbOWwcboRsue4s=; b=fa+Ml4RBLKP1Chn5y1fHUdrCLXPfMdMGtfDOSorcjxa2gCL142b0FlBnPyedGhgG9q 3ggmlD3U/AWrWLPsD0oxdQcTj3SDPTd2uZpEhqX72HFuReFqNgmi5/Y9tnxS1W/TxpMr USFz0EsKd/mEdbfevgYllkrgTlyxEtHCjVSKSomfqXL63DPE3klou/ZSoLuyQZF+/VVz ZXLwodwEFhpWsziqtnScN75u9xSd3a8LHxDZMQa1LrvqPr7Ho4HNSSNPQr1a7ivl/UI3 cRcumTZFmdoX4z4KANXd3IAIP62lcmkOYxlOKEML6yp4eZXwN2C750buGEgXCljSPDJF Zifw==
X-Gm-Message-State: AG10YORakfIT1fToYeet1Z0ll+p6cgGcWNklSDS1BW/TzGUJQSERKovaEucQ+ysnjE1pGSx+
X-Received: by 10.98.71.136 with SMTP id p8mr28451200pfi.131.1453751996117; Mon, 25 Jan 2016 11:59:56 -0800 (PST)
Received: from kinslayer.corp.primarydata.com (63-157-6-18.dia.static.qwest.net. [63.157.6.18]) by smtp.gmail.com with ESMTPSA id x23sm30569007pfi.42.2016.01.25.11.59.54 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 25 Jan 2016 11:59:54 -0800 (PST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Tom Haynes <thomas.haynes@primarydata.com>
In-Reply-To: <20160120235314.21900.95567.idtracker@ietfa.amsl.com>
Date: Mon, 25 Jan 2016 11:59:54 -0800
Content-Transfer-Encoding: quoted-printable
Message-Id: <1862F412-1831-4897-8FDB-FE30A41E072C@primarydata.com>
References: <20160120235314.21900.95567.idtracker@ietfa.amsl.com>
To: Barry Leiba <barryleiba@computer.org>
X-Mailer: Apple Mail (2.3112)
Archived-At: <http://mailarchive.ietf.org/arch/msg/nfsv4/fzRBOd4nX3R3wT5CHt3KSPoVUGg>
Cc: nfsv4-chairs@ietf.org, The IESG <iesg@ietf.org>, nfsv4@ietf.org, draft-ietf-nfsv4-minorversion2@ietf.org
Subject: Re: [nfsv4] Barry Leiba's No Objection on draft-ietf-nfsv4-minorversion2-40: (with COMMENT)
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.15
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, 25 Jan 2016 20:00:02 -0000

Hi Barry,

Thanks for the comments!

Responses inline:

> On Jan 20, 2016, at 3:53 PM, Barry Leiba <barryleiba@computer.org> wrote:
> 
> Barry Leiba has entered the following ballot position for
> draft-ietf-nfsv4-minorversion2-40: No Objection
> 
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
> 
> 
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
> for more information about IESG DISCUSS and COMMENT positions.
> 
> 
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-nfsv4-minorversion2/
> 
> 
> 
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> I appear to be in the minority here, in that I *did* understand this
> document's place relative to 4.0, and 4.1.  Still, I agree that
> clarifying that is really important, and I'll suggest a specific
> clarification in Section 1.1):
> 
> OLD
>   This document describes the NFSv4.2 protocol.  With respect to
>   NFSv4.0 and NFSv4.1, this document does not:
> NEW
>   This document describes the NFSv4.2 protocol as extensions to
>   the specifications of NFSv4.0 and NFSv4.1. Those specifications
>   remain current and form the basis for the additions defined
>   herein.  It is necessary to implement those before adding
>   NFSv4.2 to the implementation.
> 
>   With respect to NFSv4.0 and NFSv4.1, this document does not:
> END

As noted in the reply to Dave Noveck, I took his counter-proposal.



> 
> -- Section 1.2 --
> 
>   A major goal of the design of NFSv4.2 is to take common local file
>   system features and offer them remotely.
> 
> This sounds like it means to be a change in goals relative to 4.0 and
> 4.1.  I think it would fit better to say it this way, and would add to
> the clarification above:
> 
> NEW
>   A major goal of the enhancements provided in NFSv4.2 is to take
>   common local file system features that have not been available
>   through earlier versions of NFS, and to offer them remotely.
> END

I’m fine with that change.


> 
> -- Section 6.1 --
> 
>   Hole:  A byte range within a Sparse file that contains regions of all
>      zeroes.  A hole might or might not have space allocated or
>      reserved to it.
> 
> I'm wondering about the "regions of" here: If I have a byte range that
> contains two regions of all zeroes and something that's not all zeroes in
> between those two regions, I do not have a (single) hole, do I?


No, you have two.


>  Why does
> this say "regions of”?

When I read it as you’ve laid it out, I agree with you.

I thought of taking off the plural, but I like this better:

  Hole:  A byte range within a Sparse file that contains all
     zeroes.  A hole might or might not have space allocated or
     reserved to it.



> 
> And a question: Is there any disctinction between a byte-range within a
> sparse file that happens to contain all zeroes... and one that is
> recorded in metadata as being all zeroes?

As far as the local filesystem, yes.

As far as transferring across the wire, no.


>  Can some file systems write a
> region of zeroes without "knowing" that they have created a hole?  Does
> this distinction matter here?


The way it matters is that we know we do not have to transfer the data across the wire.


> 
> -- Section 6.2.1 --
> 
>   Note that as the client has no a priori
>   knowledge of whether a hole is present or not
> 
> (No need to respond to this; take it or leave it as you please.)  I have
> a general preference for avoiding Latin terms, as they're not properly
> understood by everyone.  In this case, too, "a priori" has a connotation
> that goes beyond the literal Latin translation.  I think it'd be better
> to word this as "Because the client does not know in advance whether a
> hole is present or not”.

I’m fine with not appearing so stiff. :-)

Taken.

> 
>   READ_PLUS extends the response with a new arm representing holes to
>   avoid returning data for portions of the file which are initialized
>   to zero and may or may not contain a backing store.  Returning data
>   blocks of uninitialized data wastes computational and network
>   resources, thus reducing performance.
> 
> It wouldn't be "uninitialized" data, would it?  It'd be zeroes.  I think
> you might just want to say "Returning actual data blocks corresponding to
> holes", yes?


Yes


> 
>   By contrast, if a READ_PLUS occurs in the middle of a hole,
>   the server can send back a range which starts before the offset and
>   extends past the range.
> 
> I'm not sure how a range can extend past itself ("a range which ...
> extends past the range").  I think you just want to say "a range
> representing the hole.”


How about this?

  By contrast, if a READ_PLUS occurs in the middle of a hole,
  the server can send back a range which starts before the offset and
  extends past the requested length.


> 
> -- Section 6.2.2 --
> 
>   DEALLOCATE can be used to hole punch, which allows the client to
>   avoid the transfer of a repetitive pattern of zeros across the
>   network.
> 
> This is the first time you've mentioned DEALLOCATE where I think I
> understand that it is a way of doing a WRITE wherein the client sends the
> representation of a hole to the server, rather than actually doing a
> WRITE.  (I had previously thought it was used to tell the server to undo
> an ALLOCATE, but it now seems that they are related things, but are not
> duals.)
> 
> You might want to be more clear about this here, especially if what I say
> in the previous paragraph is wrong.

No, it is another form of WRITE and it is why we did not provide WRITE_PLUS.


Does this work better for you?


        The client can use the DEALLOCATE operation on a range
        of a file as a hole punch, which allows the
        client to avoid the transfer of a repetitive pattern of zeros
        across the network. This hole punch is a result of the
        unreserved space returning all zeros until overwritten.



> 
> -- Section 7 --
> 
>   Lesser space MAY be
>   consumed for backups after block deallocation.
> 
> I don't think this is a proper 2119 MAY; it sounds like a statement of
> fact, not a protocol option.
> 
> 

Agreed.