adding rsockets support into JDK
Lu, Yingqi
yingqi.lu at intel.com
Thu Mar 8 17:21:15 UTC 2018
Hi Alan,
Currently, rsocket does not support epoll, which is why I use legacy poll/rpoll method instead on java.nio.channels.Selector.
Would you please share a little more details on how it impacts asynchronous close of RDMA sockets configured blocking? Do you refer to a specific type of the SocketChannel or it impacts all the nio socket channels?
Thanks,
Lucy
From: Alan Bateman [mailto:Alan.Bateman at oracle.com]
Sent: Thursday, March 8, 2018 12:20 AM
To: Lu, Yingqi <yingqi.lu at intel.com>
Cc: nio-dev at openjdk.java.net
Subject: Re: adding rsockets support into JDK
On 07/03/2018 19:14, Lu, Yingqi wrote:
Hi Alan and Paul,
The first draft of the patch is available at http://cr.openjdk.java.net/~vdeshpande/RDMA/webrev.00<http://cr.openjdk.java.net/%7Evdeshpande/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 for the initial webrev, it gives folks here an idea on where this is going.
I think a big question will be whether RDMA sockets can be multiplexed with epoll. I see you've dusted off the legacy poll based Selector to use rpoll and I'm wondering whether the file descriptors need to be separated like this. The answer to this has big implications, it make potentially impact how asynchronous close of RDMA sockets configured blocking is implemented too.
In terms of API then initially exposing this as factory methods in the jdk.net module seems right. I also need some refactoring it going to be needed to fully support this, along the lines of how NatveDispatcher works, we will likely need the same to replace all Net methods.
-Alan.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/nio-dev/attachments/20180308/f9effdff/attachment.html>
More information about the nio-dev
mailing list