The Distributed Plasma with RDMA (DPwR) Client application is able to connect to one or more DPwR-Server applications to use the Apache Plasma store distributed. The PUT and GET operations utilize Remote Direct Memory Access (RDMA) through the use of Infinileap. This repository also includes a Yahoo! Cloud Serving Benchmark (YCSB) binding for the benchmarking of DPwR. The code in this project is experimental and written as part of a master thesis.
After cloning the repository, the submodules must also be cloned, for example by using:
git submodule update --init --recursive
Add to infinileap: infinileap/core/src/main/java/de/hhu/bsinfo/infinileap/util/Requests.java
public static void await(Worker worker, Queue queue) throws InterruptedException {
while (queue.isEmpty()) {
if (worker.progress() == WorkerProgress.IDLE) {
worker.await();
}
if (Thread.interrupted()) {
throw new InterruptedException();
}
}
}
And change infinileap: infinileap/core/src/main/java/de/hhu/bsinfo/infinileap/binding/MemoryRegion.java
@Override
public void close() throws Exception {
var status = ucp_mem_unmap(context.address(), handle.address());
if (Status.isNot(status, Status.OK)) {
throw new CloseException(new ControlException(status));
}
}
To:
@Override
public void close() throws CloseException {
var status = ucp_mem_unmap(context.address(), handle.address());
if (Status.isNot(status, Status.OK)) {
throw new CloseException(new ControlException(status));
}
}
- Install sdk-man
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
- Download panama installer from https://coconucos.cs.hhu.de/forschung/jdk/install and save it as panama-install.sh then run:
bash panama-install.sh
sdk use java panama
Install UCX from https://github.com/openucx/ucx/releases/tag/v1.13.0
- run
./gradlew installDist
- run
export UCX_ERROR_SIGNALS=""
- run
./build/install/InfinimumDB-Client/bin/InfinimumDB-Client
Exception in thread "main" java.io.FileNotFoundException: https://downloads.gradle-dn.com/distributions-snapshots/gradle-7.5-20220113232546+0000-bin.zip
Solution Download gradle nightly from https://gradle.org/nightly/
BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 63
Solution
sdk install java 17.0.3.6.1-amzn
sdk use java 17.0.3.6.1-amzn
For building, Java 17 is required, but for running, Java 19 is required, so after building, run sdk use java panama
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/julian/.sdkman/candidates/java/panama/lib/libclang.so: libLLVM-11.so.1: cannot open shared object file: No such file or directory
Solution
sudo apt-get install llvm-11
fatal error: 'uct/api/uct.h' file not found
Solution install UCX by following the Installation.
Error: LinkageError occurred while loading main class main.Application java.lang.UnsupportedClassVersionError: main/Application has been compiled by a more recent version of the Java Runtime (class file version 63.0), this version of the Java Runtime only recognizes class file versions up to 61.0
Solution
sdk use java panama
Following error message appears when running the client java.lang.UnsatisfiedLinkError: no stdc++ in java.library.path:
Solution:
The libstdc++.so is not found in the java.library.path. Run find / -name 'libstdc++.so*' 2>/dev/null
to see if a libstdc++.so exists.
If there is one, but it is not named exactly libstdc++.so create a symlink ln -s /path/to/libstdc++.so.something /where/you/want/libtsdc++.so
.
Now add the symlink to the LD_LIBRARY_PATH environment variable, and when starting the client, add it to the library path with java -Djava.library.path=
.
If you did not find any libstdc++.so install the package libstdc++-10-dev
via sudo apt-get install libstdc++-10-dev
and you should find one.