Patch for adding SO_REUSEPORT socket option

Mark Sheppard mark.sheppard at oracle.com
Thu Nov 19 14:52:37 UTC 2015


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/ 
<http://cr.openjdk.java.net/%7Emcberg/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
>>
>

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


More information about the net-dev mailing list