linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Benny Halevy <bhalevy@panasas.com>
To: Andy Adamson <andros@netapp.com>
Cc: Suchit Kaura <skaura-Pe6u2o1+k2hBDgjK7y7TUQ@public.gmane.org>,
	linux-nfs@vger.kernel.org
Subject: Re: 4.1 client - LAYOUTCOMMIT &amp; close
Date: Tue, 06 Jul 2010 16:23:02 +0300	[thread overview]
Message-ID: <4C332E36.30307@panasas.com> (raw)
In-Reply-To: <EEBF0A56-92A7-4045-B483-C77A2CEFC086@netapp.com>

On Jul. 06, 2010, 16:12 +0300, Andy Adamson <andros@netapp.com> wrote:
> 
> On Jul 2, 2010, at 1:08 PM, Suchit Kaura wrote:
> 
>>> We are seriously considering removing the
>>> layoutcommit call from the file layout client.
>>> From the RFC5661:
>> For block/volume-based layouts, LAYOUTCOMMIT may require updating the
>>   block list that comprises the file and committing this layout to
>>   stable storage.  For file-based layouts, synchronization of
>>   attributes between the metadata and storage devices, primarily the
>>   size attribute, is required.
>>
>>   The control protocol is free to synchronize the attributes before it
>>   receives a LAYOUTCOMMIT; however, upon successful completion of a
>>   LAYOUTCOMMIT, state that exists on the metadata server that  
>> describes
>>   the file MUST be synchronized with the state that exists on the
>>   storage devices that comprise that file as of the client's last sent
>>   operation.  Thus, a client that queries the size of a file between a
>>   WRITE to a storage device and the LAYOUTCOMMIT might observe a size
>>   that does not reflect the actual data written.
>>
>> I understand and agree with the option that control protocol will  
>> update the
>> information on the MDFS for file layout type but does the text above  
>> not mark
>> layout commit as a consistency boundary even with servers supporting
>> filelayouts?
> 
> 
> For the file layout type, the COMMIT operation does this already, and  
> the LAYOUTCOMMIT is not needed. My reading of the above text is that  

This behavior is server implementation specific, isn't it?
What about a loosely clustered backend, is it required by the spec.
to communicate the file metadata in a cluster coherent way?

Benny

> if a LAYOUTCOMMIT is sent and successfully completed then the 'MUST be  
> synchronized with the state ..... " text applies. But why would the  
> file layout type want two synchronization points (LAYOUTCOMMIT and  
> COMMIT)? So, why send a LAYOUTCOMMIT for the file layout type?
> 
>> or are we saying that every write or DFS must be synchronized with
>> MDFS thru control protocol for file layout servers?
> 
> Nope, only on COMMIT.
> 
> -->Andy
> 
>>
>> Regards,
>> Suchit
>>
>> Andy Adamson <andros@...> writes:
>>
>>>
>>>
>>> On Jul 1, 2010, at 8:07 PM, Sandeep Joshi wrote:
>>>
>>> Hi Sandeep
>>>
>>>>
>>>> In certain cases, I don't see layoutcommit on a file at all even
>>>> after doing many writes.
>>>
>>> FYI:
>>>
>>> You should not be paying attention to layoutcommits  - they have no
>>> value for the file layout type.
>>>
>>> From RFC 5661:
>>>
>>> "The LAYOUTCOMMIT operation commits chages in the layout represented
>>> by the current filehandle, client ID (derived from the session ID in
>>> the preceding SEQUENCE operation), byte-range, and stateid."
>>>
>>> For the block layout type, this sentence has meaning in that there is
>>> a layoutupdate4 payload that enumerates the blocks that have changed
>>> state from being 'handed out' to being 'written'.
>>>
>>> The file layout type has no layoutupdate4 payload, and the layout  
>>> does
>>> not change due to writes, and thus the LAYOUTCOMMIT call is useless.
>>>
>>> The only field in the LAYOUTCOMMIT4args that might possibly be useful
>>> is the loca_last_write_offset which tells the server what the client
>>> thinks is the EOF of the file after WRITE. It is an extremely lame
>>> server (file layout type server) that depends upon clients for this
>>> info.
>>>
>>>>
>>>>
>>>>
>>>> Client side operations:
>>>>
>>>> open
>>>> write(s)
>>>> close
>>>>
>>>>
>>>> On server side (observed operations):
>>>>
>>>> open
>>>> layoutget's
>>>> close
>>>>
>>>>
>>>> But, I do not see laycommit at all. In terms data written by client
>>>> it is about 4-5MB.
>>>>
>>>> When does client issue laycommit?
>>>
>>> The latest linux client sends a layout commit when the VFS does a
>>> super_operations.write_inode call which happens when the metadata of
>>> an inode needs updating. We are seriously considering removing the
>>> layoutcommit call from the file layout client.
>>>
>>> -->Andy
>>>
>>>>
>>>>
>>>> regards,
>>>>
>>>> Sandeep
>>>>
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-nfs"
>>>> in
>>>> the body of a message to majordomo@...
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux- 
>>> nfs" in
>>> the body of a message to majordomo@...
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>>>
>>
>>
>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs"  
>> in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2010-07-06 13:23 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-01 23:47 4.1 client - LAYOUTCOMMIT Sandeep Joshi
2010-07-02  0:07 ` 4.1 client - LAYOUTCOMMIT & close Sandeep Joshi
     [not found]   ` <A062FCC8662DA848949F7C3046B9BEAE01F3A6EE-e1HlL03umel79urLq6li5IWksG4c/lV9Sp/tIRYA5EM@public.gmane.org>
2010-07-02 15:41     ` Andy Adamson
2010-07-02 17:08       ` 4.1 client - LAYOUTCOMMIT &amp; close Suchit Kaura
     [not found]         ` <loom.20100702T190300-538-eS7Uydv5nfjZ+VzJOa5vwg@public.gmane.org>
2010-07-06 13:12           ` Andy Adamson
2010-07-06 13:23             ` Benny Halevy [this message]
2010-07-02 21:46       ` 4.1 client - LAYOUTCOMMIT & close Daniel.Muntz
2010-07-06 13:35         ` Benny Halevy
2010-07-06 13:37         ` Andy Adamson
2010-07-06 14:04           ` Boaz Harrosh
2010-07-06 19:20           ` Daniel.Muntz
2010-07-06 20:40             ` Trond Myklebust
2010-07-06 22:50               ` Daniel.Muntz
2010-07-06 23:23                 ` Trond Myklebust
2010-07-07 12:05               ` Benny Halevy
2010-07-07 13:06                 ` Trond Myklebust
2010-07-07 13:18                   ` [nfsv4] " Trond Myklebust
2010-07-07 13:51                     ` Benny Halevy
2010-07-07 14:03                       ` Trond Myklebust
2010-07-07 17:45                         ` Dean Hildebrand
2010-07-07 20:39                         ` Daniel.Muntz
2010-07-07 21:01                           ` Trond Myklebust
2010-07-07 22:04                             ` Noveck_David
2010-07-07 22:27                               ` Trond Myklebust
2010-07-07 22:44                               ` david.black
2010-07-07 22:52                                 ` Trond Myklebust
2010-07-07 23:09                                   ` Trond Myklebust
     [not found]                                     ` <1278544497.15524.17.camel@heimdal.trondhje! m .org>
     [not found]                                       ` < 4C35F5E3.3000604@panasas.com>
2010-07-07 23:14                                     ` Trond Myklebust
2010-07-08 15:59                                       ` Benny Halevy
2010-07-08 20:30                                         ` [nfsv4] " david.black
2010-07-08 21:16                                           ` Trond Myklebust
2010-07-08 23:51                                             ` Daniel.Muntz
     [not found]                                             ` <1278623771.13551.54.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2010-07-09  0:03                                               ` [nfsv4] " Sandeep Joshi
2010-07-08 22:12                                           ` sfaibish
2010-07-08 23:01                                             ` Tom Haynes
2010-07-08 23:57                                               ` sfaibish
2010-07-09  0:41                                               ` [nfsv4] " Trond Myklebust
2010-07-06 13:20 ` 4.1 client - LAYOUTCOMMIT Benny Halevy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C332E36.30307@panasas.com \
    --to=bhalevy@panasas.com \
    --cc=andros@netapp.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=skaura-Pe6u2o1+k2hBDgjK7y7TUQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).