1,In the code,readdir-ahead didn't package up the readdir request into a bigger 
request, it just packaged up the dentries, if the dentries' size was greater 
than the request size, the bigger request returned to the client, wasn't it?
2,The requests from the Readdir-ahead Xlator wind down to next Xlator ,did they 
send to a server or brodcast to all the servers?
3,As you have said, the preload is in progress, a readdir from application 
waits for its completion. And If I change the buffer(request) size, will the 
application wait for a long time? Could it be a stream, the readdir from 
application fetches dentries in the buffer, and the readdir-ahead xlator 
pre-fetches dentries from the servers?
4,When does it can be a larger buffer, like io-cache,which cached the 
data/dentries read before? As you know, ls is so slow.





At 2016-02-23 10:00:51, "Raghavendra Gowdappa" <[email protected]> wrote:
>
>
>----- Original Message -----
>> From: "Keiviw" <[email protected]>
>> To: [email protected]
>> Sent: Tuesday, February 23, 2016 6:20:28 AM
>> Subject: [Gluster-devel] Readdir-ahead
>> 
>> I have two questions about the performance,readdir-ahead.
>> 1. In the code,the request max_size is 131072,128K. If i change the max_size
>> to a larger size, what will happen?
>
>readdir-ahead winds down readdir calls with a buffer of size "max_size". If 
>you increase the size, each readdir (including those "preload" requests which 
>are not issued by application) will be done with a bigger buffer to fetch 
>dentries.
>
>> 2. As what i have said in question 1, for a larger buffer, if the second
>> readdir arrives, the denty will return from the buffer or from the server?
>
>Only if a preload (a readdir request not initiated by application, but instead 
>triggered by readdir-ahead in an attempt to pre-emptively fill the read-ahead 
>buffer) is in progress, a readdir from application waits for its completion. 
>For all other cases, readdir-ahead is bypassed. Also note that readdir-ahead 
>is "per-fd" based cache. So, barring cases like duping an fd (including fork() 
>), one shouldn't get parallel readdir requests on a single fd.
>
>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Gluster-devel mailing list
>> [email protected]
>> http://www.gluster.org/mailman/listinfo/gluster-devel
_______________________________________________
Gluster-devel mailing list
[email protected]
http://www.gluster.org/mailman/listinfo/gluster-devel

Reply via email to