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

Semen Boikov commented on IGNITE-1607:
--------------------------------------

testIncrementTxRestar' failed since one increment was lost, looks like this is 
failure scenario with 'onePhaseCommit' tx:
- node A is primary
- prepare messages for update1 and update2 sent to A, one of updates should 
fail with version check
- update 1 is prepared, message to backup is sent
- A is stopped, prepare future for update1 is cancelled, tx for update 1 is 
rolled back, entry lock is released
- update 2 is prepared, message to backup is sent
- node A fails, both updates are executed successfully on backups


> Implement deadlock-free optimistic serializable mode
> ----------------------------------------------------
>
>                 Key: IGNITE-1607
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1607
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: ignite-1.4
>            Reporter: Alexey Goncharuk
>            Assignee: Semen Boikov
>             Fix For: 1.5
>
>
> There is an idea of optimistic serializable mode which will provide better 
> scalability on relatively large transactions and large topologies when no 
> heavy contention is experienced.
>  * When transactional read is performed, we need to store the version of read 
> entry.
>  * When transaction prepare is performed, we can send prepare requests 
> simultaneously on all nodes. There is no need to preserve the order of locks 
> and create a queue of tx mappings for this mode.
>  * When we add local MVCC candidates on a primary node, two checks are 
> performed: that the current entry version matches the one transaction read 
> (if read was performed), and that currently there are no other local MVCC 
> candidates. If any of these checks fails, prepare step fails and transaction 
> is failed with optimistic conflict exception.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to