[GEDI] Proposal for an extended READDIRPLUS operation via gfAPI

Niels de Vos ndevos at redhat.com
Thu Apr 27 10:10:00 UTC 2017


On Fri, Apr 21, 2017 at 06:50:28PM +0530, Soumya Koduri wrote:
> Hi,
> 
> We currently have readdirplus operation to fetch stat for each of the
> dirents. But that may not be sufficient and often applications may need
> extra information, like for eg., NFS-Ganesha like applications which operate
> on handles need to generate handles for each of those dirents returned. So
> this would require extra calls to the backend, in this case LOOKUP (which is
> very expensive operation) resulting in quite slow
> readdir performance.
> 
> To address that, introducing this new API using which applications can
> request for any extra information to be returned as part of
> readdirplus response [1]
> 
> Patch: https://review.gluster.org/#/c/15663
> Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1442950
> Github issue#  https://github.com/gluster/glusterfs/issues/174
> 
> The interface is designed to be a bit aligned with xstat [2] format as
> suggested by Niels. This helps in extending this operation in future.
> 
> The synopsis of this new API - the arguments to be passed and how it can be
> used is mentioned in the patch [3].
> 
> Since the initial requirement is to return handles, I have defined it with
> glfs_h_* prefix for now, but it may well be used by applications not having
> to use them (like SMB). Suggestions are welcome.

I do not think this should be a glfs_h_* specific function. None of the
parameters depend on handles. That one of the attributes that can be
requested is a glfs_object (handle) is just sortof conincidence.
 
> The current changes are POC and need to tested extensively but we had seen a
> huge performance improvement (with initial patch-set, at least on a single
> brick volume).
> 
> Request for comments/suggestions on any improvements needed on the
> interface.

As you've noticed, I've added quite a few comments in Gerrit already :D

Shyam gave this work an exception for 3.11, meaning that it may get
merged and backported before the 5th of May. With the current progress,
it seems you're on track to get that done.

Thanks!
Niels


> Thanks,
> Soumya
> 
> [1] https://review.gluster.org/#/c/15663
> [2] https://lwn.net/Articles/394298/
> [3] https://review.gluster.org/#/c/15663/8/api/src/glfs-handles.h
> _______________________________________________
> integration mailing list
> integration at gluster.org
> http://lists.gluster.org/mailman/listinfo/integration
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.gluster.org/pipermail/integration/attachments/20170427/0dc4eb39/attachment.sig>


More information about the integration mailing list