[infinispan-issues] [JBoss JIRA] Commented: (ISPN-1217) Implement Virtual Nodes for Hotrod Client Server
Galder Zamarreño (JIRA)
jira-events at lists.jboss.org
Tue Jul 5 06:48:23 EDT 2011
[ https://issues.jboss.org/browse/ISPN-1217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12612441#comment-12612441 ]
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
More information about the infinispan-issues
mailing list