You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying to use the start_join configuration on my Consul clients with a list of all the potential LAN server IPs (of which there are 33) as they are assigned via DHCP. I am running 3 Consul servers in that range.
I've noticed that the initial join is very slow with this many IPs, as if it is trying to join them in serial. It takes about a minute for it to check through 10 IP addresses and get to one which is actually hosting a server. I couldn't find any configuration in Consul which seemed relevant for reducing what I presume is a long connection timeout, or to try and join the start_join addresses in parallel
I think this is the relevant source code, though I am not very familiar with golang:
It appears that this attempts to join the existing array in serial. Is that correct? If so would it be reasonable to attempt to join these members in parallel?
The text was updated successfully, but these errors were encountered:
Hi @inversion we'd have to look at bit to make sure there are no lock assumptions, but it seems like it should be possible. I'd probably limit the parallelism to something on the order of 10 at once.
I'm trying to use the
start_join
configuration on my Consul clients with a list of all the potential LAN server IPs (of which there are 33) as they are assigned via DHCP. I am running 3 Consul servers in that range.I've noticed that the initial join is very slow with this many IPs, as if it is trying to join them in serial. It takes about a minute for it to check through 10 IP addresses and get to one which is actually hosting a server. I couldn't find any configuration in Consul which seemed relevant for reducing what I presume is a long connection timeout, or to try and join the start_join addresses in parallel
I think this is the relevant source code, though I am not very familiar with golang:
memberlist/memberlist.go
Line 179 in 56f5fd7
It appears that this attempts to join the
existing
array in serial. Is that correct? If so would it be reasonable to attempt to join these members in parallel?The text was updated successfully, but these errors were encountered: