[ 
https://issues.apache.org/jira/browse/HBASE-12117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14152856#comment-14152856
 ] 

stack commented on HBASE-12117:
-------------------------------

Nice graph [~apurtell]  How did you make the traces.client.c.svg graph, what 
loading produced it,  and how does it relate to traces.client.c.svg?  I see in 
the latter we spend most CPU reading and writing.  Is the former a portion of 
this latter graph or another loading?

> Constructors that use Configuration may be harmful
> --------------------------------------------------
>
>                 Key: HBASE-12117
>                 URL: https://issues.apache.org/jira/browse/HBASE-12117
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Andrew Purtell
>         Attachments: traces.client.c.svg, traces.client.getHTable.svg
>
>
> There's a common pattern in HBase code where in the constructor, or in an 
> initialization method also called once per instantiation, or both, we look up 
> values from Hadoop Configuration and store them into fields. This can be 
> expensive if the object is frequently created. Configuration is a heavyweight 
> registry that does a lot of string operations and regex matching. See 
> attached example. Method calls into Configuration account for 48.25% of CPU 
> time when creating the HTable object in 0.98. (The remainder is spent 
> instantiating the RPC controller via reflection, a separate issue that merits 
> followup elsewhere.) Creation of HTable instances is expected to be a 
> lightweight operation if a client is using unmanaged HConnections; however 
> creating HTable instances takes up about 18% of the client's total on-CPU 
> time. This is just one example where constructors that use Configuration may 
> be harmful.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to