Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document new experimental HTTP transport based on Netty 4 and Project Reactor #6265

Merged
merged 4 commits into from
Jan 30, 2024

Conversation

reta
Copy link
Contributor

@reta reta commented Jan 26, 2024

Description

Document new experimental HTTP transport based on Netty 4 and Project Reactor

Issues Resolved

Closes #5540

Checklist

  • By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
    For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@hdhalter
Copy link
Contributor

Thanks, @reta ! Is this ready for a doc review?

@reta
Copy link
Contributor Author

reta commented Jan 26, 2024

Thanks, @reta ! Is this ready for a doc review?

Yes @hdhalter , thank you! (ps: it is large change on OS side but pretty unnoticeable for the user, this is why the documentation block is so small).

@hdhalter hdhalter added 4 - Doc review PR: Doc review in progress release-notes PR: Include this PR in the automated release notes v2.12.0 labels Jan 26, 2024
Copy link
Collaborator

@vagimeli vagimeli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, with minor copy edits


## Selecting the transport

The default OpenSearch transport is provided by `transport-netty4` module and internally uses Netty 4 engine for both internal TCP-based communication between nodes in the cluster as well as external HTTP-based communication with the clients. This communication is fully asynchronous and non-blocking. However, there are other transport plugins available that could be used interchangeably:
Copy link
Collaborator

@vagimeli vagimeli Jan 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The default OpenSearch transport is provided by `transport-netty4` module and internally uses Netty 4 engine for both internal TCP-based communication between nodes in the cluster as well as external HTTP-based communication with the clients. This communication is fully asynchronous and non-blocking. However, there are other transport plugins available that could be used interchangeably:
The default OpenSearch transport is provided by the `transport-netty4` module and internally uses the [Netty 4](https://netty.io/) engine for both internal TCP-based communication between nodes in the cluster and external HTTP-based communication with the clients. This communication is fully asynchronous and non-blocking. However, there are other transport plugins available that could be used interchangeably:

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@reta I made some copy edits and added a link to Netty. Please review.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@reta I made some copy edits and added a link to Netty. Please review.

Thanks @vagimeli , two comment here:

  • Transmission Control Protocol - definitely does not need expansion (we don't do that for HTTP either)
  • nonblocking is really non-blocking (first words from https://netty.io/)

Plugin | Description
:---------- | :--------
`transport-nio` | The OpenSearch transport based on Java NIO. <br> Installation: `./bin/opensearch-plugin install transport-nio` <br> Configuration (using `opensearch.yml`): <br> `transport.type: nio-transport` <br> `http.type: nio-http-transport`
`transport-reactor-netty4` | The OpenSearch HTTP transport based on Project Reactor and Netty 4 (**experimental**) <br> Installation: `./bin/opensearch-plugin install transport-reactor-netty4` <br> Configuration (using `opensearch.yml`): <br> `http.type: reactor-netty4`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we include a link to the Project Reactor source?

Signed-off-by: Andriy Redko <[email protected]>
@vagimeli vagimeli added 5 - Editorial review PR: Editorial review in progress and removed 4 - Doc review PR: Doc review in progress labels Jan 27, 2024
Copy link
Collaborator

@natebower natebower left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vagimeli Just a few minor changes. Thanks!


## Selecting the transport

The default OpenSearch transport is provided by the `transport-netty4` module and internally uses the [Netty 4](https://netty.io/) engine for both internal TCP-based communication between nodes in the cluster and external HTTP-based communication with the clients. This communication is fully asynchronous and non-blocking. However, there are other transport plugins available that could be used interchangeably:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The default OpenSearch transport is provided by the `transport-netty4` module and internally uses the [Netty 4](https://netty.io/) engine for both internal TCP-based communication between nodes in the cluster and external HTTP-based communication with the clients. This communication is fully asynchronous and non-blocking. However, there are other transport plugins available that could be used interchangeably:
The default OpenSearch transport is provided by the `transport-netty4` module and uses the [Netty 4](https://netty.io/) engine for both internal TCP-based communication between nodes in the cluster and external HTTP-based communication with clients. This communication is fully asynchronous and non-blocking. However, there are other transport plugins available that can be used interchangeably:


## Selecting the transport

The default OpenSearch transport is provided by the `transport-netty4` module and uses the [Netty 4](https://netty.io/) engine for both internal TCP-based communication between nodes in the cluster and external HTTP-based communication with clients. This communication is fully asynchronous and non-blocking. However, there are other transport plugins available that сфт be used interchangeably:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The default OpenSearch transport is provided by the `transport-netty4` module and uses the [Netty 4](https://netty.io/) engine for both internal TCP-based communication between nodes in the cluster and external HTTP-based communication with clients. This communication is fully asynchronous and non-blocking. However, there are other transport plugins available that сфт be used interchangeably:
The default OpenSearch transport is provided by the `transport-netty4` module and uses the [Netty 4](https://netty.io/) engine for both internal TCP-based communication between nodes in the cluster and external HTTP-based communication with clients. This communication is fully asynchronous and non-blocking. However, there are other transport plugins available that can be used interchangeably:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry about that, slipped through :(

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@reta No worries 😄

Signed-off-by: Andriy Redko <[email protected]>
@vagimeli vagimeli merged commit 098434c into opensearch-project:main Jan 30, 2024
3 checks passed
@vagimeli vagimeli added 3 - Done Issue is done/complete and removed 5 - Editorial review PR: Editorial review in progress labels Jan 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3 - Done Issue is done/complete release-notes PR: Include this PR in the automated release notes v2.12.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[DOC] Document new experimental HTTP transport based on Netty 4 and Project Reactor
4 participants