-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
db-shootout does not work on linux ppc64le / s390x #153
Comments
btw. the reported issues has been seen with both JDK8 and JDK11. |
Thanks Matthias for the report. I see different options here :
Any opinion welcome @lbulej, @vhotspur, @axel22 & co. I personally think that option 4 may be a good tradeoff. It's a simple change that would solve that particular issue. Moreover, the benchmark would probably not behave very differently. That would need to be quantify though. |
I also think that option 4 is preferable for now. |
At the moment, adding support for 3 would be quite far in the priority chain of design changes, so I'd support 4 as well. |
Wouldn't the list of supported platforms for each benchmark just be a property associated with a benchmark? |
Yes, that would be just a property, but if we can slightly change the problematic benchmark(s) to work on most platforms, that’s one less dimension to care about. I will tackle the implementation of 4 by measuring the performance difference on several VMs. |
@MBaesken, the benchmark has been fixed to remove the native dependency. You can build a jar from master, or wait for the 0.10.0 release which will come very soon. |
When testing the latest renaissance-mit-0.10.0.jar db-shootout I still run into issues with native libs that are not found . AIX : /rs6000_64/nightly/output-jdk8/images/j2sdk-image/bin/java -jar /benchmarks/renaissance/renaissance-mit-0.10.0.jar db-shootout linuxs390x (OpenJDK jdk11, I had no jdk8 at hand) :/linuxs390x/nightly/output-jdk11-test/images/jdk/bin/java -jar /benchmarks/renaissance/renaissance-mit-0.10.0.jar db-shootout So it looks like there are native dependencies remaining. |
I think we should maybe think about including the Apache Ignite database in this benchmark instead. |
Thanks @MBaesken for the testing. This is where the native library is loaded in Chronicle code : https://github.com/OpenHFT/Chronicle-Map/blob/master/src/main/java/net/openhft/chronicle/hash/impl/util/jna/PosixMsync.java#L28 I'll investigate how much it take to replace |
Or we can just update the JNA library used by |
Linux ppc64le worked nicely when testing with renaissance-gpl-0.13.0-4-g2755c79.jar (both with our JDK8 and JDK11).
While os.arch is s390x in JDK11, it was still zArch_64 in 8 . This might lead to the error. |
I opened java-native-access/jna#1388 at JNA regarding the os.arch mapping; let's see what happens. |
Can this be closed now? |
Hi, my change for issue java-native-access/jna#1388 went into JNA . |
Sounds great - any idea when the new release with this change approx. will be released ? |
The plan was to get a maintenance update out by the beginning of December but we wanted to make it easier to run the benchmarks on platforms that cannot do multiple class loaders. If things go well now, the first half of January 2022 looks like a reasonable target. |
It took a little longer, but the updated JNA that fixes the problem is now part of the 0.14.0 release. Thank you for helping with this issue! |
It seems the db-shootout benchmark does not work on linux ppc64le / s390x .
It contains a native lib (leveldbjni64-1.8 ) that is not available on all CPU/HW platforms where OpenJDK is supported.
Error message (example is from linux ppc64le)
java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no leveldbjni64-1.8 in java.library.path, no leveldbjni-1.8 in java.library.path, no leveldbjni in java.library.path, /tmp/libleveldbjni-64-1-8490766625802501468.8: /tmp/libleveldbjni-64-1-8490766625802501468.8: cannot open shared object file: No such file or directory (Possible cause: can't load AMD 64-bit .so on a Power PC 64 LE-bit platform)]
Probably the db-shootout benchmark should be run only on the platforms that are supposed to work (means: has the native library available).
The text was updated successfully, but these errors were encountered: