[ 
https://issues.apache.org/jira/browse/HBASE-28485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Charles Connell updated HBASE-28485:
------------------------------------
    Attachment: async-prof-flamegraph-cpu_event-1712150670836-cpu.html

> Re-use ZstdDecompressCtx/ZstdCompressCtx for performance
> --------------------------------------------------------
>
>                 Key: HBASE-28485
>                 URL: https://issues.apache.org/jira/browse/HBASE-28485
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Charles Connell
>            Assignee: Charles Connell
>            Priority: Major
>         Attachments: async-prof-flamegraph-cpu_event-1712150670836-cpu.html, 
> async-prof-pid-1324144-cpu-1.html
>
>
> The zstd documentation recommends re-using context objects when possible, 
> because their creation has some expense. They can be more cheaply reset than 
> re-created. In ZstdDecompressor and ZstdCompressor, we create a new context 
> object for every call to decompress() and compress(). In CPU profiles I've 
> taken at my company, the constructor of ZstdDecompressCtx can sometimes 
> represent 10-25% of the time spent in zstd decompression, which itself is 
> 5-10% of a RegionServer's total CPU time. Avoiding this performance penalty 
> won't lead to any massive performance boost, but is a nice little win.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to