Patch for adding SO_REUSEPORT socket option

Michael McMahon michael.x.mcmahon at oracle.com
Thu Nov 19 14:11:08 UTC 2015


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
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/net-dev/attachments/20151119/02b22739/attachment.html>


More information about the net-dev mailing list