If we keep them separate and pass them to ObjectStore::queue_transactions() ,the cpu usage of ObjectStore::queue_transactions() would take up from 6.03% to 6.76% compared with re-using op_t items. 2015-11-01 11:05 GMT+08:00 池信泽 <xmdxcxz@xxxxxxxxx>: > Yes, I think so. > keeping them separate and pass them to > ObjectStore::queue_transactions() would increase the time on > transaction encode process and exhaust more cpu. > > The transaction::append holds 0.8% cpu on my environment. > The transaction encoding is also really a bottleneck which process > holds 1.8% cpu on my environment. > > 2015-11-01 4:42 GMT+08:00 Sage Weil <sage@xxxxxxxxxxxx>: >> On Sat, 31 Oct 2015, Ning Yao wrote: >>> Yeah, since issue_op is called before log_operation, we may consider >>> to reuse op_t after sent encoded op_t to the wire. local_t.append(), >>> at least, does copy the op_bl in op_t transaction and we may avoid >>> this memory copy, and if we can avoid this append operation as well as >>> in sub_op_modify_impl(), it, at least, improves the performance 1%~2% >>> under my testing environment using ssd as Filestore backend. >>> The only difference we find in this path is that local_t should be >>> done first, but actually it seems that the order of the transaction is >>> not quite important. If so, we may refactor and improve this? >> >> I seem to recall that in teh EC case the order does matter (I had switched >> the append order when trying to fix this before but had to revert because >> things broke). >> >> And I'm a bit nervous about re-using local_t and relying on the send vs >> submit timing. Is it not practical to keep them separate and >> pass them both down to ObjectStore::queue_transactions()? >> >> sage > > > > -- > Regards, > xinze -- Regards, xinze -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html