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