All Products
Search
Document Center

Elastic Compute Service:Overview of adapting eRDMA and applications

Last Updated:May 20, 2024

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.

image

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.