[ 
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)

Reply via email to