On Thu, Dec 3, 2015 at 8:17 AM, Somnath Roy <[email protected]> wrote: > Hi Sage/Sam, > As discussed in today's performance meeting , I am planning to change the > queue_transactions() interface to the following. > > int queue_transactions(Sequencer *osr, list<TransactionRef>& tls, > Context *onreadable, Context *ondisk=0, > Context *onreadable_sync=0, > TrackedOpRef op = TrackedOpRef(), > ThreadPool::TPHandle *handle = NULL) ; > > typedef unique_ptr<Transaction> TransactionRef; > > > IMO , there is a problem with this approach. > > The interface like apply_transaction(), queue_transaction() etc. basically > the interfaces taking single transaction pointer and internally forming a > list to call the queue_transactions() also needs to be changed to accept > TransactionRef which will be *bad*. The reason is while preparing list > internally we need to move the uniqueue_ptr and callers won't be aware of > that. > > Also, now changing every interfaces (and callers) that is taking Transaction* > will produce a very big delta (and big testing effort as well). > > So, should we *reconsider* co-existing both queue_transactions() interfaces > and call the new one from the IO path ?
I like this, isolate any share_ptr area is a hard job. Look forward to! > > Thanks & Regards > Somnath > > > > -- > 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
