Thanks Mark. I'll take a look at the patch then
- Michael
On 19/11/15 14:52, Mark Sheppard wrote:
there would appear to be a link to a webrev in the JBS bug
https://bugs.openjdk.java.net/browse/JDK-6432031
<https://bugs.openjdk.java.net/browse/JDK-6432031>
http://cr.openjdk.java.net/~mcberg/jdk/6432031/webrev.01/
I presume that a review is requested for this patch?
regards
Mark
On 19/11/2015 14:11, Michael McMahon wrote:
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