Whamcloud - gitweb
LU-7053 osd: don't lookup object at insert 92/17092/14
authorAlex Zhuravlev <alexey.zhuravlev@intel.com>
Mon, 9 Nov 2015 15:51:59 +0000 (18:51 +0300)
committerOleg Drokin <oleg.drokin@intel.com>
Mon, 14 Dec 2015 03:01:27 +0000 (03:01 +0000)
commit9ae3a2891f10a19acf855a90337316dda704da5d
tree57e515939b75004d36c44ebabca9b3f70b25ce55
parent6765d78583a7b144810e63ce8aa1c05d27cb8189
LU-7053 osd: don't lookup object at insert

the idea is to cache FID->ino/type mapping in per-thread cache
at declaration/object creation. then insert can find that information
and don't lookup object in LU/OI. this should avoid potential deadlock
with lu_object_find() and iget(). also, this should improve performance
as in the majority of cases required data is filled locally by create.

stats collected for sanity-benchmark:
lustre-MDT0000: 448306 created, lookups: 8910 in OI, 8910 in FLD
meaning we have to lookup ino 448K times and only 9K times we had
to use OI, in 439K cases we found ino in the cache.

Change-Id: Ifa66c2d074f04e47d0d85b735f57dc506aa65f4c
Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-on: http://review.whamcloud.com/17092
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: wangdi <di.wang@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/mdd/mdd_dir.c
lustre/mdd/mdd_internal.h
lustre/obdclass/local_storage.c
lustre/osd-ldiskfs/osd_handler.c
lustre/osd-ldiskfs/osd_internal.h
lustre/osd-ldiskfs/osd_oi.h