[
https://issues.jboss.org/browse/ISPN-1217?page=com.atlassian.jira.plugin....
]
Galder Zamarreño commented on ISPN-1217:
----------------------------------------
Indeed, the current HotRod server set up is that a HotRod topology address has a map of
cache->hashId where it assumes that there's a single hashId per cache. Virtual
nodes breaks this assumption which means that for a topology address, a given cache has
multiple hashIds.
Luckily, this should not require a change in the protocol
(
http://community.jboss.org/docs/DOC-14421) because nothing stops the server sending
several hash id entries for a single host:port, i.e. localhost:1234,hashId=75848,
localhost:1234,hashId=78304...etc.
Internally, the server will have to do some adjustments including using a different method
instead of ConsistentHash.getHashId().
For future reference, here's the stacktrace:
{code}java.lang.IllegalStateException: With virtual nodes enabled each address has more
than one hash id
at
org.infinispan.distribution.ch.AbstractWheelConsistentHash.getHashId(AbstractWheelConsistentHash.java:205)
at
org.infinispan.server.hotrod.HotRodServer.org$infinispan$server$hotrod$HotRodServer$$updateHashIds(HotRodServer.scala:176)
at
org.infinispan.server.hotrod.HotRodServer$$anonfun$createTopologyAddress$1.apply(HotRodServer.scala:156)
at
org.infinispan.server.hotrod.HotRodServer$$anonfun$createTopologyAddress$1.apply(HotRodServer.scala:155)
at scala.collection.Iterator$class.foreach(Iterator.scala:631)
at scala.collection.JavaConversions$JIteratorWrapper.foreach(JavaConversions.scala:549)
at
org.infinispan.server.hotrod.HotRodServer.createTopologyAddress(HotRodServer.scala:155)
at
org.infinispan.server.hotrod.HotRodServer.addSelfToTopologyView(HotRodServer.scala:106)
at org.infinispan.server.hotrod.HotRodServer.startTransport(HotRodServer.scala:98)
at
org.infinispan.server.core.AbstractProtocolServer.start(AbstractProtocolServer.scala:99)
at org.infinispan.server.hotrod.HotRodServer.start(HotRodServer.scala:79)
...
{code}
Implement Virtual Nodes for Hotrod Client Server
------------------------------------------------
Key: ISPN-1217
URL:
https://issues.jboss.org/browse/ISPN-1217
Project: Infinispan
Issue Type: Bug
Components: Cache Server
Affects Versions: 5.0.0.CR7
Environment: n/a
Reporter: Mark Addy
Assignee: Galder Zamarreño
Labels: hotrod, infinispan, virtual_node
Fix For: 5.0.0.FINAL
The Hotrod Client Server architecture does not support Virtual Nodes, configuring this
option prevents start up.
Without virtual nodes data distribution across the cluster is unpredictable and results
in uneven load.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira