Conversation
|
That's awesome! |
|
I think that you could add |
|
@dain we should apply for ARM runners so we can add a coverage here as well |
|
Right now some of the tests are not passing on ARM (due to the lack of the libgplcompression for aarch64) |
|
Some benchmarks: |
Ya, I think we should make this a proper module, not that most people use module capable systems.... follow up work
Looks like the beta is open now https://github.blog/2024-06-03-arm64-on-github-actions-powering-faster-more-efficient-build-systems/
For benchmarks, you'll want to look at these algorithms:
Then in the DataSet you'll want to narrow down to one of the collections, or it will take forever. |
src/main/java/io/airlift/compress/deflate/DeflateCompressor.java
Outdated
Show resolved
Hide resolved
| private static final MethodHandle IS_ERROR_METHOD; | ||
| private static final MethodHandle GET_ERROR_NAME_METHOD; | ||
|
|
||
| // TODO should we just hardcode this to 3? |
There was a problem hiding this comment.
should we? or should this be configurable?
There was a problem hiding this comment.
Since we include our own libraries, loading this value from the library seems redundant.
The underlying format for zstd in Hadoop is the standard framed format. The Hadoop JNI code for Zstd corrupts the process symbol table on Linux by loading the Zstd library into the global process symbol table.
| # Requirements | ||
|
|
||
| This library requires a Java 1.8+ virtual machine containing the `sun.misc.Unsafe` interface running on a little endian platform. | ||
| This library requires a Java 22+ virtual machine containing the `sun.misc.Unsafe` interface running on a little endian platform. |
There was a problem hiding this comment.
Would you consider building a multi-release JAR, so us miserable folks stuck on Java 1.8 can still use the pure Java bits of this library?
There was a problem hiding this comment.
The 2.x branch (master) uses the new java.lang.foreign APIs that are only present in Java 22+. The release-0.x branch contains the code that works with Java 1.8.
d5637e8 to
8e35673
Compare
|
a51471a to
62ef599
Compare
|
Can you move the code to |
I think the key wording here is "an executable JAR". So this only works for the application's JAR being run with |
|
Typo in commit message |
|
|
||
| private static String getPlatform() | ||
| { | ||
| String name = System.getProperty("os.name"); |
There was a problem hiding this comment.
I actually like this idea. We could convert the OS names to macos and linux, which would make the directories cleaner:
String name = System.getProperty("os.name");
name = switch (name) {
case "Linux" -> "linux";
case "Mac OS X" -> "macos";
default -> throw new LinkageError("Unsupported OS platform: " + name);
}This will require changing the previous commit that downloads the native libraries.
Add support for native Lz4, Snappy, and Zstd using the
java.lang.foreignAPIs