Re: [Gluster-devel] What does xdata mean? "gfid-req"?

2017-03-21 Thread Zhitao Li
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 
Sent: Tuesday, March 21, 2017 3:07:01 PM
To: Soumya Koduri
Cc: Zhitao Li; Gluster Devel; Zhitao Li; 1318078...@qq.com
Subject: Re: [Gluster-devel] What does xdata mean? "gfid-req"?



- Original Message -
> From: "Soumya Koduri" 
> To: "Zhitao Li" , "Gluster Devel" 
> 
> Cc: "Zhitao Li" , 1318078...@qq.com, "Poornima 
> Gurusiddaiah" 
> 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
> > Gluster-devel@gluster.org
> > http://lists.gluster.org/mailman/listinfo/gluster-devel
> >
>
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel

Re: [Gluster-devel] What does xdata mean? "gfid-req"?

2017-03-21 Thread Poornima Gurusiddaiah


- Original Message -
> From: "Soumya Koduri" 
> To: "Zhitao Li" , "Gluster Devel" 
> 
> Cc: "Zhitao Li" , 1318078...@qq.com, "Poornima 
> Gurusiddaiah" 
> 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
> > Gluster-devel@gluster.org
> > http://lists.gluster.org/mailman/listinfo/gluster-devel
> >
> 
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel


Re: [Gluster-devel] What does xdata mean? "gfid-req"?

2017-03-20 Thread Soumya Koduri



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.


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 


___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel


___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel


[Gluster-devel] What does xdata mean? "gfid-req"?

2017-03-18 Thread Zhitao Li
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.


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
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://lists.gluster.org/mailman/listinfo/gluster-devel