[
https://issues.jboss.org/browse/ISPN-1275?page=com.atlassian.jira.plugin....
]
Galder Zamarreño commented on ISPN-1275:
----------------------------------------
Dan, I don't think that's the problem. From what I understand, let's say that
NodeA has a set of ids. Then when Rehasher comes around,
AbstractWheelConsistentHash.setCaches does not take the old hash ids into account. It
simply recalculates the whole thing without taking previous hash id mappings into account,
potentially leading to movements of hash ids. One way I could see this being solved is by
keeping a copy of the positions and in getNormalizedHash() checking that we're not
overriding an old position.
That is of couse, assuming my assumption is still valid. Otherwise, there is an
alternative that involves Hot Rod going through all nodes in a given view, and calling
getHashIds() for them whenever a new node starts up. This performance operation is
dependant on the number of nodes in the cluster though which is not nice.
Virtual nodes producing same hash id for two different cluster nodes
--------------------------------------------------------------------
Key: ISPN-1275
URL:
https://issues.jboss.org/browse/ISPN-1275
Project: Infinispan
Issue Type: Bug
Components: Distributed Cache
Affects Versions: 5.0.0.CR8
Reporter: Galder Zamarreño
Assignee: Dan Berindei
Priority: Blocker
Fix For: 5.0.0.FINAL
Attachments: hashids.log
While working on ISPN-1273, I've discovered that when virtual nodes are enabled,
ConsistentHash.getHashIds(address) can return the same hash for two different cluster
nodes. Example: with 500 virtual nodes, both NodeA-23181 and NodeB-39177 produce hash id
*5289*. See attached log.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira