Re: [nfsv4] Issue 21: pnfs EOF handling

Garth Goodson <goodson@netapp.com> Mon, 10 July 2006 19:48 UTC

Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1G01kS-0006e8-QK; Mon, 10 Jul 2006 15:48:52 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1G01kR-0006e3-FR for nfsv4@ietf.org; Mon, 10 Jul 2006 15:48:51 -0400
Received: from mx2.netapp.com ([216.240.18.37]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1G01kQ-0003Hf-62 for nfsv4@ietf.org; Mon, 10 Jul 2006 15:48:51 -0400
Received: from smtp2.corp.netapp.com ([10.57.159.114]) by mx2.netapp.com with ESMTP; 10 Jul 2006 12:48:47 -0700
X-IronPort-AV: i="4.06,225,1149490800"; d="scan'208"; a="392162589:sNHT19536300"
Received: from svlexc02.hq.netapp.com (svlexc02.corp.netapp.com [10.57.157.136]) by smtp2.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id k6AJmZqt003349; Mon, 10 Jul 2006 12:48:47 -0700 (PDT)
Received: from exsvlrb01.hq.netapp.com ([10.56.8.62]) by svlexc02.hq.netapp.com with Microsoft SMTPSVC(5.0.2195.6713); Mon, 10 Jul 2006 12:48:35 -0700
Received: from magenta.hq.netapp.com ([10.56.11.84]) by exsvlrb01.hq.netapp.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 10 Jul 2006 12:48:34 -0700
Received: from [10.58.48.51] ([10.58.48.51]) by magenta.hq.netapp.com with Microsoft SMTPSVC(6.0.3790.0); Mon, 10 Jul 2006 12:48:33 -0700
Message-ID: <44B2AF08.7030703@netapp.com>
Date: Mon, 10 Jul 2006 12:48:24 -0700
From: Garth Goodson <goodson@netapp.com>
User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Benny Halevy <bhalevy@panasas.com>
Subject: Re: [nfsv4] Issue 21: pnfs EOF handling
References: <F222151D3323874393F83102D614E05502B66F5B@CORPUSMX20A.corp.emc.com> <44B27D5F.90604@panasas.com> <44B28033.3000308@netapp.com> <44B296DF.6030905@panasas.com>
In-Reply-To: <44B296DF.6030905@panasas.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 10 Jul 2006 19:48:34.0351 (UTC) FILETIME=[D41023F0:01C6A459]
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 52f7a77164458f8c7b36b66787c853da
Cc: Black_David@emc.com, nfsv4@ietf.org
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/nfsv4>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
Errors-To: nfsv4-bounces@ietf.org

Benny Halevy wrote:
> Garth Goodson wrote:
> 
>>
>>
>> Benny Halevy wrote:
>>
>>> Black_David@emc.com wrote:
>>>
>>>> The simplest fix may be to only issue CB_SIZECHANGED for an explicit
>>>> SETATTR,
>>>> and never for any implicit EOF change (write or commit).  A more
>>>> comprehensive
>>>> approach would be to add a "why" flag to CB_SIZECHANGED to distinguish
>>>> implicit extension from explicit length set, although I can't 
>>>> immediately
>>>> figure out why a pNFS client needs to see an implicit EOF change for 
>>>> file
>>>> extension. 
>>>
>>>
>>>
>>>
>>> [snip]
>>>
>>> David, In the objects case, when the file is striped over multiple 
>>> objects and the
>>> client gets a read beyond its notion of the EOF it has to go read 
>>> from storage
>>> to determine the current file length or issue a GETATTR to the MDS.
>>> If the file is holey and was sparsely written by another client 
>>> beyond this client's
>>> notion of the EOF it is possible that the client will get a short 
>>> read from one
>>> of the objects but there's more data in higher offsets on other objects.
>>> In order to make this data visible the client needs to know the new EOF.
>>>
>>> Benny
>>>
>>
>> Same for files.  Alternatively, extending writes could extend the 
>> files on the data servers.
> 
> 
> This has a similar race between writers since the SETATTR operation 
> would need an "extend only"
> flag to make sure nobody else's data is being truncated.
> 

I was thinking it could be implemented by the backend protocol, which as 
you say, would have to have some way of serializing writes and truncates...

-Garth

>>
>> -Garth
>>
>>>
>>> _______________________________________________
>>> nfsv4 mailing list
>>> nfsv4@ietf.org
>>> https://www1.ietf.org/mailman/listinfo/nfsv4
>>
>>
> 

_______________________________________________
nfsv4 mailing list
nfsv4@ietf.org
https://www1.ietf.org/mailman/listinfo/nfsv4