You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2014/09/30 04:26:33 UTC
[jira] [Created] (HBASE-12117) Constructors that use Configuration
may be harmful
Andrew Purtell created HBASE-12117:
--------------------------------------
Summary: 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.) HConnections 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 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)