Well, yeah we are, it's just the actual Transaction structure which
wouldn't be dynamic -- the buffers and many other fields would still
hit the allocator.
-Sam

On Thu, Dec 3, 2015 at 11:29 AM, Casey Bodley <[email protected]> wrote:
>
> ----- Original Message -----
>> Eh, Sage had a point that Transaction has a bunch of little fields
>> which would have to be filled in -- its move constructor would be less
>> trivial than unique_ptr's.
>> -Sam
>
> It's true that the move ctor has to do work. I counted 18 fields, half of
> which are integers, and the rest have move ctors themselves. But the cpu
> is good at integers. The win here is that you're not hitting the allocator
> in the fast path.
>
> Casey
>
>>
>> On Thu, Dec 3, 2015 at 11:12 AM, Adam C. Emerson <[email protected]> wrote:
>> > On 03/12/2015, Casey Bodley wrote:
>> > [snip]
>> >> The queue_transactions() interface could take a container of Transactions,
>> >> rather than pointers to Transactions, and the ObjectStore would move them
>> >> out of the container into whatever representation it prefers.
>> > [snip]
>> >
>> > Or a pointer and count (or we could steal array_view from GSL). That way we
>> > could pass in any continguous range (std::vector or even a std::array or
>> > regular C style array allocated on the stack.)
>> --
>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>> the body of a message to [email protected]
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to