[Gluster-devel] lookup caching

Olivier Le Cam Olivier.LeCam at crdp.ac-versailles.fr
Tue Apr 6 07:38:58 UTC 2010


Hi -

Apologize for my insistance, but would it be possible to help on the 
stats caching? This seriously decreases performances with small files 
readings!

I am volunteer to try to deal with stats caching by myself but I would 
appreciate some guidance in order to know where I could interact in the 
code for.

Thanks and best regards,
-- 
Olivier

Olivier Le Cam wrote:
> Raghavendra G wrote:
>>
>> On Fri, Apr 2, 2010 at 3:32 PM, Olivier Le Cam 
>> <Olivier.LeCam at crdp.ac-versailles.fr 
>> <mailto:Olivier.LeCam at crdp.ac-versailles.fr>> wrote:
>>
>>     Hi -
>>
>>     I am evaluating glusterfs for a replacement of an NFS server which
>>     acts as a backend storage for a webcluster, in order to take
>>     advantage of its very interesting features in term of
>>     high-availability and scalability.
>>
>>     That said, I'm experiencing (like everybody in the same situation)
>>     performance issues due to the large number of small files a
>>     webserver have to deal with.
>>
>>     The io-cache translator does not help so much in this situation
>>     because (as far as I understood) the clients always have to check
>>     the mtime of the target file before delivering it in order to known
>>     if the cache is up-to-date. This intensive network traffic is quite
>>     penalizing in term of performance (especially on a Gb-E).
>>
>>
>>     Following to a recent talk on the IRC channel, it came to my mind
>>     that caching lookups could (in this particular situation) greatly
>>     improve the performances.
>>
>>
>> If you are not very much concerned about file being changed from other 
>> clients while it is being cached, you can set 'cache-timeout' value in 
>> io-cache configuration to some high value, there by increasing the 
>> time intervals at which stat call is sent to server to check whether 
>> the file has changed.
>>  
>>
>>
>>     I have observed the GlusterFS code carefully and TBH I haven't been
>>     able to see how/where such a translator could be integrated in.
>>
>>     Would it be possible to get some help? Are other users/developers
>>     already involved in such a development?
>>
>>
>> If you are just interested in caching stats for beniefit of io-cache, 
>> the same functionality can be achieved by tuning cache-timeout value 
>> in io-cache.
> 
> This is not the behaviour I would expected according to the doc: "If the 
> cached page for a file is greater than 'cache-timeout' seconds old, 
> io-cache translator forces a re-validation of the page. However the 
> cached page is verified against the mtime whenever possible and cache is 
> refreshed. Default is 1 second."
> 
> AFAIU, mtime is always verified (whenever possible). As a non native 
> english spoker I might misunderstood something thougth!
> 
> Anyway, I have tested with a cache-timeout of 60 seconds on a client: 
> according to the debug traces and tcpdump, cat'ing the same file several 
> times. I have no idea which protocols are involved here but there is 
> always some traffic between the client and the servers even where cat 
> issued within the cache interval.
> 
> My guess is that file is indeed cached by io-cache but that the client 
> always stats the server before delivering the file (either from the 
> cache or the glusterfs).
> 
> Debug log attached.
> 
> Kind regards,
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/gluster-devel






More information about the Gluster-devel mailing list