[
https://issues.apache.org/jira/browse/IGNITE-3321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15396374#comment-15396374
]
Igor Rudyak commented on IGNITE-3321:
-------------------------------------
How about transactions involving multiple caches?
Here is an example:
1) We have an Ignite transaction modifying two different caches
2) When committing the transaction our CacheStore.sessionEnd(...)
implementation will be called twice. Once for the first cache and than for the
second cache.
3) Lets assume that at the first call to CacheStore.sessionEnd(...) we
successfully saved all the changes made by the transaction to the first cache
into persistent store.
4) Also lets assume that at the second call to CacheStore.sessionEnd(...) we
failed to save into persistent store all the changes made to the second cache -
for example there is a network failure between Ignite cluster and persistent
store.
5) In the such situation we will have partially committed Ignite transaction
data in persistent store.
> 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
> Priority: Critical
> 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)