Many big-data frameworks are written in Java, e.g. Apache Spark, Flink and Cassandra. These systems use the networking framework netty which is based on Java NIO. While this allows for fast networking on traditional Ethernet networks, it cannot fully exploit the whole performance of modern interconnects, like InfiniBand, providing bandwidths of 100 Gbit/s and more. In this paper we propose netty support for hadroNIO, a Java library, providing transparent InfiniBand support for Java applications based on NIO. hadroNIO is based on UCX, which supports several interconnects, including InfiniBand. We present hadroNIO extensions and optimizations for supporting netty. The evaluations with microbenchmarks, covering single- and multi-threaded scenarios, show that it is possible for netty applications to reach round-trip times as low as 5 us and fully utilize the 100 Gbit/s bandwidth of high-speed NICs, without changing the application's source code. We also compare hadroNIO with traditional sockets, as well as libvma and the results show, that hadroNIO offers a substantial improvement over plain sockets and can outperform libvma in several scenarios.
翻译:许多大数据框架都写在爪哇,例如Apache Spark、Flink和Cassandra。这些系统使用基于Java NIO的网络框架网。 虽然这样可以在传统的Ethernet网络上建立快速网络,但无法充分利用现代互联网络的整个性能,如InfiniBand, 提供100千位/秒以上的带宽。 在本文中,我们提议对Java图书馆HadroNIO提供净支持,根据NIO. hadroNIO 提供透明的InfiniBand 支持 Java 应用程序的Infini Band 。 ASX 支持包括InfiniBand在内的若干互连。 我们展示了支持网络网络网络网络网络网络网络网络网络的扩展和优化。 使用微型信标的评价覆盖了单一和多读的情景, 显示网络应用可以达到我们5个低点的圆形, 并充分利用高速NIC的100千位/千位带宽, 但不改变应用源代码。 我们还比较了包括InfiniBands在内的多个互连座连接,, 以及livma 和结果展示了多个平方的版本。