[ https://issues.apache.org/jira/browse/HBASE-5489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David S. Wang reopened HBASE-5489: ---------------------------------- The comment for getRegionsInRange() has an error. Submitting patch to fix that. > Add HTable accessor to get regions for a key range > -------------------------------------------------- > > Key: HBASE-5489 > URL: https://issues.apache.org/jira/browse/HBASE-5489 > Project: HBase > Issue Type: Improvement > Components: client > Reporter: David S. Wang > Assignee: David S. Wang > Priority: Minor > Fix For: 0.92.1, 0.94.0 > > Attachments: HBASE-5489-2.patch, HBASE-5489-3-0.92.1.patch, > HBASE-5489-3.patch, HBASE-5489-4.patch > > > It would be nice to have an accessor to find all regions that overlap with a > particular range of keys. Right now, the only way to accomplish that is to > call HTable.getStartEndKeys(), then follow that with calls to > getRegionLocation() for the range of keys you are interested in. This > algorithm has 2 drawbacks: > * It returns more keys than is necessary most of the time. This is > especially evident if there are a lot of regions comprising the table and the > range of keys is small. > * It always does a scan of .META. via MetaScannerVisitor for at least > HTable.getStartEndKeys(), and perhaps for HRegionLocations that are not > already cached by the client. > An accessor that limited its scans to a specified range could avoid scanning > .META. at all if the HRegionLocations being fetched were already cached by > the client, thereby potentially making this operation faster in common cases. > Here's a proposal for the accessor: > /** > * Get the corresponding regions for an arbitrary range of keys. > * <p> > * @param startRow Starting row in range, inclusive > * @param endRow Ending row in range, inclusive > * @return A list of HRegionLocations corresponding to the regions that > * contain the specified range > * @throws IOException if a remote or network exception occurs > */ > public List<HRegionLocation> getRegionsInRange(final byte [] startKey, > final byte [] endKey) throws IOException -- 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