[jira] [Comment Edited] (IGNITE-1525) Return value for cache operation can be lost with onePhaseCommit

2016-09-19 Thread Anton Vinogradov (JIRA)

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

Anton Vinogradov edited comment on IGNITE-1525 at 9/19/16 3:34 PM:
---

putIfAbsent/remove will be fixed as separate issue IGNITE-3932
Prototype fixing putIfAbsent/remove checked to honor changes provided by this 
fix.


was (Author: avinogradov):
putIfAbsent/remove will be fixed as separated issue IGNITE-3932
prototype fixing putIfAbsent/remove checked to honor changes provided by this 
fix.

> 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: Critical
> Fix For: 1.8
>
>
> 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
(v6.3.4#6332)


[jira] [Comment Edited] (IGNITE-1525) Return value for cache operation can be lost with onePhaseCommit

2016-09-13 Thread Anton Vinogradov (JIRA)

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

Anton Vinogradov edited comment on IGNITE-1525 at 9/13/16 10:32 AM:


All comments fixed, TC and benchs checked.
putIfAbsent can be checked as separate issue.


was (Author: avinogradov):
All comments fixed, TC and benchs checked.

> 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: Critical
> Fix For: 1.8
>
>
> 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
(v6.3.4#6332)


[jira] [Comment Edited] (IGNITE-1525) Return value for cache operation can be lost with onePhaseCommit

2016-09-13 Thread Anton Vinogradov (JIRA)

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

Anton Vinogradov edited comment on IGNITE-1525 at 9/13/16 10:28 AM:


All comments fixed, TC and benchs checked.


was (Author: avinogradov):
All comments fixed, TC and benchs checked, 

> 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: Critical
> Fix For: 1.8
>
>
> 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
(v6.3.4#6332)


[jira] [Comment Edited] (IGNITE-1525) Return value for cache operation can be lost with onePhaseCommit

2016-08-29 Thread Anton Vinogradov (JIRA)

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

Anton Vinogradov edited comment on IGNITE-1525 at 8/29/16 2:06 PM:
---

I've implemented described.
Full bencmarks result is pending.


was (Author: avinogradov):
I've iimplemented described.
Full bencmarks result is pending.

> 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: Critical
> Fix For: 1.8
>
>
> 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
(v6.3.4#6332)


[jira] [Comment Edited] (IGNITE-1525) Return value for cache operation can be lost with onePhaseCommit

2016-07-26 Thread Anton Vinogradov (JIRA)

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

Anton Vinogradov edited comment on IGNITE-1525 at 7/26/16 1:24 PM:
---

Comments fixed.
GridCacheReturn now allways regenerates at backups.
OPC now not happens at changing topology, dht map generates on topology instead 
of affinity.
Also fixed race when GridDhtTxPrepareResponse were send before tx commited in 
OPC case.


was (Author: avinogradov):
Comments fixed.

> 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
(v6.3.4#6332)


[jira] [Comment Edited] (IGNITE-1525) Return value for cache operation can be lost with onePhaseCommit

2016-06-27 Thread Anton Vinogradov (JIRA)

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

Anton Vinogradov edited comment on IGNITE-1525 at 6/27/16 10:51 AM:


Sounds good, 
but I have another idea, 
Seems we can get rid of {{GridDhtTxFinishRequest}} and 
{{GridDhtTxFinishResponse}} in case of onePhaseCommit.

Tx steps in this case:
1) Client sends {{GridNearTxPrepareRequest}} to Primary (nothing changed)
2) Primary sends {{GridDhtTxPrepareRequest}} to Backup (nothing changed)
3) #1 Point where Primary or Backup can fail with possible committed Tx (at 
Backup).
4) Backup sends {{GridNearTxPrepareResponse}} (or its analog) to Client. Client 
informed that Tx committed.
5) #2 Point where Primary or Backup can fail with committed Tx (at Backup).
6) Backup sends {{GridDhtTxPrepareResponse}} to Primary. Primary commits data 
and release locks.

Possible fails and solutions:
#1 Primary fails. Ok, go to the step 4, skip step 6.
#1 Backup fails. Primary node, at Backup left, finishes Tx and sends 
{{GridNearTxPrepareResponse}} to Client.
#2 Primary fails. Ok, skip step 6.
#2 Backup fails. Primary node, at Backup left, finishes Tx.

Thoughts?


was (Author: avinogradov):
Sounds good, 
but I have another idea, 
Seems we can get rid of {{GridDhtTxFinishRequest}} and 
{{GridDhtTxFinishResponse}} in case of onePhaseCommit.

