[Gluster-devel] Could we not always call lookup for root_dir in fuse_getattr to improve performance?

Amar Tumballi atumball at redhat.com
Fri Mar 24 13:13:35 UTC 2017


Went through the code base again. Yes, as you said, we can get rid of
fuse_getattr() not checking nodeid==1 path.

Patch here:  https://review.gluster.org/16944

-Amar



On Fri, Mar 24, 2017 at 2:57 AM, Zhitao Li <zhitaoli1201 at outlook.com> wrote:

> Hello, everyone!
>
>
> I am now optimizing the performance of "ls". When there are many little
> files directly in mount point(root dir of glusterfs), I find that
> fuse_getattr takes near half time of total "ls". Strictly, the nodeid==1
> check in fuse_getattr will call look operation instead of stat, and lookup
> will always miss the md-cache, so it will do real lookup and cost about 3ms
> a time in my case.
>
>
> I doubt whether the special check of nodeid==1 is necessary. I disable the
> check,  it works normal for ls. However, in the "tests" of gluster, it
> fails(quorum.t). In that case, lookup in root_dir is essential.
>
>
> Up to now, we know that lookup bring high cost in fuse_getattr and it is
> essential in some case. Could anyone give some advice to improve
> fuse_getattr(lookup in root_dir) without bringing bugs?
>
>
> I have been trying to deal  with this for many days. Your help is greatly
> in need.
>
>
>
> Best regards,
> Zhitao Li
>



-- 
Amar Tumballi (amarts)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-devel/attachments/20170324/ab6803e1/attachment.html>


More information about the Gluster-devel mailing list