[
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