Skip to content

Unify Elasticsearch Network Settings #36652

Closed
@Tim-Brooks

Description

@Tim-Brooks

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:

  1. The network. prefixed settings are settings that can apply to both http and transport settings.
  2. Elasticsearch internal transport settings are only prefixed by transport.. No more transport.tcp.
  3. 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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions