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

[Feature Request] Remove transport-nio plugin #16887

Open
andrross opened this issue Dec 19, 2024 · 0 comments
Open

[Feature Request] Remove transport-nio plugin #16887

andrross opened this issue Dec 19, 2024 · 0 comments
Labels
>breaking Identifies a breaking change. enhancement Enhancement or improvement to existing feature or request Libraries Lucene Upgrades and Libraries, Any 3rd party library that Core depends on, ex: nebula; team is respo untriaged v3.0.0 Issues and PRs related to version 3.0.0

Comments

@andrross
Copy link
Member

andrross commented Dec 19, 2024

Is your feature request related to a problem? Please describe

The transport-nio plugin provides an alternative to Netty for the network framework used by both node-to-node communication (transport) and client-to-server communication (http). This plugin (and library libs/nio) make up about 8500 lines of Java code that must be maintained. To my knowledge, there is no scenario in which the nio plugin should be used in place of the Netty-based implementation. We should remove this plugin in order to remove effectively dead code and reduce the number of configuration options available to users.

This is a breaking change so it would be done as a part of the next major version release.

Describe the solution you'd like

rm -rf plugins/transport-nio libs/nio

Related component

Libraries

Describe alternatives you've considered

The alternative is to keep maintaining this code

Additional context

See some additional discussion here:

We are interested in introducing alternative transport options that do not depend on external libraries. From time to time we have had some friction with using netty related to buffer pooling, oom excetions, exception handling, unsafe, etc. We want to look explore if a homegrown transport could potentially meet our needs.

I do not believe the stated friction points with Netty are still applicable.


Lines of code count from cloc:

% cloc libs/nio plugins/transport-nio
      93 text files.
      77 unique files.
     167 files ignored.

github.com/AlDanial/cloc v 2.02  T=0.15 s (503.4 files/s, 86032.3 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Java                            72           1770           2687           8119
Text                             3             68              0            264
Gradle                           2             33             69            149
-------------------------------------------------------------------------------
SUM:                            77           1871           2756           8532
-------------------------------------------------------------------------------
@andrross andrross added enhancement Enhancement or improvement to existing feature or request untriaged labels Dec 19, 2024
@github-actions github-actions bot added the Libraries Lucene Upgrades and Libraries, Any 3rd party library that Core depends on, ex: nebula; team is respo label Dec 19, 2024
@andrross andrross added v3.0.0 Issues and PRs related to version 3.0.0 >breaking Identifies a breaking change. labels Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
>breaking Identifies a breaking change. enhancement Enhancement or improvement to existing feature or request Libraries Lucene Upgrades and Libraries, Any 3rd party library that Core depends on, ex: nebula; team is respo untriaged v3.0.0 Issues and PRs related to version 3.0.0
Projects
None yet
Development

No branches or pull requests

1 participant