Re: [RFC PATCH] rados_cluster: add a "design" manpage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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).

> > Even worse: 
> > 
> >         $ cat /proc/sys/fs/lease-break-time 
> >         45
> > 
> > Maybe we should be basing the v4 lease time on the lease-break-time
> > value? It seems like we ought to revoke delegations after two lease
> > periods rather than after half of one.
> 
> No, we ignore lease-break-time on delegations.  See the comment in
> fs/nfsd/nfs4state.c:nfsd_break_deleg_cb():
> 
> 	/*
> 	 * We don't want the locks code to timeout the lease for us;
> 	 * we'll remove it ourself if a delegation isn't returned
> 	 * in time:
> 	 */
> 	fl->fl_break_time = 0;
> 

Ahh thanks, I had forgotten that. Whew!

-- 
Jeff Layton <jlayton@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux