adding rsockets support into JDK

Lu, Yingqi yingqi.lu at intel.com
Wed Mar 7 19:14:03 UTC 2018


Hi Alan and Paul,

The first draft of the patch is available at http://cr.openjdk.java.net/~vdeshpande/RDMA/webrev.00. This version is based on our previous proposal. Here, we only enabled rsocket inside nio package on SocketChannel and ServerSocketChannel. We would like to share this and give you a quick view the feature itself ☺

Based on your feedback, we are reconstructing the implementation. We isolate all RDMA-related implementations and put them into jdk.net module. Currently, we are getting close on RdmaSocket and RdmaServerSocket (equivalent to Socket and ServerSocket from java.net package). Before we continue on DatagramSocket and all the SocketChannels (nio package), we would like to get some feedback from you. Attached is a high level diagram on all the newly introduced classes. Please let us know if this is a proper way to implement the feature.

Thanks,
Lucy


From: Paul Sandoz [mailto:paul.sandoz at oracle.com]
Sent: Wednesday, January 17, 2018 8:54 AM
To: Alan Bateman <Alan.Bateman at oracle.com>
Cc: Lu, Yingqi <yingqi.lu at intel.com>; nio-dev at openjdk.java.net
Subject: Re: adding rsockets support into JDK




On 17 Jan 2018, at 03:33, Alan Bateman <Alan.Bateman at oracle.com<mailto:Alan.Bateman at oracle.com>> wrote:

On 16/01/2018 22:08, Lu, Yingqi wrote:

:

The proposed API changes are:
java.nio.channels.ServerSocketChannel
public static ServerSocketChannel openRDMAChannel() throws IOException

java.nio.channels.SocketChannel
public static SocketChannel openRDMAChannel() throws IOException
public static SocketChannel openRDMAChannel(SocketAddress remote) throws IOException

java.nio.channels.spi.SelectorProvider
public abstract SocketChannel openRDMAChannel() throws IOException;
public abstract ServerSocketChannel openRDMAChannel() throws IOException;

Hi Lucy,

This sounds like a good project

Agreed, and i think an important in cloud-like infrastructure environments.

Lucy, do you know if RDMA supports SSL or something equivalent?



but it will need discussion on how to integrate into the APIs. It might better to start out with factory methods on a JDK-specific class in the jdk.net<http://jdk.net/> example. Alternatively, we could look at slotting it in as a new protocol family implementation along the lines of the DatagramChannel.open(ProtocolFamily) method.


Peeling the open methods and consolidating into a separate specific RDMA class or classes is i think better than spreading around the existing nio classes.

It’s hard to provide more concrete guidance without a webrev, looking forward to that.

Paul.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/nio-dev/attachments/20180307/46e0f76e/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Diagram.pptx
Type: application/vnd.openxmlformats-officedocument.presentationml.presentation
Size: 42072 bytes
Desc: Diagram.pptx
URL: <http://mail.openjdk.java.net/pipermail/nio-dev/attachments/20180307/46e0f76e/Diagram-0001.pptx>


More information about the nio-dev mailing list