From: "J. Bruce Fields" <bfields@fieldses.org>
To: Nadav Shemer <nadav@tonian.com>
Cc: linux-nfs@vger.kernel.org, Lev <solo@tonian.com>,
Idan Kedar <idank@tonian.com>, Benny Halevy <bhalevy@tonian.com>
Subject: Re: LAYOUTGET and NFS4ERR_DELAY: a few questions
Date: Tue, 25 Jun 2013 09:43:25 -0400 [thread overview]
Message-ID: <20130625134325.GA17511@fieldses.org> (raw)
In-Reply-To: <CADnca3vEfZZvWT_EfgBJ0AcmuUGXfVtGvasQqQQSAoQF7OLPJw@mail.gmail.com>
On Tue, Jun 25, 2013 at 02:51:48PM +0300, Nadav Shemer wrote:
> On Mon, Jun 24, 2013 at 10:31 PM, J. Bruce Fields <bfields@fieldses.org> wrote:
> > Attempting a summary: the constant delay is traditional behavior going
> > back to NFSv3, and the exponential backoff was added to handle DELAY
> > returns on OPEN due to delegation conflicts.
> >
> > And it would likely be tough to justify another client change here
> > without a similar case where the spec clearly has the server returning
> > DELAY to something that needs to be retried quickly.
> >
> > Not understanding your case, it doesn't sound like the result of any
> > real requirement but rather an implementation detail that you probably
> > want to fix in the server.
> Well, a LAYOUTGET may cause a conflicting layout to be recalled (f.e.
> RAID in object storage - RFC 5664, 11.).
> Is that not similar to the
> OPEN case?
I'd expect there to be more options in the LAYOUTGET case, since a
client can always fall back to MDS IO in the case of LAYOUTGET failure,
whereas a failed OPEN is fatal.
> This makes me ponder. If the server blocks while waiting for
> conflicting layouts to be recalled, I think we can theoretically reach
> a deadlock (if we take up all the nfsd threads or all the clients'
> session slots): client A hold layout to file X, and requests layout to
> file Y, while client B holds layout to file Y and requests layout to
> file X.
> To avoid this, we pretty much have to return DELAY for LAYOUTGET
I agree that you wouldn't want to block waiting for a client to return a
layout. Is this a case for NFS4ERR_LAYOUTTRYLATER?
--b.
next prev parent reply other threads:[~2013-06-25 13:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-23 13:27 LAYOUTGET and NFS4ERR_DELAY: a few questions Nadav Shemer
2013-06-24 19:31 ` J. Bruce Fields
2013-06-25 11:51 ` Nadav Shemer
2013-06-25 13:43 ` J. Bruce Fields [this message]
2013-06-25 14:00 ` Nadav Shemer
2013-06-25 14:14 ` Myklebust, Trond
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=20130625134325.GA17511@fieldses.org \
--to=bfields@fieldses.org \
--cc=bhalevy@tonian.com \
--cc=idank@tonian.com \
--cc=linux-nfs@vger.kernel.org \
--cc=nadav@tonian.com \
--cc=solo@tonian.com \
/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.