From: Chuck Lever <chuck.lever@oracle.com>
To: bfields@fieldses.org
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 10:51:42 -0400 [thread overview]
Message-ID: <C56C9BFD-0B20-4F2B-B282-84566ACBF41B@oracle.com> (raw)
In-Reply-To: <20130425134918.GC31851@fieldses.org>
On Apr 25, 2013, at 9:49 AM, 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.
The RPC layer already keeps RPC round trip statistics, so the client doesn't have to guess with a "one size fits all" number.
I'm all for keeping client recovery time short. But after following this argument, I think 10xRTT is crazy short. Aggressive retransmits can lead to data corruption, and RTT on a fast server is going to be on the order of a millisecond. And what about RDMA, where RTT is about 20usecs?
A better answer might be to start at one second then exponentially back off to the minimum of 0.25x the lease time and 0.25x the RPC retransmit time out.
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
prev parent reply other threads:[~2013-04-25 14:51 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-24 20:55 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 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
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 [this message]
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=C56C9BFD-0B20-4F2B-B282-84566ACBF41B@oracle.com \
--to=chuck.lever@oracle.com \
--cc=Trond.Myklebust@netapp.com \
--cc=bfields@fieldses.org \
--cc=chiluk@canonical.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®