[LU-11657] Prefetch whole ZFS block into client cache on random read Created: 11/Nov/18  Updated: 17/Mar/22

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

Type: Improvement Priority: Minor
Reporter: Andreas Dilger Assignee: WC Triage
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Related
is related to LU-8591 allow specifying ZFS blocksize via la... Open
is related to LU-11416 Improve readahead for random read of ... Open
Rank (Obsolete): 9223372036854775807

 Description   

When doing random read IOPS to a ZFS-backed OST, the ZFS code will read the whole ZFS block from disk in order to do data checksum verification on the whole block. We may as well align the client read to the ZFS blocksize and fetch the whole ZFS block into client RAM so that the client could re-use those blocks if the file is small enough to fit into RAM. That avoids extra IO on the server that is not being used.



 Comments   
Comment by Wang Shilong (Inactive) [ 15/Jul/19 ]

Andreas,

Is there will be some interface to control for this something likely in LU-11416?

I am little worried if we always do this, this could cause many pages read but discard if file size is large.

Comment by Andreas Dilger [ 16/Jul/19 ]

There was a proposal to use "lfs ladvise" to tell the OST what blocksize to use when writing a file with random chunks, so that the on-disk blocksize matches the application chunk size.

Perhaps something similar can be used for reading the file?

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