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

Lars Hofhansl commented on HBASE-7163:
--------------------------------------

Probably right.
A region name is what 20 bytes, start and stop key in HRegionInfo can be long, 
let's say 40, plus region name again and encoded regionname 20 each, plus 
tablename 20, plus hostname 20. That's 20+40*2+20*2+20+20 = 180 bytes, let's 
round up to 200 bytes.
(I hope that is roughly right)
Even with 100k regions that'd only be ~19MB.

                
> Low-hanging perf  improvements in HBase client
> ----------------------------------------------
>
>                 Key: HBASE-7163
>                 URL: https://issues.apache.org/jira/browse/HBASE-7163
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Karthik Ranganathan
>            Assignee: Karthik Ranganathan
>
> 1. Change cachedRegionsLocations in HConnectionManager from 
> SoftValueSortedMap to ConcurrentSkipListMap:
> This change saves 15% CPU on the client side per profiling. In using the 
> ConcurrentSkipListMap, we can do:
> tableLocations.floorEntry(row).getValue()
> instead of doing:
> SortedMap<byte[], HRegionLocation> matchingRegions =
>         tableLocations.floorEntry(row).getValue();
> if (!matchingRegions.isEmpty()) {
>   HRegionLocation possibleRegion = 
>     matchingRegions.get(matchingRegions.lastKey());
> }
> 2. NetUtils.getDefaultSocketFactory is very inefficient, use 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to