Thread (12 messages) flat view 12 messages, 4 authors, 2021-06-30

Re: client's caching of server-side capabilities

From: Olga Kornievskaia <hidden>
Date: 2021-06-29 13:48:30

On Tue, Jun 29, 2021 at 8:58 AM Chuck Lever III [off-list ref] wrote:

quoted
On Jun 28, 2021, at 6:06 PM, Trond Myklebust [off-list ref] wrote:

On Mon, 2021-06-28 at 16:23 -0400, Olga Kornievskaia wrote:
quoted
Hi folks,

I have a general question of why the client doesn't throw away the
cached server's capabilities on server reboot. Say a client mounted a
server when the server didn't support security_labels, then the
server
was rebooted and support was enabled. Client re-establishes its
clientid/session, recovers state, but assumes all the old
capabilities
apply. A remount is required to clear old/find new capabilities. The
opposite is true that a capability could be removed (but I'm assuming
that's a less practical example).

I'm curious what are the problems of clearing server capabilities and
rediscovering them on reboot? Is it because a local filesystem could
never have its attributes changed and thus a network file system
can't
either?

Thank you.
In my opinion, the client should aim for the absolute minimum overhead
on a server reboot. The goal should be to recover state and get I/O
started again as quickly as possible.
I 100% agree with the above. However...

quoted
Detection of new features, etc
can wait until the client needs to restart.
A server reboot can be part of a failover to a different server. I
think capability discovery needs to happen as part of server reboot
recovery, it can't be optimized away.
Can you clarify what you mean by a "failover to a different server"?
To do reboot recovery it has to be the "same" server (by the
definitions of the RFC). My use case I was thinking of was a reboot of
the "same" server (major, minor, scope same) but with new features but
of course one could argue if it has new features it's no longer the
"same" server. I think you are probably thinking about migration or
are you thinking of telling a difference between session trunkable
servers which are considered to be the same but since it's a different
IP it might have different capabilities?

Thank you for the feedback!

--
Chuck Lever

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help