[
https://issues.jboss.org/browse/ISPN-1404?page=com.atlassian.jira.plugin....
]
Galder Zamarreño commented on ISPN-1404:
----------------------------------------
This cannot be fully implemented without ISPN-1408, because on its own, it generates a
chicken and egg problem in the Hot Rod server:
- The CH needs to know how to convert a cluster address into a hot rod server address in
order to swap the hash seed
- Without ISPN-1408, Hot Rod needs hash ids to be calculated already to update the
topology cache and for that consistent hash needs to be started.
With ISPN-1408, storing hash ids goes away (thank god!) and with proper ordering hash
seeds can be properly resolved when a distributed cache is started:
# Start topology cache (that starts JGroups channel and hence cluster address is
available)
# Update topology cache with a cluster address to server/topology address mapping
# Start named and default caches, which with the right hash seed, will be able to locate
the server/topology addresses belonging to the cluster addresses from the topology cache.
Make hash id seed for a node's position in the hash wheel
configurable
----------------------------------------------------------------------
Key: ISPN-1404
URL:
https://issues.jboss.org/browse/ISPN-1404
Project: Infinispan
Issue Type: Enhancement
Components: Cache Server, Configuration, Distributed Cache
Reporter: Galder Zamarreño
Assignee: Galder Zamarreño
Fix For: 5.2.0.FINAL
In distributed caches, make hash seeds configurable. Right now, this is configured to
be:
- WO/ virtual nodes -> org.infinispan.remoting.transport.jgroups.JGroupsAddress
- W/ virtual nodes -> org.infinispan.distribution.ch.VirtualAddress
To avoid needing Hot Rod servers needing to keep hash ids in the server side memory,
it'd be helpful to have this configurable so that both the server and client can hash
on the same seed to find a node's position in the hash wheel. For example, a HotRod
server would provide an implementation where the source would be:
- WO/ virtual nodes -> String UTF-8 byte[] based on:
'<node_host>:<node_port>'
- W/ virtual nodes -> String UTF-8 byte[] based on:
'<node_host>:<node_port>:<virtual_node_index>'
This would be doable with some kind of SPI class that's configurable. By default,
Infinispan would use a class that uses the Java classes and Hot Rod would plug a different
implementation that returns the byte[] in the format spelled.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira