adding rsockets support into JDK
Lu, Yingqi
yingqi.lu at intel.com
Tue Jan 16 22:08:37 UTC 2018
Dear All,
I have created a JBS to propose adding rsockets support into JDK so that all Java based applications can take advantage of RDMA (Remote Direct Memory Access).
JBS link: https://bugs.openjdk.java.net/browse/JDK-8195160
Details are copied below as well for reference. We will be submitting a patch for community review soon. At the meantime, please let us know your feedback and comments.
Details on JBS:
In computing, RDMA (Remote Direct Memory Access) is a direct memory access from the memory of one computer into that of another. This permits high-throughput, low-latency networking, which is especially useful in massively parallel computer clusters [1].
Rsockets (RDMA-sockets) is a protocol over RDMA that supports a socket-level API for applications [2]. In addition, rsockets has been enabled for both TCP sockets and UDP sockets. All the necessary support from Linux kernel has been upstreamed years ago.
We are proposing introducing rsockets support into JDK so that all Java based applications can take advantage of RDMA. Performance-wise, from our preliminary data, we observe up to 35% better write throughput with HDFS (Hadoop Distributed File System, the file system underneath Apache Hadoop, Apache Spark and Apache HBase) when rsockets are used comparing to regular TCP sockets.
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;
We will be submitting a patch for review soon. At the meantime, please let us know your feedback and comments.
[1] https://en.wikipedia.org/wiki/Remote_direct_memory_access
[2] https://linux.die.net/man/7/rsocket
Thank you very much for your help!
Lucy Lu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/nio-dev/attachments/20180116/76fba7a9/attachment.html>
More information about the nio-dev
mailing list