This project was created for some experiments/benchmarks conducted for a MSc Thesis with title "Efficient State Machine Replication With RDMA RPCs in Java". It is uploaded here for reproducibility purposes.
The project has two parts :
- Half round trip time (RTT/2) benchmarks.
- A Hazelcast IMDG server that can be run until a time out.
These are client server benchmarks that measure half round trip times. These benchmarks were made to compare RRT/2 times for :
- the DiSNI library (RDMA networking - SEND/RECV)
- the jRCM library (RDMA networking - SEND/RECV)
- TCP Java NIO sockets
The classes used to execute the benchmarks are :
- DiSNI benchmark - jarg/thesis/experiments/benchmarks/disni/twosided/TwoSidedBenchmark.java
- jRCM benchmark - jarg/thesis/experiments/benchmarks/jrcm/twosided/TwoSidedBenchmark.java
- TCP NIO benchmark - jarg/thesis/experiments/benchmarks/javanio/NioBenchmark.java
These classes contain comments on how to run the benchmarks.
For the DiSNI and jRCM benchmarks configure the rdma.bench.properties file in src/main/resources/. The file has comments explaining the configuration parameters.
You can use the src/main/java/jarg/thesis/experiments/benchmarks/hazelcast/TimedHazelcastInstance.java class to run a Hazelcast server until a specified timeout. To configure the server, use the hazelcast.xml file in src/main/resources/.