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

Karthik Ranganathan updated HBASE-7163:
---------------------------------------

    Description: 

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 


  was:
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());
}

    
> 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