hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Carter (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-11657) Put HTable region methods in an interface
Date Mon, 04 Aug 2014 14:39:11 GMT
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)

Mime
View raw message