[ https://issues.apache.org/jira/browse/KAFKA-10470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17218064#comment-17218064 ]
Chia-Ping Tsai commented on KAFKA-10470: ---------------------------------------- [~yuzawa-san] Thanks for your effort on zstd-jni. Do you want to take over this issue to leverage the new BufferPool you introduced ? There are two tasks for this issue. 1. update zstd to v1.4.5-8 to use the new interface (BufferPool) introduced by your PR (https://github.com/luben/zstd-jni/pull/146) 2. implement the BufferPool of zstd to reuse the byte buffer (https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/record/CompressionType.java) Also, there is a PR (https://github.com/apache/kafka/pull/9229) trying to use true reusable BufferSupplier to create IO stream (before the PR, the passed BufferSupplier does not recycle the byte buffer). > zstd decompression with small batches is slow and causes excessive GC > --------------------------------------------------------------------- > > Key: KAFKA-10470 > URL: https://issues.apache.org/jira/browse/KAFKA-10470 > Project: Kafka > Issue Type: Bug > Affects Versions: 2.5.1 > Reporter: Robert Wagner > Priority: Major > > Similar to KAFKA-5150 but for zstd instead of LZ4, it appears that a large > decompression buffer (128kb) created by zstd-jni per batch is causing a > significant performance bottleneck. > The next upcoming version of zstd-jni (1.4.5-7) will have a new constructor > for ZstdInputStream that allows the client to pass its own buffer. A similar > fix as [PR #2967|https://github.com/apache/kafka/pull/2967] could be used to > have the ZstdConstructor use a BufferSupplier to re-use the decompression > buffer. -- This message was sent by Atlassian Jira (v8.3.4#803005)