All of lore.kernel.org
 help / color / mirror / Atom feed
From: "bfields@fieldses.org" <bfields@fieldses.org>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: "Myklebust, Trond" <Trond.Myklebust@netapp.com>,
	David Wysochanski <dwysocha@redhat.com>,
	Dave Chiluk <chiluk@canonical.com>,
	"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] NFSv4: Use exponential backoff delay for NFS4_ERRDELAY
Date: Thu, 25 Apr 2013 14:46:26 -0400	[thread overview]
Message-ID: <20130425184626.GC5049@fieldses.org> (raw)
In-Reply-To: <81BBEA25-CDE5-42B1-996D-90C26A43DEF6@oracle.com>

On Thu, Apr 25, 2013 at 02:40:11PM -0400, Chuck Lever wrote:
> 
> On Apr 25, 2013, at 2:19 PM, "bfields@fieldses.org" <bfields@fieldses.org> wrote:
> 
> > On Thu, Apr 25, 2013 at 02:10:36PM +0000, Myklebust, Trond wrote:
> >> On Thu, 2013-04-25 at 09:49 -0400, bfields@fieldses.org wrote:
> >>> On Thu, Apr 25, 2013 at 01:30:58PM +0000, Myklebust, Trond wrote:
> >>>> On Thu, 2013-04-25 at 09:29 -0400, bfields@fieldses.org wrote:
> >>>> 
> >>>>> My position is that we simply have no idea what order of magnitude even
> >>>>> delay should be.  And that in such a situation exponential backoff such
> >>>>> as implemented in the synchronous case seems the reasonable default as
> >>>>> it guarantees at worst doubling the delay while still bounding the
> >>>>> long-term average frequency of retries.
> >>>> 
> >>>> So we start with a 15 second delay, and then go to 60 seconds?
> >>> 
> >>> I agree that a server should normally be doing the wait on its own if
> >>> the wait would be on the order of an rpc round trip.
> >>> 
> >>> So I'd be inclined to start with a delay that was an order of magnitude
> >>> or two more than a round trip.
> >>> 
> >>> And I'd expect NFS isn't common on networks with 1-second latencies.
> >>> 
> >>> So the 1/10 second we're using in the synchronous case sounds closer to
> >>> the right ballpark to me.
> >> 
> >> OK, then. Now all I need is actual motivation for changing the existing
> >> code other than handwaving arguments about "polling is better than flat
> >> waits".
> >> What actual use cases are impacting us now, other than the AIX design
> >> decision to force CLOSE to retry at least once before succeeding?
> > 
> > Nah, I've got nothing, and I agree that the AIX problem is there bug.
> > 
> > Just for fun I looked at re-checked the Linux server cases.  As far as I
> > can tell they are:
> > 
> > 	- delegations: returned immediately on detection of any
> > 	  conflict.  The current behavior in the sync case looks
> > 	  reasonable to me.
> > 	- allocation failures: not really sure it's the best error, but
> > 	  it seems to be all the protocol offers.  We probably don't
> > 	  care much what the client does in this case.
> > 	- some rare cases that would probably indicate bugs (e.g.,
> > 	  attempting to destroy a client while other rpc's from that
> > 	  client are running.)  Again we don't care what the client does
> > 	  here.
> > 	- the 4.1 slot-inuse case.
> > 
> > We also by default map four errors (ETIMEDOUT, EAGAIN, EWOULDBLOCK,
> > ENOMEM) to delay.  I thought I remembered one of those being used by
> > some HFS system, but can't actually find an example now.  A quick grep
> > doesn't show anything interesting.
> 
> It's worth mentioning that servers that have frozen state (say, in preparation for Transparent State Migration) may use NFS4ERR_DELAY to prevent clients from modifying open or lock state until that state has transitioned to a destination server.

I thought they'd decided they'll be forced to find a different way to do
that?

(The issue being that it only works if you're using 4.1, and if the
session state itself isn't part of the state to be transferred.
Otherwise you're forced to modify the state anyway since NFS4ERR_DELAY
is seqid-modifying.)

--b.

  reply	other threads:[~2013-04-25 18:46 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-24 20:55 [PATCH] NFSv4: Use exponential backoff delay for NFS4_ERRDELAY Dave Chiluk
2013-04-24 21:11 ` J. Bruce Fields
2013-04-24 21:28 ` Myklebust, Trond
2013-04-24 21:54   ` Dave Chiluk
2013-04-24 22:35     ` Myklebust, Trond
2013-04-25 12:19       ` David Wysochanski
2013-04-25 13:19         ` Myklebust, Trond
2013-04-25 13:29         ` bfields
2013-04-25 13:30           ` Myklebust, Trond
2013-04-25 13:49             ` bfields
2013-04-25 14:10               ` Myklebust, Trond
2013-04-25 15:28                 ` [PATCH] NFSv4: Use exponential backoff delay for Ni Matt W. Benjamin
2013-04-25 15:42                   ` Myklebust, Trond
2013-04-25 15:42                     ` Myklebust, Trond
2013-04-25 18:19                 ` [PATCH] NFSv4: Use exponential backoff delay for NFS4_ERRDELAY bfields
2013-04-25 18:40                   ` Chuck Lever
2013-04-25 18:46                     ` bfields [this message]
2013-04-25 18:51                       ` Chuck Lever
2013-04-25 18:57                         ` bfields
2013-04-25 18:52                       ` Myklebust, Trond
2013-04-25 14:51               ` Chuck Lever

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=20130425184626.GC5049@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=Trond.Myklebust@netapp.com \
    --cc=chiluk@canonical.com \
    --cc=chuck.lever@oracle.com \
    --cc=dwysocha@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --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.