Status of the RDMA code

Chris Hegarty chris.hegarty at oracle.com
Mon Mar 2 10:53:52 UTC 2020


> On 1 Mar 2020, at 16:26, Alan Bateman <Alan.Bateman at oracle.com> wrote:
> ...
> Stepping back for a moment, this might be a good time to re-assess whether this feature needs to be in the JDK. Given the spec work to separate it from the default provider then it should be possible to separate its implementation from what of java.base, meaning that it doesn't rely on access to sun.nio.ch classes or any other JDK internals. I think it would be a good exercise to try this and see what issues come up.

A few points worth noting on this.

Developing a socket impl outside of the platform may encounter a few
challenges. There has been a number of bug fixes, API enhancement, and
clarifications to help with that. Most ( all? ) are in JDK 12, so best
use a fairly recent JDK. There are many issues in the bug database on
this, but if you start with 8213784, you can follow the links.
  https://bugs.openjdk.java.net/browse/JDK-8213784

  If you encounter other issues, or ones in the bug database but as of
yet unresolved, please let us know.

It's obvious, but worth stating anyway. An RDMA socket implementation
will require the use the underlying system's native support (rsocket in
this case), so will need to compile the JNI code into its own shared
library, and ensure that it is on the library path at run-time.

If RDMA is to be outside of the platform, then I question the necessity
to provide any more than the socket channels API (even the adaptors to
the java.net sockets may not be strictly necessary). Something to
consider (which would drastically reduce the amount of work/code).
Whether or not to support java.net sockets is of course heavily
influenced by the intended use-cases of these RDMA sockets.

-Chris.




More information about the nio-dev mailing list