hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Solomon Duskis (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-11879) Change TableInputFormatBase to take interface arguments
Date Thu, 18 Sep 2014 15:02:34 GMT

     [ https://issues.apache.org/jira/browse/HBASE-11879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Solomon Duskis updated HBASE-11879:
    Attachment: HBASE_11879.patch

I took a first stab at this problem.  I implemented set/get Table and RegionLocator.  

I didn't address the convenience method issues.

There is a gotcha with table.getRegionLocations().  That's a deprecated method in HTAble that
seems to be used all over the place.  Does it make sense to migrate getRegionLocations() and
its dependencies to use the new Table/RegionLocator/Connection/Admin interfaces?

> Change TableInputFormatBase to take interface arguments
> -------------------------------------------------------
>                 Key: HBASE-11879
>                 URL: https://issues.apache.org/jira/browse/HBASE-11879
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Carter
>            Assignee: Solomon Duskis
>             Fix For: 0.99.1
>         Attachments: HBASE_11879.patch
> As part of the ongoing interface abstraction work, I'm now investigating {{TableInputFormatBase}},
which has two methods that break encapsulation:
> {code}
> protected HTable getHTable();
> protected void setHTable(HTable table);
> {code}
> While these are protected methods, the base @InterfaceAudience.Public is abstract, meaning
that it supports extension by user code.
> I propose deprecating these two methods and replacing them with these four, once the
Table interface is merged:
> {code}
> protected Table getTable();
> protected void setTable(Table table);
> protected RegionLocator getRegionLocator();
> protected void setRegionLocator(RegionLocator regionLocator);
> {code}
> Since users will frequently call {{setTable}} and {{setRegionLocator}} together, it probably
also makes sense to add the following convenience method:
> {code}
> protected void setTableAndRegionLocator(Table table, RegionLocator regionLocator);
> {code}

This message was sent by Atlassian JIRA

View raw message