DXNet is a Java open-source network library positioned between RMI and MPI. DXNet provides a high performance event-driven message passing system for Java applications but differs from MPI by also providing a custom very fast parallel serialization for Java objects, automatic connection management, and a very efficient event-driven message receiving approach including a concurrent deserialization. DXNet does not support MPI's communication routines like scatter or gather but offers high throughput asynchronous message passing as well as synchronous request/response communication with single digit microsecond RTT.
DXNet provided native support for reliable InfiniBand verbs and socket-based TCP through Java NIO. DXNet achieves high performance and low latency by using lock-free data structures, zero-copy and zero-allocation. The outgoing ring buffer and queue structures are complemented by different thread parking strategies guarantying low latency by avoiding CPU overload.
Ibdxnet: InfiniBand subsystem and interface for DXNet/DXRAM
Ibdxnet directly uses the ibverbs library to implement a core InfiniBand subsystem in C++ as well as the JNI library Ibdxnet which is used as a transport by DXNet an event-driven messaging network subsystem.
DXNet was developed for the distributed key-value storage DXRAM but can also be used as a library by other projects.
DXNet is available at Github here.
Prof. Dr. Michael Schöttner
Dr. Kevin Beineke (replication, parallel recovery, network)
Dr. Stefan Nothaas (Infiniband, memory management)
Christian Gesse (thread management)