Whamcloud - gitweb
LU-4611 osd: improve credits calculation 07/10407/2
authorNiu Yawei <yawei.niu@intel.com>
Thu, 27 Mar 2014 05:23:25 +0000 (01:23 -0400)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 27 May 2014 15:43:23 +0000 (15:43 +0000)
commit83ec1108525955e9486573ae74d0c656e68bf97d
tree52bf7360cd391e35f6ad85d3b48efbf29df679cb
parent2131c460b6c0ba9901e6e8b920ef0a029e051d07
LU-4611 osd: improve credits calculation

- llog catalog do not declare records twice (for old and new objects)
  this might be an issue on ZFS with full debug enabled..
- llog to specify append by pos=-1, so OSD can take this into account
- object create/destroy should not include OI, this is calculated yet
- EA declaration to improve few specific cases
- osd_declare_write() to recognize overwrite optimistically,
  using inode size and i_blocks
- osd_declare_write() to optimize very specific cases, like legacy
  blockmaps with small offsets and allocated indirects
- index delete modify just a single block

preliminary testing on a local setup with 7 OSTs:
1360 credits before and 436 credits after.

llog declarations and index inserts (part of llog object creation)
still consume about 70% (7 OSTs):
   create: 7/28, destroy: 1/4
   attr_set: 2/2, xattr_set: 8/21
   write: 37/179, punch: 14/56, quota 2/2
   insert: 8/135, delete: 2/5
   ref_add: 1/1, ref_del: 3/3

Lustre-commit: 3902ff4c54925b2f1fcb732a32ed7ee5428e9f77
Lustre-change: http://review.whamcloud.com/9258

Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Signed-off-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Change-Id: Ia7f0f08e0a4fc19acb11f2dd030c0a9879bc75f7
Reviewed-on: http://review.whamcloud.com/10407
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/obdclass/llog_cat.c
lustre/obdclass/llog_internal.h
lustre/obdclass/llog_osd.c
lustre/osd-ldiskfs/osd_handler.c
lustre/osd-ldiskfs/osd_internal.h
lustre/osd-ldiskfs/osd_io.c
lustre/osd-ldiskfs/osd_quota.c
lustre/osd-zfs/osd_io.c