Re: starting 90-second grace period

Trond Myklebust
2009-12-11T20:09:30Z

On Fri, 2009-12-11 at 14:50 -0500, J. Bruce Fields wrote:
> On Fri, Dec 11, 2009 at 01:20:43PM -0500, Trond Myklebust wrote:
> > On Fri, 2009-12-11 at 23:39 +0530, Tharindu Rukshan Bamunuarachchi
> > wrote:
> > > then why is it 90 by default ... is it RFC/Protocol requirement ?
> >
> > The purpose of the grace period is to give the clients enough time to
> > notice that the server has rebooted, and to reclaim their existing locks
> > without danger of having somebody else steal the lock from them.
> >
> > It is not a protocol requirement, but it is definitely a strongly
> > recommended feaature if you don't want to see corruption in your
> > mailbox/database/logfile/... that relies on those locks.
>
> There are a few things we could do to lessen the pain of the grace
> period, though--such as ending it when we know it's done. (In the v4
> case, that's just when we know there are no clients to recover state; in
> the v4.1 case, that's when all the RECLAIM_COMPLETE's are done.)

You can't clear the grace period unless you know that all 3 protocols
are done. I.e. the list of NSM monitored clients was empty, the list of
NFSv4 clients was empty, and the NFSv4.1 reclaim_completes are all done
(or the list was empty).

In no case should it be done by adjusting the duration of the lease
period.

Trond