Andrew Purtell created HBASE-12128:
--------------------------------------

             Summary: Cache configuration and RpcController selection for Table 
in Connection
                 Key: HBASE-12128
                 URL: https://issues.apache.org/jira/browse/HBASE-12128
             Project: HBase
          Issue Type: Sub-task
            Reporter: Andrew Purtell


Creating Table instances should be lightweight. Apps that manage their own 
Connections are expected to create Tables on demand for each interaction. 
However we look up values from Hadoop Configuration when constructing Table 
objects for storing to some of its fields. Configuration is a heavyweight 
registry that does a lot of string operations and regex matching. Method calls 
into Configuration account for 48.25% of CPU time when creating the HTable 
object in 0.98. Another ~48% of CPU is spent constructing the desired 
RpcController object via reflection in 0.98. Together this can account for ~20% 
of total on-CPU time of the client. See parent issue for more detail.

We are using Connection like a factory for Table. We should cache configuration 
for Table in Connection. We should also create by reflection once and cache the 
desired RpcController object, and clone it for new Tables.



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

Reply via email to