[infinispan-issues] [JBoss JIRA] Updated: (ISPN-731) make rehashing state and tx log draining serial

Mircea Markus (JIRA) jira-events at lists.jboss.org
Mon Oct 25 08:12:54 EDT 2010


     [ https://jira.jboss.org/browse/ISPN-731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mircea Markus updated ISPN-731:
-------------------------------

        Summary: make rehashing state and tx log draining serial  (was: make state transfer and tx log draining serial)
    Description: 
{A,B,C, D}, num owners= 2. A's state is {(k,v)} and a transactions is prepared with {(k, otherValue)} on A.
B crashes.
two things happen with A's state: 
1. on C an thread pulls state from A
2. A sends transaction state to C on another thread

Whit the right timing:
- 2 executes first (tx log is drained)
- tx commits - this applies the changes on C as well 
- 1 executes last 
Data ends up inconsistent:
A's states is {(k, otherValue)} while C's state is  {(k,v)} 

State transfer and tx log needs to be sequential (not parallel).

See the attached email thread for discussions around this.

  was:
{A,B,C, D}, num owners= 2. A's state is {(k,v)} and a transactions is prepared with {(k, otherValue)} on A.
B crashes.
two things happen with A's state: 
1. on C an thread pulls state from A
2. A sends transaction state to C on another thread

Whit the right timing:
- 2 executes first (tx log is drained)
- tx commits - this applies the changes on C as well 
- 1 executes last 
Data ends up inconsistent:
A's states is {(k, otherValue)} while C's state is  {(k,v)} 

State transfer and tx log needs to be sequential (not parallel). The easy way to achieve this is  to only do push, i.e. A sends the state and then drains tx log.
This can be reproduce by running ConcurrentNonOverlappingLeaveTest.testTransactional (fails aprox 1/5)




> make rehashing state and tx log draining serial
> -----------------------------------------------
>
>                 Key: ISPN-731
>                 URL: https://jira.jboss.org/browse/ISPN-731
>             Project: Infinispan
>          Issue Type: Bug
>    Affects Versions: 4.1.0.Final
>            Reporter: Mircea Markus
>            Assignee: Manik Surtani
>            Priority: Critical
>             Fix For: 4.2.0.BETA1, 4.2.0.Final
>
>
> {A,B,C, D}, num owners= 2. A's state is {(k,v)} and a transactions is prepared with {(k, otherValue)} on A.
> B crashes.
> two things happen with A's state: 
> 1. on C an thread pulls state from A
> 2. A sends transaction state to C on another thread
> Whit the right timing:
> - 2 executes first (tx log is drained)
> - tx commits - this applies the changes on C as well 
> - 1 executes last 
> Data ends up inconsistent:
> A's states is {(k, otherValue)} while C's state is  {(k,v)} 
> State transfer and tx log needs to be sequential (not parallel).
> See the attached email thread for discussions around this.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the infinispan-issues mailing list