Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
None
-
None
-
None
-
9223372036854775807
Description
Currently, when a client sends a write intent to the server to instantiate a new layout component, the server handles the write intent and grants an EX lock on the layout to the client. The client restarts its i/o and then calls ll_refresh_layout to get the updated layout. Refresh layout does not look for EX locks, so the client requests a new lock from the server, which cancels its own EX lock before granting the new lock, generating multiple extra round trips.
This is unnecessary - the client can use the EX lock to refresh the layout. The lock will be cancelled by another client when needed.
A tiny local benchmark of writing 1K in to a new PFL component suggests this reduces the time to instantiate by 50% (comparison is already instantiated file vs PFL instantiation vs PFL instantiation + patch), and overall time for this 1K write by ~10%.