Patch for adding SO_REUSEPORT socket option

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


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

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


More information about the net-dev mailing list