On Thu, Mar 19, 2015 at 02:47:14PM -0400, J. Bruce Fields wrote:
> Also, there's the problem that when this is turned on a client can end
> up doing unnecessary LAYOUTGET. Do we have a plan for that?
> - Just depend on export flags: but some clients may have direct
> access and some not. If the clients with direct access or all
> easily identifiable by IP subnet, maybe it's not a big deal.
> Still, seems like an administrative hassle.
We defintively want this to avoid getting into problems.
> - Do nothing, assume the client can deal with this with some
> kind of heuristics, and/or that the GETLAYOUT calls can be
> made very cheap. Not sure if that's true.
The calls itself are cheap, the cliet processing of them isn't. I think we
should just stop issueing GETLAYOUT calls on the client side if we keep
errors again and again. One option might be to add negative device id
cache entries, similar to how negative dentries work in the dcache.
> - Use something like GETDEVLICELIST so the client can figure out
> in one go whether any layouts on a given filesystem will work.
> I forget what the problems with GETDEVICELIST were.
The way the device IDs rules are written in NFS it is inherently racy.
If I could go back 10 years in time I'd rewrite device ids to be stateids
bound to a fsid, and a lot of things could be fixed up neatly that way..