Re: problem about pgmeta object?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 9 Dec 2015, Ning Yao wrote:
> The function and transactions corresponding with pgmeta object is listed
> below:
> touch()   and   remove()  for  pgmeta object creation and deletion
> _omap_setkeys()  and  _omap_rmkeys()  to  update k/v data in omap for
> pgmeta(pg_info, epoch, rollback_info, pg_log and so on)
> omap_get_values() to retrieve data from omap, always call it during osd
> daemon start proccess

Note that we should make sure collection_list continues to show it, so we 
can't skip creating the file...
 
> So I think the performance will be hurt in writeOp routine as heavily call
> _omap_setkeys()  and  _omap_rmkeys(). The ideal way to deal with it,  of
> course, is to eventually treat pgmeta as a logical object(not real object
> existed). But it needs alter much in FileStore, since we cannot directly
> remove the t.touch()  and  t.remove() transaction and upgrade store to
> remove the pgmeta_object based on info_struct_v. But as we discussed before,
> it is FileStore issue and need keep compatibility for other backends. 
> Therefore, in order to not to alter FileStore too much and keep all its
> compatibility, my strategy is just to skip the meta object existence
> checking on the main routine of writeOps like this:
> https://github.com/ceph/ceph/pull/6870

Yep, this sounds like the right hack to me.
 
> This brings a benefit to reduce _omap_setkeys()  execution time
>  from 123.784us to 108.444us averagely (about 15% improvement), and reduce
> the whole cpu time 0.5% ~ 1% globally. 

That seems worthwhile!

sage

[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux