On Thu, 2018-06-07 at 20:33 -0400, J. Bruce Fields wrote:
On Wed, May 23, 2018 at 08:21:40AM -0400, Jeff Layton wrote:
> +In order to decide when to make grace period transitions, we must also
> +have each server to advertise its state to the other nodes. Specifically,
"We must also have each server to advertise"/"each server must also
advertise"/?
Thanks, will fix.
> +The surviving servers must however establish a new client
recovery
> +database at this point to ensure that their clients can do recovery in
> +the event of a crash afterward.
This seems clumsy to me--why should they have to make identical copies
of their databases?
Is there any reason not to make the epoch numbers per server?
I had been thinking about the epoch being a cluster-wide property, but
the value itself doesn't matter as much. In principle, I suppose we
could make it a per-server property. I'd have to think about how we'd
implement it.
I suppose we could just keep the epoch values in the omap, and update
them all en-masse when there is a change. That's also a bit clumsy
though.
In practice, it's not as clumsy as you might think. We just batch up the
create and OMAP setting as a single operation and it's done atomically.
If the host crashes in the middle of that, no problem -- we still have
the database from the previous epoch to recovery from.
--
Jeff Layton <jlayton(a)kernel.org>