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 both http and transport settings.
- Elasticsearch internal transport settings are only prefixed by
transport.. No more transport.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.
Currently, Elasticsearch network settings use inconsistent naming schemes. Additionally, there are some prefixes (ex:
transport.tcpin thetransport.tcp.compresssetting) 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:network.prefixed settings are settings that can apply to bothhttpandtransportsettings.transport.. No moretransport.tcp.tcpprefix 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.hosttransport.hosthttp.hostThe
network.hostis the fallback setting option for bothhttpandtransportsettings if their specific setting is not set.Socket option settings:
network.tcp.no_delaytransport.tcp.no_delaytransport.profiles.profile_name.tcp.no_delayhttp.tcp.no_delayThe
network.tcp.no_delayis the fallback setting option for bothhttpandtransportsettings if their specific setting is not set. Thetransport.tcp.no_delayis 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.porttransport.tcp.compress->transport.compresstransport.tcp.connect_timeout->transport.connect_timeouttransport.tcp_no_delay->transport.tcp.no_delaytransport.profiles._.tcp_no_delay->transport.profiles._.tcp.no_delaytransport.profiles._.tcp_keep_alive->transport.profiles._.tcp.keep_alivetransport.profiles._. reuse_address->transport.profiles._. tcp.reuse_addresstransport.profiles._. send_buffer_size->transport.profiles._. tcp.send_buffer_sizetransport.profiles._. receive_buffer_size->transport.profiles._. tcp.receive_buffer_sizehttp.tcp_no_delay->http.tcp.no_delaynetwork.tcp.connect_timeout-> Completely remove. There are no connect timeouts for http.