You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Carter (JIRA)" <ji...@apache.org> on 2014/08/04 16:39:11 UTC

[jira] [Created] (HBASE-11657) Put HTable region methods in an interface

Carter created HBASE-11657:
------------------------------

             Summary: Put HTable region methods in an interface
                 Key: HBASE-11657
                 URL: https://issues.apache.org/jira/browse/HBASE-11657
             Project: HBase
          Issue Type: Improvement
    Affects Versions: 0.99.0
            Reporter: Carter
            Assignee: Carter
             Fix For: 0.99.0


Most of the HTable methods are now abstracted by HTableInterface, with the notable exception of the following methods that pertain to region metadata:

{code}
HRegionLocation getRegionLocation(final String row)
HRegionLocation getRegionLocation(final byte [] row)
HRegionLocation getRegionLocation(final byte [] row, boolean reload)
byte [][] getStartKeys()
byte[][] getEndKeys()
Pair<byte[][],byte[][]> getStartEndKeys()
void clearRegionCache()
{code}

and a default scope method which maybe should be bundled with the others:

{code}
List<RegionLocations> listRegionLocations()
{code}

Since the consensus seems to be that these would muddy HTableInterface with non-core functionality, where should it go?  MapReduce looks up the region boundaries, so it needs to be exposed somewhere.

Let me throw out a straw man to start the conversation.  I propose:

{code}
org.apache.hadoop.hbase.client.HRegionInterface
{code}

Have HTable implement this interface.  Also add these methods to HConnection:

{code}
HRegionInterface getTableRegion(TableName tableName)
HRegionInterface getTableRegion(TableName tableName, ExecutorService pool)
{code}

[~stack], [~ndimiduk], [~enis], thoughts?




--
This message was sent by Atlassian JIRA
(v6.2#6252)