Re: [nfsv4] New version of sparse draft (draft-hildebrand-nfsv4-read-sparse-01.txt)

"J. Bruce Fields" <> Thu, 30 September 2010 17:55 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id D14983A6E3B for <>; Thu, 30 Sep 2010 10:55:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.235
X-Spam-Status: No, score=-2.235 tagged_above=-999 required=5 tests=[AWL=-0.236, BAYES_00=-2.599, J_CHICKENPOX_47=0.6]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id yvm4WgwdETfc for <>; Thu, 30 Sep 2010 10:55:18 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 10DA23A6E27 for <>; Thu, 30 Sep 2010 10:55:01 -0700 (PDT)
Received: from bfields by with local (Exim 4.71) (envelope-from <>) id 1P1NLy-0003O3-Uc; Thu, 30 Sep 2010 13:55:34 -0400
Date: Thu, 30 Sep 2010 13:55:34 -0400
To: "Matt W. Benjamin" <>
Message-ID: <>
References: <> <>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <>
User-Agent: Mutt/1.5.20 (2009-06-14)
From: "J. Bruce Fields" <>
Subject: Re: [nfsv4] New version of sparse draft (draft-hildebrand-nfsv4-read-sparse-01.txt)
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: NFSv4 Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 30 Sep 2010 17:55:20 -0000

On Thu, Sep 30, 2010 at 12:06:30PM -0400, Matt W. Benjamin wrote:
> Hi,
> """
> In addition, when a data server is returning a
>    READ4reshole structure, it should still contain the offset and length
>    of the next allocated block in the file, even if that block is not
>    located on that particular data server.
> """
> I had the impression that there could be valid pnfs implementations for which this might be an onerous requirement.  Is that not the case?

There's no real reason I can see that the server couldn't return an
earlier offset if it wanted to: e.g. if it knows that the file is
unallocated up to offset X, but doesn't know about offsets after that,
then it could return offset X, length 0.  It'd be up to the server to
make the tradeoff between the expense of returning a smaller hole vs.
querying other server nodes or recalling layouts.

I think the draft could avoid this kind of confusion by avoiding
referring to allocated/unallocated blocks, and instead just treating
READ4reshole as a simple optimization for transferring long sequences of

(Well, it would still make sense to mention block allocation as
background motivation.)