[infinispan-issues] [JBoss JIRA] Updated: (ISPN-976) TopologyAwareConsistentHash does not work when numOwners=1 and rehashing

Mircea Markus (JIRA) jira-events at lists.jboss.org
Fri Mar 11 07:00:45 EST 2011


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

Mircea Markus updated ISPN-976:
-------------------------------

    Description: 
Specifically, the problem is with getStateProvidersOnLeave.
 
Assume you have nodes 1, 2, and 4.
Now node 3 joins.
This method will iterate over each address and will skip the joiner (node3).
For the remaining nodes it will call getOwners
e.g. - getOwners(node1), getOwners(node2), getOwners(node3)
This method will always begin by adding the first node in the tailMap which is the address that is being iterated over. Since numOwners is set to 1 it skips the while loop and returns the result.
So...
getOwners(1) returns {node1}
getOwners(2) returns {node2}
getOwners(4) returns {node4}
Now we return to getStateProvidersOnLeave
It now checks to see if the result contains the joiner (node3). However, it can never contain the joiner.


  was:
Problem is fully described here: http://community.jboss.org/message/590754#590754
Setting prio to minor as there's not a lot of sense in having numOwners=1 and TACH.



> TopologyAwareConsistentHash does not work when numOwners=1 and rehashing 
> -------------------------------------------------------------------------
>
>                 Key: ISPN-976
>                 URL: https://issues.jboss.org/browse/ISPN-976
>             Project: Infinispan
>          Issue Type: Bug
>            Reporter: Mircea Markus
>            Assignee: Mircea Markus
>            Priority: Minor
>
> Specifically, the problem is with getStateProvidersOnLeave.
>  
> Assume you have nodes 1, 2, and 4.
> Now node 3 joins.
> This method will iterate over each address and will skip the joiner (node3).
> For the remaining nodes it will call getOwners
> e.g. - getOwners(node1), getOwners(node2), getOwners(node3)
> This method will always begin by adding the first node in the tailMap which is the address that is being iterated over. Since numOwners is set to 1 it skips the while loop and returns the result.
> So...
> getOwners(1) returns {node1}
> getOwners(2) returns {node2}
> getOwners(4) returns {node4}
> Now we return to getStateProvidersOnLeave
> It now checks to see if the result contains the joiner (node3). However, it can never contain the joiner.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the infinispan-issues mailing list