Hi Kishor
Did you mean to include the patch with this message?
If you send it, I can convert it to a webrev and put
it on the cr.openjdk server for review
Thanks
Michael
On 16/11/15 18:49, Kharbas, Kishor wrote:
Hello all,
I request the community to review a patch for adding SO_REUSEPORT
support. There is already an existing JBS opened at
https://bugs.openjdk.java.net/browse/JDK-6432031
<https://bugs.openjdk.java.net/browse/JDK-6432031>
Details :
SO_REUSEPORT removes 1:1 assignment between listen socket and IP:PORT
pair and enable multiple sockets listening to the same address and
port. This improves the scalability and parallelism of network traffic
handling. It is enabled for both TCP and UDP sockets (at least for
Linux). For more details, please refer to
https://lwn.net/Articles/542629/. Many applications, especially Linux
or BSD based webservers such as Apache httpd and Nginx are already
supporting it now. Ruby and Python have it supported as well. Other
Java applications such as Netty webserver have it supported via JNI
function since JDK has not supported it yet.
By enabling the SO_REUSEPORT feature itself, up to 4X throughput and
latency improvement have been observed from various applications.
Specific to Java application with this patch, we modified Apache
Hadoop Distributed File System (HDFS) source code to take advantage of
this feature. We observed up to 1.93x performance improvements.
The feature is supported since Linux Kernel 3.9. It is also supported
in BSDs, Solaris and Mac OS. Windows does not have it. In the current
patch, we only enable the feature on Linux platform since we do not
have BSD, Solaris and Mac OS for testing. Whether the feature is
supported or not on the running kernel is determined at the run time.
P.S. Based on Alan Baleman's comment on JBS, we are in meanwhile
working on adding this option to 'java.net.ExtendedSocketOption'.
Regards,
Kishor Kharbas