All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trond Myklebust <Trond.Myklebust@netapp.com>
To: Benny Halevy <bhalevy@panasas.com>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH 1/9] Revert "pnfs-submit: wave2: remove forgotten layoutreturn struct definitions"
Date: Thu, 16 Dec 2010 13:14:41 -0500	[thread overview]
Message-ID: <1292523281.2912.62.camel@heimdal.trondhjem.org> (raw)
In-Reply-To: <4D0A4F9F.4040300@panasas.com>

On Thu, 2010-12-16 at 19:42 +0200, Benny Halevy wrote:
> On 2010-12-16 19:35, Trond Myklebust wrote:
> > On Thu, 2010-12-16 at 18:24 +0200, Benny Halevy wrote:
> >> On 2010-12-16 17:55, Trond Myklebust wrote:
> >>> OK, so why not just go the whole hog and do that for all rare cases,
> >>> including the one where the server recalls a layout segment that we
> >>> happen to be doing I/O to?
> >>>
> >>> The case we should be optimising for is the one where the layout is
> >>> recalled, and no I/O to that segment is in progress. For that case,
> >>> returning OK, then doing the LAYOUTRETURN instead of just returning
> >>> NOMATCHING_LAYOUT is clearly wrong: it adds a completely unnecessary
> >>> round trip to the server. Agreed?
> >>
> >> I agree that if the client can free the recalled layout synchronously
> >> and if it need not send a LAYOUTCOMMIT or LAYOUTRETURN (e.g. in the objects case)
> >> it can simply return NFS4ERR_NOMATCHING_LAYOUT.
> > 
> > Objects and blocks != wave 2. We can cross that bridge when we get to
> > it.
> > 
> 
> Right.  This patchset is destined as post wave2.

In that case it has a very confusing title (which certainly caught me by
surprise).

> 
> >>>
> >>> As for the much rarer case of a recall of a layout that is in use, how
> >>> does LAYOUTRETURN speed things up? As far as I can see, the MDS is still
> >>> going to return NFS4ERR_DELAY to the client that requested the
> >>> conflicting LAYOUTGET. That client then has to resend this LAYOUTGET
> >>> request, at a time when the first client may or may not have returned
> >>> its layout segment. So how is LAYOUTRETURN going to make all this a fast
> >>> and scalable process?
> >>>
> >>
> >> First, the server does not have to poll the client and waste cpu and network
> >> resources on that.
> > 
> > ...but this is a ____rare____ case. If you are seeing noticeable effects
> > on the network from this, then something is wrong. If that is ever the
> > case, then you should be writing through the MDS anyway.
> > 
> > Furthermore, the MDS does need to be able to cope with NFS4ERR_DELAY
> > anyway, so why add the extra complexity to the client?
> > 
> >> Second, for the competing client, with notifications, it too does not have
> >> to poll the server and can wait on getting the notification when the
> >> layout becomes available.
> > 
> > There is no notification of layout availability in RFC5661. Lock
> > notification is for byte range locks, and device id notification is for
> > device ids. The rest is for directory notifications.
> > 
> 
> Hmm, CB_RECALLABLE_OBJ_AVAIL in response to loga_signal_layout_avail...

Hmm indeed. Section 12.3 states:

"CB_RECALLABLE_OBJ_AVAIL  (Section 20.7) tells a client that a
recallable object that it was denied (in case of pNFS, a layout denied
by LAYOUTGET) due to resource exhaustion is now available."

and 18.43.3 states:

"If client sets loga_signal_layout_avail to TRUE, then it is registering
with the client a "want" for a layout in the event the layout cannot be
obtained due to resource exhaustion."

I can't see how that is relevant to the case where a specific LAYOUTGET
requires a layout recall from another client. That's not resource
exhaustion.



-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@netapp.com
www.netapp.com


  reply	other threads:[~2010-12-16 18:14 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-15 18:29 [PATCH 0/9] pnfs post wave2 changes Benny Halevy
2010-12-15 18:30 ` [PATCH 1/9] Revert "pnfs-submit: wave2: remove forgotten layoutreturn struct definitions" Benny Halevy
2010-12-15 18:32   ` Trond Myklebust
2010-12-15 18:51     ` Benny Halevy
2010-12-15 19:31       ` Trond Myklebust
2010-12-15 20:24         ` Trond Myklebust
2010-12-16  7:26           ` Benny Halevy
2010-12-16 17:21             ` Peng Tao
2010-12-16 17:37               ` Benny Halevy
2010-12-17  5:19                 ` Peng Tao
2010-12-16  7:15         ` Benny Halevy
2010-12-16 15:55           ` Trond Myklebust
2010-12-16 16:24             ` Benny Halevy
2010-12-16 17:35               ` Trond Myklebust
2010-12-16 17:42                 ` Benny Halevy
2010-12-16 18:14                   ` Trond Myklebust [this message]
2010-12-18  3:45                     ` Benny Halevy
2010-12-15 18:31 ` [PATCH 2/9] Revert "pnfs-submit: Turn off layoutcommits" Benny Halevy
2010-12-15 18:31 ` [PATCH 3/9] Revert "pnfs-submit: wave2: remove all LAYOUTRETURN code" Benny Halevy
2010-12-15 18:31 ` [PATCH 4/9] Revert "pnfs-submit: wave2: Remove LAYOUTRETURN from return on close" Benny Halevy
2010-12-15 18:31 ` [PATCH 5/9] FIXME: roc should return layout on last close Benny Halevy
2010-12-15 18:31 ` [PATCH 6/9] Revert "pnfs-submit: wave2: remove cl_layoutrecalls list" Benny Halevy
2010-12-15 18:32 ` [PATCH 7/9] Revert "pnfs-submit: wave2: Pull out all recall initiated LAYOUTRETURNS" Benny Halevy
2010-12-15 18:32 ` [PATCH 8/9] Revert "pnfs-submit: wave2: Don't wait in layoutget" Benny Halevy
2010-12-15 18:32 ` [PATCH 9/9] Revert "pnfs-submit: wave2: check that partial LAYOUTGET return is ignored" 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=1292523281.2912.62.camel@heimdal.trondhjem.org \
    --to=trond.myklebust@netapp.com \
    --cc=bhalevy@panasas.com \
    --cc=linux-nfs@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.