RDMA-Based Apache Storm for High-Performance Stream Data Processing - Zhang, Ziyu; Liu, Zitan; Jiang, Qingcai; Chen, Junshi; An, Hong (International journal of parallel programming, 2021)
Apache Storm is a scalable fault-tolerant distributed real time stream-processing framework widely used in big data applications. For distributed data-sensitive applications, low-latency, high-throughput communication modules have a critical impact on overall system performance. Apache Storm currently uses Netty as its communication component, an asynchronous server/client framework based on TCP/IP protocol stack. The TCP/IP protocol stack has inherent performance flaws due to frequent memory copying and context switching. The Netty component not only limits the performance of the Storm but also increases the CPU load in the IPoIB (IP over InfiniBand) communication mode. In this paper, we introduce two new implementations for Apache Storm communication components with the help of RDMA technology. The performance evaluation on Mellanox QDR Cards (40 Gbps) shows that our implementations can achieve speedup up to 5 × compared with IPoIB and 10 × with Gigabit Ethernet. Our implementations also significantly reduce the CPU load and increase the throughput of the system.