From d34964a2556636b967a4792af16cf2fee0b77b63 Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Fri, 12 Feb 2021 08:12:52 -0800 Subject: [PATCH] MINOR: Update zstd and use classes with no finalizers The updated version includes a few optimizations that benefit us: * Classes with no finalizers (opt-in) that have better GC behavior * `InputStream.skip()` implementation that uses cached buffers * Minor buffer recycler optimizations (used for OutputStream only) Full diff: https://github.com/luben/zstd-jni/compare/v1.4.8-2...v1.4.8-4 --- .../java/org/apache/kafka/common/record/CompressionType.java | 4 ++-- gradle/dependencies.gradle | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/clients/src/main/java/org/apache/kafka/common/record/CompressionType.java b/clients/src/main/java/org/apache/kafka/common/record/CompressionType.java index 19a3f8e75ebe4..c2694ca7f68ba 100644 --- a/clients/src/main/java/org/apache/kafka/common/record/CompressionType.java +++ b/clients/src/main/java/org/apache/kafka/common/record/CompressionType.java @@ -226,9 +226,9 @@ private static class SnappyConstructors { private static class ZstdConstructors { // It's ok to reference `BufferPool` since it doesn't load any native libraries - static final MethodHandle INPUT = findConstructor("com.github.luben.zstd.ZstdInputStream", + static final MethodHandle INPUT = findConstructor("com.github.luben.zstd.ZstdInputStreamNoFinalizer", MethodType.methodType(void.class, InputStream.class, BufferPool.class)); - static final MethodHandle OUTPUT = findConstructor("com.github.luben.zstd.ZstdOutputStream", + static final MethodHandle OUTPUT = findConstructor("com.github.luben.zstd.ZstdOutputStreamNoFinalizer", MethodType.methodType(void.class, OutputStream.class, BufferPool.class)); } diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index 954a495258796..9340e3c310371 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -118,7 +118,7 @@ versions += [ testRetryPlugin: "1.2.0", zinc: "1.3.5", zookeeper: "3.5.9", - zstd: "1.4.8-2" + zstd: "1.4.8-4" ] libs += [ activation: "javax.activation:activation:$versions.activation",