Skip to content

[Feature Request] Remove transport-nio plugin #16887

Closed
@andrross

Description

@andrross

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
-------------------------------------------------------------------------------

Metadata

Metadata

Assignees

No one assigned

    Labels

    >breakingIdentifies a breaking change.LibrariesLucene Upgrades and Libraries, Any 3rd party library that Core depends on, ex: nebula; team is respoenhancementEnhancement or improvement to existing feature or requestv3.0.0Issues and PRs related to version 3.0.0

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions