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