JSOR features and design (Linux only)

JSOR provides support for plain Start of changes for service refresh 2 fix pack 10and NIO End of changes for service refresh 2 fix pack 10stream socket applications, IPv6, and an optional method for allowing RDMA-enabled servers to accept TCP clients. By intercepting socket stream calls, JSOR manages all control operations and data routing for a Java™ application.

Note: The RDMA implementation is deprecated and will likely be removed in a future release of IBM® SDK, Java Technology Edition, Version 8. A possible alternative is the open source Libfabric library.
The following JSOR features are available with this release:
  • RMDA-enabled Java plain Start of changes for service refresh 2 fix pack 10and NIO stream End of changes for service refresh 2 fix pack 10sockets
  • Support for IPv6
  • TCP/IP fall back support for RDMA server sockets
  • Extensive call tracing at the JSOR native level
TCP socket applications can take advantage of the network performance benefits available with RDMA fabrics, with no changes to application code. Changes to application code are not required because socket Start of changes for service refresh 2 fix pack 10and channel End of changes for service refresh 2 fix pack 10stream calls are intercepted and routed through the JSOR native library. The ability to intercept socket stream calls is dependent on rules that are specified in a runtime configuration file.

You enable JSOR by specifying a system property when you start your application, which specifies the server or client configuration file. For more information about enabling JSOR, see Enabling Java Sockets over Remote Direct Memory Access (JSOR) (Linux only).

JSOR design

The JSOR library uses two routes to interact with the RDMA network interface adapters, as shown in the following diagram:
The diagram illustrates a running Java application, which requires the JVM and the following Java component layers: Java Sockets, JNI layer, NET library, and JSOR library. Two different paths are used for communicating between the JSOR library and the RDMA adapter: the fast data path, and the slow control path. For a description of these paths, read the associated text.
Fast data path
The JSOR library uses the OpenFabrics Software (OFS) userspace verbs module to communicate directly with the RDMA network interface adapter. This route is typically used for sending data. For more information about using userspace verbs, see Userspace verbs access.
Slow control path
The JSOR library interacts with a device-dependent kernel verbs module for controlling and managing the RDMA resource objects. This path is used mainly for establishing connections.