Thibault Deutsch created HBASE-28488: ----------------------------------------
Summary: Avoid expensive allocation in createRegionSpan Key: HBASE-28488 URL: https://issues.apache.org/jira/browse/HBASE-28488 Project: HBase Issue Type: Improvement Components: tracing Affects Versions: 2.5.0 Environment: Multiple clusters with: * OpenJDK 11.0.22+7 * HBase 2.5.7 * 10-150 RegionServers * 90-95% writes requests Reporter: Thibault Deutsch Attachments: Screenshot 2024-04-05 at 00.27.11.png On our busy clusters, the alloc profile shows that createRegionSpan() is responsible for 15-20% of all the allocations. These allocations comes from getRegionNameAsString(). getRegionNameAsString() takes the region name and encode invisible characters in their hex representation. This requires the use of a StringBuilder and thus generate new strings every time. This becomes really expensive on a cluster with high number of requests. We have a patch that replaced the call with getEncodedName() instead. It seems better to just take the encoded region name (the md5 part) and use that in trace attributes, because: - it's fixed in size (the full region name can be much longer depending on the rowkey size), - it's enough information to link a trace to a region, - it doesn't require any new allocation. -- This message was sent by Atlassian Jira (v8.20.10#820010)