[ 
https://issues.apache.org/jira/browse/IGNITE-1553?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16372694#comment-16372694
 ] 

Alexey Kuznetsov commented on IGNITE-1553:
------------------------------------------

[~agoncharuk] 
I have implemented this optimisation, and i have a question.

This optimisation requires database to support prepare and commit phases. 
Suppose, we have some database `A`, we have no way to figure out whether it 
supports prepare and finish or not.

I propose to add some method 

{code:java}
boolean supports2PhaseCommit(){
   return true;// or false;
}
{code}

 to CacheStore interface. It will give us opportunity to optimize transaction 
prepare step given any cache store.

What do you think about it ?




> Optimize transaction prepare step when store is enabled
> -------------------------------------------------------
>
>                 Key: IGNITE-1553
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1553
>             Project: Ignite
>          Issue Type: Improvement
>          Components: cache
>    Affects Versions: ignite-1.4
>            Reporter: Alexey Goncharuk
>            Assignee: Alexey Kuznetsov
>            Priority: Major
>              Labels: important
>
> Currently entries are enlisted in a database transaction after grid 
> transaction is in PREPARED state. We can do this in parallel in the following 
> fashion (pseudo-code):
> {code}
> fut = tx.prepareAsync();
> db.write(tx.writes());
> fut.get();
> try {
>     db.commit();
>     
>     tx.commit();
> }
> catch (Exception e) {
>     tx.rollback();
> }
> {code}
> If this approach is applied, we should be able to reduce latency for 
> transactions when write-through is enabled.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to