Tx steps in this case:
1) Client sends {{GridNearTxPrepareRequest}} to Primary (nothing changed)
2) Primary sends {{GridDhtTxPrepareRequest}} to Backup (nothing changed)
3) #1 Point where Primary or Backup can fail with possible committed Tx (at 
Backup).
4) Backup sends {{GridNearTxPrepareResponse}} (or its analog) to Client. Client 
informed that Tx committed.
5) #2 Point where Primary or Backup can fail with committed Tx (at Backup).
6) Backup sends {{GridDhtTxPrepareResponse}} to Primary. Primary commits data 
and release locks.

Possible fails and solutions:
#1 Primary fails. Ok, go to the step 4, skip step 6.
#1 Backup fails. Primary node, at backup left, finishes Tx and sends 
{{GridNearTxPrepareResponse}} to Client.
#2 Primary fails. Ok, skip step 6.
#2 Backup fails. Primary node, at backup left, finishes Tx.

Thoughts?

> 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
(v6.3.4#6332)


[jira] [Comment Edited] (IGNITE-1525) Return value for cache operation can be lost with onePhaseCommit

2016-06-27 Thread Anton Vinogradov (JIRA)

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

Anton Vinogradov edited comment on IGNITE-1525 at 6/27/16 10:51 AM:


Sounds good, 
but I have another idea, 
Seems we can get rid of {{GridDhtTxFinishRequest}} and 
{{GridDhtTxFinishResponse}} in case of onePhaseCommit.

Tx steps in this case:
1) Client sends {{GridNearTxPrepareRequest}} to Primary (nothing changed)
2) Primary sends {{GridDhtTxPrepareRequest}} to Backup (nothing changed)
3) #1 Point where Primary or Backup can fail with possible committed Tx (at 
Backup).
4) Backup sends {{GridNearTxPrepareResponse}} (or its analog) to Client. Client 
informed that Tx committed.
5) #2 Point where Primary or Backup can fail with committed Tx (at Backup).
6) Backup sends {{GridDhtTxPrepareResponse}} to Primary. Primary commits data 
and release locks.

Possible fails and solutions:
#1 Primary fails. Ok, go to the step 4, skip step 6.
#1 Backup fails. Primary node, at backup left, finishes Tx and sends 
{{GridNearTxPrepareResponse}} to Client.
#2 Primary fails. Ok, skip step 6.
#2 Backup fails. Primary node, at backup left, finishes Tx.

Thoughts?


was (Author: avinogradov):
Sounds good, 
but I have another idea, 
Seems we can get rid of {{GridDhtTxFinishRequest}} and 
{{GridDhtTxFinishResponse}} in case of onePhaseCommit.

Tx steps in this case:
1) Client sends {{GridNearTxPrepareRequest}} to Primary (nothing changed)
2) Primary sends {{GridDhtTxPrepareRequest}} to Backup (nothing changed)
3) #1 Point where Primary or Backup can fail with possible committed Tx (at 
Backup).
4) Backup sends {{GridNearTxPrepareResponse}} (or its analog) to Client. Client 
informed that Tx committed.
5) #2 Point where Primary or Backup can fail with committed Tx (at Backup).
6) Backup sends {{GridDhtTxPrepareResponse}} to Primary. Primary committs data 
and release locks.

Possible fails and solutions:
#1 Primary fails. Ok, go to the step 4, skip step 6.
#1 Backup fails. Primary node, at backup left finishes Tx and sends 
{{GridNearTxPrepareResponse}} to Client.
#2 Primary fails. Ok, skip step 6.
#2 Backup fails. Primary node, at backup left finishes Tx.

Thoughts?

> 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
(v6.3.4#6332)


[jira] [Comment Edited] (IGNITE-1525) Return value for cache operation can be lost with onePhaseCommit

2016-06-24 Thread Alexey Goncharuk (JIRA)

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

Alexey Goncharuk edited comment on IGNITE-1525 at 6/25/16 12:50 AM:


I think we should keep a return value on backup node for a short period of time 
when needed. We can clear return value when:
 * Backup receives an asynchronous ACK from originating node when TX is done
 * Backup receives DhtTxFinishRequest from originating node
 * Originating node leaves the grid.

We can re-use completedVersHashMap in IgniteTxManager to keep return value to 
avoid creation of additional maps.


was (Author: agoncharuk):
I think we should keep a return value on backup node for a short period of time 
when needed. We can clear return value when:
 * Backup receives an asynchronous ACK from originating node when TX is done
 * Backup receives DhtTxFinishRequest from originating node
 * Originating node leaves the grid.

> 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
(v6.3.4#6332)