Linux NFS development
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: Jeff Layton <jlayton@kernel.org>
Cc: devel@lists.nfs-ganesha.org, sostapov@redhat.com,
	Supriti.Singh@suse.com, "open list:NFS, SUNRPC,
	AND..." <linux-nfs@vger.kernel.org>
Subject: Re: [RFC PATCH] rados_cluster: add a "design" manpage
Date: Fri, 1 Jun 2018 10:46:55 -0400	[thread overview]
Message-ID: <20180601144655.GD10666@fieldses.org> (raw)
In-Reply-To: <84dd9dbf7e11818cd4188b01e0834a1f04cd24ae.camel@kernel.org>

On Fri, Jun 01, 2018 at 10:33:14AM -0400, Jeff Layton wrote:
> On Fri, 2018-06-01 at 10:17 -0400, J. Bruce Fields wrote:
> > On Fri, Jun 01, 2018 at 06:42:37AM -0400, Jeff Layton wrote:
> > > Thanks for having a look. Hmm...you're right.
> > > 
> > >         nn->nfsd4_lease = 90;   /* default lease time */                        
> > >         nn->nfsd4_grace = 90;                                                   
> > > 
> > > nit: We should probably add a #define'd constant for that at some
> > > point...but, might this be problematic?
> > > 
> > > In the pessimal case, you might renew your lease just before the server
> > > crashes. It then comes back up quickly and starts the grace period. By
> > > the time the client contacts the server again the grace period is almost
> > > over and you may have very little time to actually do any reclaim.
> > > 
> > > ISTR that when we were working on the server at PD we had determined
> > > that we needed around 2 grace periods + a small fudge factor. I don't
> > > recall the details of how we determined it though.
> > 
> > OK, I'd be interested in any of that.
> > 
> > If we decide we need a larger grace/lease ratio, we may want to adjust
> > default lease down at same time to avoid increasing grace period, as
> > that's always an annoyance.
> > 
> 
> I think we just figured that we ought to give the client a full lease
> period to reclaim everything, in case it holds a lot of state. You also
> need to give it a full lease period to figure out that the server has
> rebooted, and then I think we added a few seconds to account for "other
> factors" (transport delays and whatnot).

I think it would also be easy to extend it on demand.

So, for example: end the grace period when:

	(one lease period has passed *and* we've received no reclaim
	request in the last second) *or*
	two lease periods have passed

Maybe think about the exact choice of numbers a little.

--b.

  reply	other threads:[~2018-06-01 14:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20180523122140.8373-1-jlayton@kernel.org>
     [not found] ` <20180531213733.GB4654@fieldses.org>
2018-06-01 10:42   ` [RFC PATCH] rados_cluster: add a "design" manpage Jeff Layton
2018-06-01 14:17     ` J. Bruce Fields
2018-06-01 14:33       ` Jeff Layton
2018-06-01 14:46         ` J. Bruce Fields [this message]
2018-06-08 16:33           ` J. Bruce Fields
2018-06-14 10:01             ` Jeff Layton
2018-06-14 16:32               ` J. Bruce Fields

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=20180601144655.GD10666@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=Supriti.Singh@suse.com \
    --cc=devel@lists.nfs-ganesha.org \
    --cc=jlayton@kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=sostapov@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox