When to choose JSOR (Linux only)

Java Sockets over Remote Direct Memory Access (JSOR) is an efficient mechanism for transferring data between Java applications that exist on separate host systems. However, there are some important points to consider when you are deciding whether your existing Java socket applications can directly benefit from this network acceleration capability.

Note: Start of changes for service refresh 8 fix pack 30The RDMA implementation which was previously deprecated is removed from IBM® SDK, Java™ Technology Edition, Version 8.End of changes for service refresh 8 fix pack 30
  • JSOR connection requires more system resources when compared to standard TCP connections. Several complex steps are involved to create and manage the send and receive buffers and channel completion queues. These steps involve the transmission of event signals between the server and client to verify the connection.
  • With TCP connections, application buffers are allocated dynamically when needed. However, JSOR requires application send and receive buffers to be set up in advance because the buffers must be pinned, or locked, in memory. This action prevents the operating system swapping out the used buffer regions.
The following types of Java applications can benefit from JSOR:
  • Applications that require large data transfers between remote hosts. In these circumstances, the system resources that are used to establish a connection might be negligible compared to the amount of data that is being transferred.
  • Applications that require connections to be established between remote hosts for a significant length of time. In these circumstances, the registered send and receive memory buffers can be reused extensively.
  • Applications that require connections between remote hosts where the amount of data that is being transferred is known in advance and varies little in size.
These scenarios suit data-center operations such as data streaming, database logging, and database recovery.

Java applications that use remote procedure calls (RPC), where message sizes are unpredictable and vary significantly, might also achieve performance benefits from JSOR if the buffers are correctly tuned.

If you consider that your application can benefit from JSOR, you must follow the steps that are detailed in the topic Enabling Java Sockets over Remote Direct Memory Access (JSOR) (Linux only).