[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