You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "jiraposter@reviews.apache.org (Commented) (JIRA)" <ji...@apache.org> on 2012/03/01 02:03:59 UTC

[jira] [Commented] (HBASE-5489) Add HTable accessor to get regions for a key range

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

jiraposter@reviews.apache.org commented on HBASE-5489:
------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4117/
-----------------------------------------------------------

Review request for hbase.


Summary
-------

getRegionsInRange() will retrieve the HRegionLocations for the regions associated with the specified key range, using client-side cache if possible.


This addresses bug HBASE-5489.
    https://issues.apache.org/jira/browse/HBASE-5489


Diffs
-----

  src/main/java/org/apache/hadoop/hbase/client/HTable.java 29b8004 
  src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java bdeaefe 

Diff: https://reviews.apache.org/r/4117/diff


Testing
-------

Ran the TestFromClientSide unit tests and passed repeatedly.

Ran test-patch.sh with the following results:

-1 overall.  

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    -1 javadoc.  The javadoc tool appears to have generated -129 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    +1 findbugs.  The patch does not introduce any new Findbugs (version ) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.


Thanks,

David


                
> 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
>
> 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