On 11/29/11 2:10 PM, Galder Zamarreño wrote:
> Hi,
>
> We've been having a discussion this morning with regards to the Hot Rod 
> changes introduced in 5.1 with regards to hashing.
>
> When Hot Rod server is deployed in AS, in order to start correctly, it 
> requires the Hot Rod server to start before any other (clustered) caches in 
> AS. This is because any hashing can only be done once the hash has been 
> calculated on the hot rod endpoint.
>
> Although this can be fixed in a hacky way (have all caches configured to 
> start lazily and let the Hot Rod server start the topology cache and then all 
> defined caches, ugh), we're considering a slight change to Hot Rod protocol v 
> 1.1 
> (https://docs.jboss.org/author/display/ISPN/Hot+Rod+Protocol+-+Version+1.1) 
> that would solve this problem.
>
> Instead of hashing on the hot rod endpoint address (host:port), we could hash 
> on JGroups's Address UTF-8 toString representation, which is the logical 
> address. The advantage here is any cache can calculate the hash on this from 
> the start, no need to wait for Hot Rod server to start. The downside is that 
> Hot Rod clients need to be aware of this UTF-8 string in order to hash to the 
> same thing, so it'd mean shipping this back to the clients alongside the hot 
> rod endpoint info.


I have a few concerns, maybe not an issue with the way HotRod uses this, 
but I wanted to bring this up anyway:

- What if a logical name is null ? A user can do JChannel.setName(null);

- What if the logical name changes at runtime ? Certainly not 
recomended, but the APi allows this, or I should rather say, doesn't 
prevent it... :-(

- What if we have multiple members with the same logical name ?

- At startup, we may not yet have the logical names of all members, as 
this is done as part of the discovery protocol...

- Can't you hash on the address ? It'll be available as soon as 
connect() returns. Is that too late ?


Note that you can also generate your own addresses (using 
AddressGenerator) if that helps...



-- 
Bela Ban
Lead JGroups (http://www.jgroups.org)
JBoss / Red Hat
_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to