ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anton Vinogradov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-1525) Return value for cache operation can be lost with onePhaseCommit
Date Mon, 27 Jun 2016 13:45:52 GMT

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

Anton Vinogradov commented on IGNITE-1525:

Sounds good, 
but I have another idea in case of One-Phase-Commit, to send {{GridNearTxPreparePreliminaryResponse}}
(new message) from Primary to Client after sending {{GridDhtTxPrepareRequest}} to Backup.
{{GridNearTxPreparePreliminaryResponse}} in this case should contain {{GridCacheReturn}}.
This message delivers execution result, but not finishes Tx future.
In this case {{GridDhtTxPrepareResponse}} will deliver empty {{GridCacheReturn}}. 

So, steps:
1) Client sends {{GridNearTxPrepareRequest}} to Primary.
2) Primary sends {{GridDhtTxPrepareRequest}} to Backup.
3) Primary sends {{GridNearTxPreparePreliminaryResponse}} to Client. (new)
4) Backup sends {{GridDhtTxPrepareResponse}} to Primary.
5) Primary sends {{GridNearTxPrepareResponse}} to Client. (changed, {{GridNearTxPrepareResponse}}
contains no {{GridCacheReturn}})

P.s. {{GridDhtTxFinishRequest}} and {{GridDhtTxFinishResponse}} still used to fix Primary
failed case.

This case also required new message (Instead of [Backup receives an asynchronous ACK from
originating node when TX is done]) but requires no additional memory at Backup.


> Return value for cache operation can be lost with onePhaseCommit
> ----------------------------------------------------------------
>                 Key: IGNITE-1525
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1525
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: cache
>    Affects Versions: ignite-1.4
>            Reporter: Semen Boikov
>            Assignee: Anton Vinogradov
>            Priority: Blocker
>             Fix For: 1.7
> Looks like with {{onePhaseCommit}} return value for cache operation can be lost if primary
node fails, {{GridNearTxPrepareResponse}} with return value is not received, but transaction
executes 'check backup' step and finishes without error.
> Reproduces in {{IgniteCachePutRetryTransactionalSelfTest.testInvoke}}, also added one
more test to check return value {{IgniteCachePutRetryTransactionalSelfTest.testGetAndPut}}.
> Please unmute tests on TC when fixed.

This message was sent by Atlassian JIRA

View raw message