Re: why we use two ObjectStore::Transaction in ReplicatedBackend::submit_transaction?

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

 



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
--
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



[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