Description
Currently, Elasticsearch network settings use inconsistent naming schemes. Additionally, there are some prefixes (ex: transport.tcp
in the transport.tcp.compress
setting) that no longer make sense now that we have one transport type. We would like to transition these settings to be consistent based on the follow rules:
- The
network.
prefixed settings are settings that can apply to bothhttp
andtransport
settings. - Elasticsearch internal transport settings are only prefixed by
transport.
. No moretransport.tcp
. - The
tcp
prefix is reserved for settings that are a proxy for OS socket settings (ex:tcp.no_delay
).
Here is how this works out in practice:
Top-level settings:
network.host
transport.host
http.host
The network.host
is the fallback setting option for both http
and transport
settings if their specific setting is not set.
Socket option settings:
network.tcp.no_delay
transport.tcp.no_delay
transport.profiles.profile_name.tcp.no_delay
http.tcp.no_delay
The network.tcp.no_delay
is the fallback setting option for both http
and transport
settings if their specific setting is not set. The transport.tcp.no_delay
is the fallback for the profile level setting if the profile level setting is not set.
With these rules the follow settings needs to be deprecated and replaced:
transport.tcp.port
-> transport.port
transport.tcp.compress
-> transport.compress
transport.tcp.connect_timeout
-> transport.connect_timeout
transport.tcp_no_delay
-> transport.tcp.no_delay
transport.profiles._.tcp_no_delay
-> transport.profiles._.tcp.no_delay
transport.profiles._.tcp_keep_alive
-> transport.profiles._.tcp.keep_alive
transport.profiles._. reuse_address
-> transport.profiles._. tcp.reuse_address
transport.profiles._. send_buffer_size
-> transport.profiles._. tcp.send_buffer_size
transport.profiles._. receive_buffer_size
-> transport.profiles._. tcp.receive_buffer_size
http.tcp_no_delay
-> http.tcp.no_delay
network.tcp.connect_timeout
-> Completely remove. There are no connect timeouts for http.
- Add replacement settings and mark old settings for removal in code base (6.6, 7.0) Unify transport settings naming #36623
- Update documentation to refer to the replacement settings (6.7, 7.0)
- Remove all "string" usages of old settings in codebase (8.0, 7.x) Remove string usages of old transport settings #40818
- Mark old settings as deprecated (8.0, 7.x) Deprecate old transport settings #40821
- Delete old settings from codebase (8.0)
- Add comment to breaking change docs (8.00