To facilitate the use of Elastic Remote Direct Memory Access (eRDMA) by various users in different scenarios, adapt eRDMA and applications to each other. This topic describes Shared Memory Communications over RDMA (SMC-R), which is a kernel-mode adaptation solution, and Network Accelerator (NetACC), which is a user-mode adaptation solution. You can use the preceding solutions to easily adapt eRDMA and applications.
Scenarios
You can use eRDMA in various scenarios, such as Redis application scenarios, Spark application scenarios, high-computing performance (HPC) application scenarios, and Kafka cluster scenarios. You can use the solution that is labeled by the orange arrow to transparently adapt eRDMA and applications to each other without the need to modify code. You need to only recompile applications to support eRDMA. You can use the solution that is labeled by the black arrow to non-transparently adapt eRDMA and applications by modifying code.
Redis applications
We recommend that you use SMC-R to perform transparent adaptation. For more information, see Deploy Redis on eRDMA-enhanced instances.
HPC applications
HPC applications support traditional RDMA environments and can be seamlessly adapted to eRDMA. You can use the Message Passing Interface (MPI) and libfabric libraries to allow HPC applications to support eRDMA. For more information, see Deploy HPC applications on eRDMA-enhanced instances.
Spark applications
You can use jVerbs to modify the communication code of Spark applications. For more information, see Deploy a Spark cluster on eRDMA-enhanced instances.
Kafka clusters
You can deploy a Kafka cluster on eRDMA-capable ECS instances to take advantage of the benefits of eRDMA, such as low latency, high throughput, and low CPU utilization, and accelerate data transfers between nodes in the Kafka cluster in scenarios that require low message latency and high message throughput. For more information, see Deploy a high-network-performance Kafka cluster on eRDMA-enhanced instances.
Adaptation solutions
Kernel-mode adaptation solution: SMC-R
IBM open-sourced SMC-R for Linux 4.11 in 2017 and currently maintains SMC-R. For more information about SMC-R, see RFC 7609. Alibaba Cloud Linux 3 leverages Alibaba Cloud eRDMA to allow the use of SMC-R in the cloud. SMC-R can transparently replace TCP in applications without functionality loss to provide high-performance, hardware-offloaded networks that are accessible to all users.
For more information about SMC-R, see Use SMC.
User-mode adaptation solution: NetACC
NetACC is a user-mode network acceleration database. You can load and use NetACC by configuring the LD_PRELOAD environment variable, without the need to modify application code. NetACC leverages the benefits of eRDMA, such as low latency, high throughput, kernel bypass, and protocol stack offload, and uses compatible socket interfaces to accelerate the process of establishing connections for existing TCP applications.
For more information, see Introduction to NetACC.