JxioConnection Explained - accelio/JXIO GitHub Wiki

JxioConnection

JxioConnection class provides RDMA end-point connectivity implemented on top of JXIO/AccelIO. An application developer can use the InputStream and OutputStream impl provided by the JxioConnection classes to achieve RDMA send and receive from Java.
JXIO maps the Java data transfers commands to RDMA READ/WRITE operations when message size is larger than 512 bytes. Else it will use RDMA SEND/RECV operations.

JxioConnection instance manages each stream direction separately. Meaning each InputStream and/or OutputStream are thread safe and each send/receive flow have their own MsgPool buffers and their own JXIO EventQueueHandle.

The connection address is determined buy the URI used in the JxioConnection constructor. The URI will define the server listening IP and port. The application can concatenate additional information which it would like to pass to the server side in order to specify specific parameters per connection.

JxioConnectionServer

JxioConnectionServer is the server side RDMA implementation, listening for incoming JXIO/AccelIO connections. It creates a new thread to handle each new incoming connection and uses a connection caching mechanism to reduce memory footprint and improve connection establishment time.
On server creation user should supply an implementation for JxioConnectionServer.Callbacks interface. One callback will be invoked on each new connection, depending on the stream type; input or output. Once application exits the callback scope the JXIO connection will be closed.

The Protocol