[ https://issues.apache.org/jira/browse/HBASE-5388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13207031#comment-13207031 ]
stack commented on HBASE-5388: ------------------------------ I agree w/ Zhihong, that '+ if (!(this.internalMap instanceof NavigableMap)) {' block seems unnecessary. Is the 'greatest' in this right? {code} + * retrieves the value associated with the greatest key strictly less than + * the given key, or null if there is no such key {code} Its unfortunate that SoftValueSortedMap sneaks back into HCM but I can live with it if no alternative (Lars' suggestion having SVSM implement NM didn't seem to bad but understand if it adds a bunch of boiler plate) > Tuning HConnectionManager#getCachedLocation method > -------------------------------------------------- > > Key: HBASE-5388 > URL: https://issues.apache.org/jira/browse/HBASE-5388 > Project: HBase > Issue Type: Improvement > Affects Versions: 0.90.5 > Reporter: ronghai.ma > Assignee: ronghai.ma > Labels: patch > Fix For: 0.94.0 > > Attachments: 5388-v2.txt, HConnectionManager.java, > SoftValueSortedMap.java, SoftValueSortedMap.java > > > About 75% improvement in execution time. > 1. Add the following method in SoftValueSortedMap: > {code} > public synchronized <K, V> Entry<K, V> lowerEntry(K key) { > return ((TreeMap) this.internalMap).lowerEntry(key); > } > {code} > 2. Modify getCachedLocation: > {code} > Map.Entry<byte[], HRegionLocation> tEntry = tableLocations.lowerEntry(row); > if (tEntry != null) { > HRegionLocation possibleRegion = tEntry.getValue(); > //other code > } > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira