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 & 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
next prev parent 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 & 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).