[Lustre-discuss] Read ahead / prefetching

Arifa Nisar a-nisar at u.northwestern.edu
Tue Aug 3 15:00:23 PDT 2010


Hi Andrea,

How can I know for sure that my Lustre's deployment has this feature or not?
Is it available in version 1.6.x or its only for 1.8.x? 

Thanks,
Arifa.

-----Original Message-----
From: Andreas Dilger [mailto:andreas.dilger at oracle.com] 
Sent: Friday, July 30, 2010 1:32 AM
To: Arifa Nisar
Cc: lustre-discuss at lists.lustre.org
Subject: Re: [Lustre-discuss] Read ahead / prefetching

If the size of the read calls is 1MB then after 2 reads at 4MB strides the
3rd read would trigger readahead initially for the next stride (1MB+1MB). If
the same stride pattern continues the readahead size will grow an additional
1MB each time up to the limit. 

Cheers, Andreas

On 2010-07-29, at 22:53, Arifa Nisar <a-nisar at u.northwestern.edu> wrote:

> Consider a case where stripe count = 4, stripe size = 1MB and all I/O
> accesses are aligned with the stripe boundary. If a client reads every 4th
> full stripe (accessing same OST always) then one stripe will be readahead
> from that OST in every call?
> 
> Thanks,
> Arifa.
> 
> -----Original Message-----
> From: Andreas Dilger [mailto:andreas.dilger at oracle.com] 
> Sent: Thursday, July 29, 2010 11:41 PM
> To: Arifa Nisar
> Cc: lustre-discuss at lists.lustre.org
> Subject: Re: [Lustre-discuss] Read ahead / prefetching
> 
> On 2010-07-29, at 14:02, Arifa Nisar wrote:
>> Thanks for the response. If an access pattern triggers page aligned
> strided
>> access then how many pages will be readahead? Are there some environment
>> variables which may give insight about readahead behavior? 
> 
> Because Lustre is tuned for RPC-sized IO, it will always readahead at
least
> a full RPC at a time (by default 1MB), unless the application is reading
> larger chunks than this, then it reads ahead in units of the IO size
aligned
> to RPC-sized boundaries.
> 
>> -----Original Message-----
>> From: Andreas Dilger [mailto:andreas.dilger at oracle.com] 
>> Sent: Wednesday, July 28, 2010 5:43 PM
>> To: Arifa Nisar
>> Cc: lustre-discuss at lists.lustre.org
>> Subject: Re: [Lustre-discuss] Read ahead / prefetching
>> 
>> On 2010-07-28, at 10:43, Arifa Nisar wrote:
>>> I am trying to educate myself on prefetching/readahead algorithm for
>>> Lustre's read. For a starter I only have two simple questions.
>>> 
>>> 1 - Does Lustre detect linear or random I/O pattern or it always
triggers
>>> readahead?
>> 
>> The current algorithm detects sequential and strided read patterns.
>> 
>>> 2 - If readahead is triggered, how many pages are read in addition to
> what
>>> is necessary? 
>> 
>> It is variable based on how long the same pattern was repeating and the
>> number of pages per request.
>> 
>> I would be happy to have you look at the strided readahead detection code
>> more closely, since I suspect it would not correctly detect stride
> patterns
>> with odd byte size and offset vs. stride patterns with full-page size and
>> offset.
>> 
>> We disussed a while ago to rewrite the readahead code to be layered
better
>> on the client, but haven't had time to work on it yet.
>> 
>> 
>> Cheers, Andreas
>> --
>> Andreas Dilger
>> Lustre Technical Lead
>> Oracle Corporation Canada Inc.
>> 
> 
> 
> Cheers, Andreas
> --
> Andreas Dilger
> Lustre Technical Lead
> Oracle Corporation Canada Inc.
> 




More information about the lustre-discuss mailing list