[LU-11962] File LSOM updates to store proper size via FLR for regular stat() usage Created: 12/Feb/19  Updated: 23/Feb/22

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Patrick Farrell (Inactive) Assignee: WC Triage
Resolution: Unresolved Votes: 0
Labels: performance, som

Issue Links:
Duplicate
is duplicated by LU-14461 Convert LSOM with loose size consiste... Open
Related
is related to LU-12649 Tracker for ongoing FLR improvements Open
is related to LU-12337 SoM in DoM needs to work transparently Resolved
is related to LU-11554 Make stat() work with LSOM Resolved
Rank (Obsolete): 9223372036854775807

 Description   

The layout manipulations required to bring an FLR file in to sync (READONLY in FLR parlance) also give SOM while the file is in sync.  This is true SOM, with no caveats, able to be used for any purpose (as distinct from lazy SOM which can only be used by tools which are aware of it).

In essence, there is no reason the SOM portion has to be associated with a replica.  Exactly the same functionality can be used just for SOM.

Because the layout state transitions for FLR require synchronous writes to the MDS each time, and because a write to the file destroys the SOM state, this is too expensive to try to use all the time. Instead, the proposal is to set it on all files a certain amount of time after they have been modified (e.g. 24h).  If there are no writes to a file for a time, and the client is returning identical size+blocks in the LSOM state at close time, we take it through the layout transitions to mark it LCM_FL_RDONLY (does not make it not writeable, just indicates the attributes are not being modified), and then it has SOM.

This would be a fairly low effort way to allow all files except those being actively modified to have true SOM and improve performance for normal stat() and similar calls.


Generated at Sat Feb 10 02:48:27 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.