ObjectStore interface and std::list

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

 



Hi,

I missed out on the context leading up to the discussion about
queue_transactions and the use of raw vs. smart pointers, but I'm curious
whether the use of std::list in the ObjectStore interface has come up as
well. That's another source of allocations that could be avoided.

A naive approach could just replace the list with vector, which could at
least reduce the number of allocations to one if you reserve() space for
all of your elements up front.

An interface based on iterators could also help, by allowing the caller to
put an array on the stack and pass that in. Iterators are tricky because
the generic form requires templates, and template functions can't be
virtual. But if we require the elements to be sequential in memory (i.e.
raw array, std::array<Transaction*> or std::vector<Transaction*>), the
interface could take (Transaction** begin, Transaction** end) without
requiring templates. This interface can also be made compatible with
unique_ptrs.

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