[
https://issues.apache.org/jira/browse/HBASE-28488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HBASE-28488:
-----------------------------------
Labels: pull-request-available (was: )
> 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
> * 90-95% writes requests
> Reporter: Thibault Deutsch
> Priority: Minor
> Labels: pull-request-available
> Attachments:
> 0001-HBASE-28488-Use-encoded-name-in-region-span-attribut.patch, 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)