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

Nick Dimiduk resolved HBASE-29222.
----------------------------------
    Resolution: Fixed

Pushed to branch-2.6+. Thanks [~bewing]!

> Avoid expensive tracing calls if tracing is disabled
> ----------------------------------------------------
>
>                 Key: HBASE-29222
>                 URL: https://issues.apache.org/jira/browse/HBASE-29222
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 3.0.0-beta-1, 2.5.11, 2.6.2
>            Reporter: Becker Ewing
>            Assignee: Becker Ewing
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.7.0, 3.0.0-beta-2, 2.6.3
>
>         Attachments: slow-decompressor-reinit.2.html
>
>
> Building off of https://issues.apache.org/jira/browse/HBASE-29099—where we 
> removed certain expensive calls if tracing was disabled—it appears that there 
> is more opportunities to avoid allocating/recording trace metadata if we can 
> determine that a trace is disabled. 
> This is inspired by a glance at the first flamegraph in 
> https://issues.apache.org/jira/browse/HBASE-29218 where we spent an aggregate 
> 1.48% of all CPU time in OpenTelemetry calls (I filtered for "io/opentelem"). 
> Given that tracing is an opt-in feature, we ideally shouldn't impose a 
> performance penalty if it isn't enabled. Span Calls in the Block I/O Path 
> (particularly those in BlockIOUtils & HFileBlock) look to dominate this 
> flamegraph. We should ensure that we're only recording expensive attributes 
> if tracing is enabled in those paths. 
> As it stands now, BlockIOUtils#readWithExtra spends 40% of it's time in 
> OpenTelemetry calls and the rest of it's time reading data from the 
> filesystem which shows the non-trivial nature of the tracing context being 
> recorded.



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

Reply via email to