Remote Direct Memory Access, also called as RDMA in short, enables sending data quickly and easily from the main storage of a computer to the main storage of another computer. It is essential while dealing with large data sets or complex processes, which are needed for example, for machine learning. Let’s get into details of RDMA and its working.
Definition of Remote Direct Memory Access
RDMA or Remote Direct Memory Access (RDMA) is the access of one computer’s memory by another in a network without the involvement of operating system, processor or cache of any computer. It helps in enhancing the throughput and performance of systems due to freeing up of many resources.
Read and write operations can be performed on remote machine without the interruption by CPU of that machine. With this technology, the data transfer rate increases and latency networking decreases. By enabling network adapters it uses zero copy networking for transferring data directly into the buffers of systems.
Features of RDMA
Zero Copy Networking
It is possible to send data and receive it directly between buffers of applications without being copied between network layers.
Reduced CPU Involvement
Data can be accessed by the applications from remote servers without consuming CPU time of remote servers. This won’t fill the cache memory of CPU of remote server with the accessed content.
It is possible to send and receive data in the form of discrete messages rather than streams and this removes the need of separating messages.
Working of RDMA
If one wants to exchange data via RDMA to work, you need to have a suitable set of protocols in the network cards. TCP/IP is typically used as a base. For example, the technology can support the zero copy networking, only through a suitable transport protocol. Also, it doesn’t use the computer processor. When both systems enable the use of Remote Direct Memory Access, the data transfer between them is faster as compared between systems without RDMA support.
Network Protocols That Support RDMA
InfiniBand is a protocol that supports RDMA closely from the beginning. Being a new network technology, it needs NICs(Network Interface Card) and switches that support this technology.
RDMA Over Converged Ethernet (RoCE)
RoCE is a network protocol that helps in performing RDMA over Ethernet network. Due to this RDMA can be used over standard Ethernet infrastructure (switches).
Internet Wide Area RDMA Protocol (iWARP)
iWARP is a protocol that enables performing RDMA over TCP. It doesn’t support some features of IB and RoCE. Due to this, RDMA can be used over standard Ethernet infrastructure (switches).
Advantages of RDMA
RDMA offers outstanding speed as compared to other technologies and protocols for data transfer such as fiber channel (FC), iSCSI (SCSI protocol via TCP), or fiber channel over Ethernet (FCoE). But, the actual speed of the data exchange is also dependent on the RDMA variant. Ethernet and InfiniBand are very popular because these enable transfer speeds of 10 to 100 Gigabit per second. It is highly suitable for applications that need high computing power, such as big data analyses, distributed databases, or applications in data centers.
Disadvantages of RDMA
Though being used by many companies, RDMA has several disadvantages too. For RDMA, companies should be ready to invest high, as the technology needs to acquire new hardware and protocol components. Therefore, the costs of Remote Direct Memory Access are considerably higher as compared to FC or FCoE. Additionally, the high speed data transfer via RDMA only works if the technology supports all systems.
This is all you need to know about RDMA.