[
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)