The transport.connect_timeout
setting in Elasticsearch controls the amount of time the transport client will wait while establishing a connection to another node in the cluster.
- Default value: 30s
- Possible values: Time value (e.g., 30s, 1m, etc.)
- Recommendation: In most cases, the default value is sufficient. However, in networks with high latency or occasional connectivity issues, increasing this value might be beneficial.
This setting is crucial for inter-node communication within an Elasticsearch cluster. It determines how long a node will wait for a connection to be established before timing out.
Common Issues and Misuses
- Setting the value too low can lead to frequent connection timeouts in networks with high latency.
- Setting the value too high can delay the detection of actual node failures, potentially impacting cluster stability.
Do's and Don'ts
- Do monitor your network performance and adjust this setting accordingly.
- Do consider increasing this value if you're experiencing frequent connection timeouts.
- Don't set this value excessively high, as it can mask real connectivity problems.
- Don't change this setting without also reviewing related settings like
transport.ping_schedule
.
Frequently Asked Questions
Q: How does transport.connect_timeout differ from discovery.zen.ping_timeout?
A: While transport.connect_timeout
deals with the time to establish a connection between nodes, discovery.zen.ping_timeout
(in older versions) or cluster.ping_timeout
(in newer versions) is related to the time allowed for responses during the cluster formation process.
Q: Can changing transport.connect_timeout affect cluster stability?
A: Yes, it can. Setting it too low might cause unnecessary connection failures, while setting it too high might delay the detection of actual node failures, both of which can impact cluster stability.
Q: Is transport.connect_timeout related to client connection timeouts?
A: No, this setting is specifically for inter-node communication. Client connection timeouts are controlled by different settings or within the client configuration itself.
Q: Should transport.connect_timeout be the same on all nodes?
A: While it's not strictly necessary, it's generally a good practice to have consistent settings across all nodes to ensure predictable behavior.
Q: How can I determine if I need to adjust the transport.connect_timeout?
A: Monitor your cluster logs for frequent connection timeout errors. If you see many of these, especially in a network with known latency issues, you might consider increasing this value.