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

Reply via email to