Yes, I posted the new result after adding -O2 in the compiler flag and it shows almost no overhead with unique_ptr. I will add the test of adding to list overhead and start implementing the new interface. But, regarding my other point of changing all the objecstore interfaces (my first mail on this mail chain in case you have missed) taking Transaction, any thought of that ? Should we reconsider having two queue_transaction interface ? Thanks & Regards Somnath -----Original Message----- From: Sage Weil [mailto:sage@xxxxxxxxxxxx] Sent: Thursday, December 03, 2015 3:50 AM To: Somnath Roy Cc: Samuel Just (sam.just@xxxxxxxxxxx); ceph-devel@xxxxxxxxxxxxxxx Subject: RE: queue_transaction interface + unique_ptr + performance 1- I agree we should avoid shared_ptr whenever possible. 2- unique_ptr should not have any more overhead than a raw pointer--the compiler is enforcing the single-owner semantics. See for example https://msdn.microsoft.com/en-us/library/hh279676.aspx "It is exactly is efficient as a raw pointer and can be used in STL containers." Unless the implementation is broken somehow? That seems unlikely... sage -- 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