]
Bela Ban commented on JGRP-1903:
--------------------------------
The _coordinator_ (only) does the following on a view change (if discovery dissemination
is enabled and discovery protocol is static):
* Determines the set of new members N and left members L
* Sends information about everyone except self and L to N
* Sends information about N to everyone except self and L
There should also be a JMX exposed operation which sends information about everyone to
everyone (except self)
TCPPING: discovery dissemination for static discovery protocols
---------------------------------------------------------------
Key: JGRP-1903
URL:
https://issues.jboss.org/browse/JGRP-1903
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.6.1
For {{TCPPING}}, usually all members have to be listed in {{initial_hosts}}. If we
don't know all of the members up front, we could have the coordinator disseminate the
IP address and port information dynamically.
Say {{TCPPING.initial_hosts}} only lists A (the coord). When members B, C, D and E join
(in that order), we have the following caches:
|A|B|C|D|E|
|ABCDE|AB|AC|AD|AE|
Every member has information about itself and A, but not about other members. So, for
example, D won't be able to send a unicast to C, and vice versa. Or, when E sends a
multicast, it would only be delivered to itself and A, but not to B, C and D.
h5. Solution
* When we have a static discovery layer, have the coordinator broadcast its cache
information to the rest of the cluster
* This can be done when a new member join, or periodically, or upon request (JMX)
* Should be goverened by a property: if someone lists all members in {{initial_hosts}},
then he may want to turn this off