Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8195160

Add support for rsockets

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: P3 P3
    • None
    • None
    • core-libs
    • None
    • generic
    • linux

      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

            ylu Yingqi Lu (Inactive)
            ylu Yingqi Lu (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:

                Estimated:
                Original Estimate - 12 weeks
                12w
                Remaining:
                Remaining Estimate - 12 weeks
                12w
                Logged:
                Time Spent - Not Specified
                Not Specified