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 <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