[
http://jira.jboss.com/jira/browse/JGRP-689?page=comments#action_12400165 ]
Bela Ban commented on JGRP-689:
-------------------------------
The first solution was maintaining a hashmap (in TP) of cluster names and address lists.
This would be updated on view changes. Sending group messages would entail looking up the
list for a given cluster and then sending a message to each member in that list.
HOWEVER, this doesn't work with message *bundling*: a bundle might contain messages
(all sent ot the same destination) with different cluster names. We would have had to add
the cluster name to a message. This was rejected, as this would have (a) changed the wire
format, making this release backwards-incompatible and (b) adding N bytes to each message,
which is overhead.
The solution adopted is much simpler:
- We have a 'members' variable in TP
- If no shared transport is used, we update that variable on a view change
- If a shared transport is used:
- Ask to up_prots for their membership (TP has shared membership for all clusters, but
the protocols above don't)
- Merge all memberships into a combined one
- Update 'members'
This has the side effect that we send a group message to *all* involved nodes (where they
might get discarded if the cluster name doesn't match). However, this shouldn't be
so bad, as we usually have symmetrical deployments, ie. JBossWeb clusters and
ClusterPartition services are deployed on all JBoss instances across a cluster
Shared transport: 'members' and 'view' variables are
not correctly updated
--------------------------------------------------------------------------
Key: JGRP-689
URL:
http://jira.jboss.com/jira/browse/JGRP-689
Project: JGroups
Issue Type: Bug
Reporter: Bela Ban
Assigned To: Bela Ban
Fix For: 2.6.2, 2.7
Variables 'view' and 'members' are updated based on view changes, but we
always set the vars from the *last* VIEW-CHANGE.
Solution: bind the 2 vars to the right channel, probably based on a hashmap
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira