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

Igor Rudyak commented on IGNITE-3321:
-------------------------------------

As a possible solution it could be used *RAMP* (Read Atomic Multi-Partition) 
transactions to address this. 

RAMP introduces isolation model called Read Atomic (RA) isolation. RA provides 
transactions with a "snapshot" view of the database that respects transaction 
boundaries. RA is simply a restriction on write visibility. While ACID 
"Atomicity" property requires that all or none of a transaction’s updates are 
performed, RA requires that all or none of a transaction’s updates are made 
visible to other transactions.

RAMP transactions guarantee scalability and outperform existing atomic 
algorithms because they satisfy two key scalability constraints:
- *Synchronization independence* - one client’s transactions cannot cause 
another client’s transactions to stall or fail. 
- *Partition independence* - clients never need to contact partitions that 
their transactions do not directly reference.

For more details about RAMP transaction algorithms see the article: 
http://www.bailis.org/papers/ramp-sigmod2014.pdf

> Address possible data corruption in Persistent Store implementations
> --------------------------------------------------------------------
>
>                 Key: IGNITE-3321
>                 URL: https://issues.apache.org/jira/browse/IGNITE-3321
>             Project: Ignite
>          Issue Type: Improvement
>          Components: cache
>    Affects Versions: 1.6
>         Environment: any
>            Reporter: Alexandre Boudnik
>            Assignee: Alexandre Boudnik
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> When records from partitions on different nodes are committed, each node uses 
> its own SQL connection. It is possible that one of DML statements will fail 
> on one of the connections, while others have committed successfully.
> And we need to make a very hard decision:
> - If we ignore fail then we will lose some changes.
> - If we throw an exception we will make inconsistent changes.



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

Reply via email to