[LU-16247] do open()+readahead for DoM files as batched operations Created: 18/Oct/22  Updated: 17/Dec/22

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

Type: New Feature Priority: Minor
Reporter: Qian Yingjin Assignee: Qian Yingjin
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Related
is related to LU-14139 batched statahead processing Resolved
Rank (Obsolete): 9223372036854775807

 Description   

Lustre currently supported read on open() call for DoM files in single RPC (it will benefit the performance of mdtest read):

https://review.whamcloud.com/23011 "LU-10181 mdt: read on open for DoM files"

It is possible to do open()+readahead for DoM files as batched operations.

But the client needs to know the file names of the open calls in advance and a open/read -ahead mechanism similar to statahead.

This needs the file names of the open calls are predictable such as:

  1. Get the file names via readdir() calls;
  2. regularized file names such as mdtest.$rank.$i

For each open() + readahead request in the batched RPC,

  • the MDS will return MDS_INODELOCK_OPEN ibit lock to the client and cache this lock on the client lock namespace, thus the corresponding file handle protected by this lock can be also validly cached on the client and subsequent predictable open calls can open locally;
  • For the readahead data, it will store on the client page cache, and the subsequent read() calls can directly read data from page cache, does not need a extra RPC for file data.

 



 Comments   
Comment by Andreas Dilger [ 19/Oct/22 ]

This looks very interesting, and could potentially improve the small file performance significantly for mdtest-hard-read workloads.

Generated at Sat Feb 10 03:25:19 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.