Re: [jgroups-users] removing unknown address from cluster? JGRP000032

Questions/problems related to using JGroups via javagroups-users <[email protected]> Wed, 26 May 2021 09:25:48 +0200
Newsgroups gmane.comp.java.javagroups.general
Message-ID <mailman.42289.1622013971.2952.javagroups-users@lists.sourceforge.net>

On 25.05.21 18:59, Questions/problems related to using JGroups wrote:
> On Tue, May 25, 2021 at 10:30 AM Questions/problems related to using 
> JGroups via javagroups-users <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>     Hi Bobby
>     apologies for the delay!
> 
> 
> No problem -- thanks for looking.
> 
> 
>     You cannot have the old cluster's initial_hosts be 128,129,130 and the
>     new one has the overlapping range 130,131.
> 
> 
> That's the problem. The customer has lots of nodes, clusters that grow 
> and shrink, and they're going to reuse the same IP addresses eventually.


Then using TCPPING for the discovery is the wrong solution; it is 
designed for a static cluster with a fixed and known membership.

For the above requirements, I'd rather recommend:
* A dynamic discovery mechanism (TCPGOSSIP, FILE_PING, GOOGLE_PING etc)
* Emphemeral ports
* A new (different) cluster name for each new cluster that is started


>     The old cluster will try to contact 130 (e.g. trying to merge), thereby
>     send its information to 130.
> 
> 
> Right, and what they want is some way to fully remove a node from a 
> cluster. I.e. the cluster stops trying to contact that address.


Then you would have to remove the 130 node from the old cluster's 
initial_hosts (TCPPING) and TCP's logical address cache. Either by 
restarting, or by programmatically removing it. This can get complex 
quickly though, as you'd have to maintain a list of ports per cluster.

The first solution above is much better IMO.


>     What is it you're trying to achieve?
> 
> 
> Simply to take a node out of a cluster when it's not needed, then later 
> reuse the address of that node with a different cluster. If I change the 
> cluster names (same port though) then I still get constant warnings, like:
> JGRP000012: discarded message from different cluster <old> (our cluster 
> is <new>). Sender was <some addr>
> 
> We can suggest that they restart the cluster after removing a node, but 
> I don't know if that will work for them. I'll also try using different 
> ports for different clusters and see how that works for them.

That will certainly work, but - again - you'd have to maintain ports 
numbers for each cluster. Registration service? Excel spreadsheet?


> Given the size of the company in question, I can see that it might be hard to 
> coordinate that and eventually they'll get back in the same situation 
> where a previously used address is being used again with the same port 
> it used the last time.

Right. So I have to come back to my suggestion of not using TCPPING!
Cheers,


> Thanks,
> Bobby
> 
> 
> 
> _______________________________________________
> javagroups-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/javagroups-users
> 

-- 
Bela Ban | http://www.jgroups.org