Hello, Poorinima and Soumya,
Thanks for your kind reply. As you said, for the "first" lookup(called in fuse_first_lookup), xdata will be set "gfid-req", which will miss the md-cache, and then call other translators. However, in fuse_getattr, when nodeid==1, gfid-req is set to "gfid-req", too. That is to say, every fuse_getattr in root, a lookup with "gfid-req" is called, this call will miss the md-cache, then takes a high cost. Is it necessary to lookup with "gfid-req" in fuse_getattr? In fact, whether we lookup with a "gfid-req" decides the performance of fuse_getattr. In my case, I need to call many times fuse_getattr, so it does matter! Best regards, Zhitao Li Sent from Outlook<http://aka.ms/weboutlook> ________________________________ From: Poornima Gurusiddaiah <[email protected]> Sent: Tuesday, March 21, 2017 3:07:01 PM To: Soumya Koduri Cc: Zhitao Li; Gluster Devel; Zhitao Li; [email protected] Subject: Re: [Gluster-devel] What does xdata mean? "gfid-req"? ----- Original Message ----- > From: "Soumya Koduri" <[email protected]> > To: "Zhitao Li" <[email protected]>, "Gluster Devel" > <[email protected]> > Cc: "Zhitao Li" <[email protected]>, [email protected], "Poornima > Gurusiddaiah" <[email protected]> > Sent: Monday, March 20, 2017 2:21:12 PM > Subject: Re: [Gluster-devel] What does xdata mean? "gfid-req"? > > > > On 03/18/2017 06:51 PM, Zhitao Li wrote: > > Hello, everyone, > > > > > > I am investigating the difference between stat and lookup operations in > > GlusterFs now. In the translator named "md_cache", stat operation will > > hit the cache generally, while lookup operation will miss the cache. > > > > > > The reason is that for lookup operation, md_cache will check whether the > > xdata is satisfied. In my case, lookup will include xdata "gfid-req" > > filled by fuse-bridge. However, in md_cache, this check never pass > > because the load flag of mdc_key "gfid-req" is always 0. > > Client(in this case fuse-bridge) generates gfid and sets it as xdata > 'gfid-req' key during the first lookup so as to let server heal the > file/dir with the missing gfid (if any) with the newly generated one. > > I guess md-cache ignores the LOOKUP fop with this xdata key set as it > implies that its the first lookup done by the client. Even if it doesn't > filter it out, the file/dir entry will not be present in the > cache then. Subsequent LOOKUPs should be served from md-cache. Poornima > (cc'ed) shall be able to clarify the actual reason. Yes, gfid-req will be set only on the first lookup. If not then that definitely needs to be looked at. > > Thanks, > Soumya > > > > > > > Could anyone tell me why "gfid-req" is filled by > > fuse-bridge.c(fuse_getattr: nodeid==1->lookup)? What does it mean? And > > how xdata is used? > > > > > > If no xdata, what would happen? > > > > Thank you! > > > > > > Best regards, > > Zhitao Li > > > > Sent from Outlook <http://aka.ms/weboutlook> > > > > > > _______________________________________________ > > Gluster-devel mailing list > > [email protected] > > http://lists.gluster.org/mailman/listinfo/gluster-devel > > >
_______________________________________________ Gluster-devel mailing list [email protected] http://lists.gluster.org/mailman/listinfo/gluster-devel
