[Bugs] [Bug 1447571] RFE: Enhance handleops readdirplus operation to return handles along with dirents
bugzilla at redhat.com
bugzilla at redhat.com
Fri May 5 11:12:51 UTC 2017
https://bugzilla.redhat.com/show_bug.cgi?id=1447571
--- Comment #3 from Worker Ant <bugzilla-bot at gluster.org> ---
COMMIT: https://review.gluster.org/17164 committed in release-3.11 by Kaushal M
(kaushal at redhat.com)
------
commit e7927c9aaa8dab454f0e72c1f53cb79f0e86a5db
Author: Soumya Koduri <skoduri at redhat.com>
Date: Fri Apr 21 16:30:20 2017 +0530
gfapi/handleops: Introducing glfs_xreaddirplus_r() fop for handleops
Its known that readdirplus operation fetches stat as well for each of the
dirents. But often applications may need extra information, like for eg.,
NFS-Ganesha which operates on handles needs 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 very low
readdir performance.
To address that introducing this new API using which applications can
make request for any extra information to be returned as part of
readdirplus response.
Currently this new api returns stat and handles as demanded by application.
The synopsis of the API is noted in glfs.h.
@todo:
* Enhance test script using this new API
Below were the perf results on single brick volume with and without
these changes -
Dataset used -
10*100 directories and each directory containing 100 empty files.
I used NFS-Ganesha application to test these changes -
>for i in {1..5}; do systemctl restart nfs-ganesha; sleep 10; mount -t nfs
-o vers=4 localhost:/brick_vol /mnt; cd /mnt; echo "ITERATION$i"; date; find .
> tmp-nfs.log; date; cd /; umount /mnt; sleep 2; done;
Without these changes -
ITERATION1
Mon Mar 20 17:22:26 IST 2017
Mon Mar 20 17:23:18 IST 2017
ITERATION2
Mon Mar 20 17:23:39 IST 2017
Mon Mar 20 17:24:28 IST 2017
ITERATION3
Mon Mar 20 17:24:49 IST 2017
Mon Mar 20 17:25:36 IST 2017
ITERATION4
Mon Mar 20 17:30:57 IST 2017
Mon Mar 20 17:31:37 IST 2017
ITERATION5
Mon Mar 20 17:31:57 IST 2017
Mon Mar 20 17:32:40 IST 2017
[root at dhcp35-197 /]#
On an average ~46.2 sec
With these changes applied -
ITERATION1
Mon Mar 20 17:35:03 IST 2017
Mon Mar 20 17:35:15 IST 2017
ITERATION2
Mon Mar 20 17:35:36 IST 2017
Mon Mar 20 17:35:46 IST 2017
ITERATION3
Mon Mar 20 17:36:06 IST 2017
Mon Mar 20 17:36:17 IST 2017
ITERATION4
Mon Mar 20 17:41:38 IST 2017
Mon Mar 20 17:41:49 IST 2017
ITERATION5
Mon Mar 20 17:42:10 IST 2017
Mon Mar 20 17:42:20 IST 2017
On an average ~10.8 sec
This is backport of below upstream patch -
https://review.gluster.org/15663
>Updates #174
>BUG: 1442950
>Change-Id: I0f74f74dc62085ca4c4a23c38e3edc84bd850876
>Signed-off-by: Soumya Koduri <skoduri at redhat.com>
>Reviewed-on: https://review.gluster.org/15663
>Smoke: Gluster Build System <jenkins at build.gluster.org>
>NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
>Reviewed-by: Niels de Vos <ndevos at redhat.com>
>CentOS-regression: Gluster Build System <jenkins at build.gluster.org>
BUG: 1447571
Change-Id: I0f74f74dc62085ca4c4a23c38e3edc84bd850876
Signed-off-by: Soumya Koduri <skoduri at redhat.com>
Reviewed-on: https://review.gluster.org/17164
Smoke: Gluster Build System <jenkins at build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
CentOS-regression: Gluster Build System <jenkins at build.gluster.org>
Reviewed-by: Niels de Vos <ndevos at redhat.com>
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are on the CC list for the bug.
More information about the Bugs
mailing list