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

stack commented on HBASE-16060:
-------------------------------

Given Admin will be incompatible in hbase2, looking into the suggestion by 
[~enis] above that even mainline Table needs Admin internally. Searching, I've 
turned up this list so far:

LoadIncrementalHFiles does Admin#tableExists, createTables.

Creating Snapshots.

Canary does Admin#listTables, #getTableDescriptor

ACC does listTables, isTableAvailable.

MapReduce makes use of Admin doing following admin.getClusterStatus() to 
calcluate Splits. Wants to createTables too (ImportTsv)

h2. Thrift usage of Admin API
{noformat}
compact(ByteBuffer)
createTable(ByteBuffer, List<ColumnDescriptor>)
deleteTable(ByteBuffer)
disableTable(ByteBuffer)
enableTable(ByteBuffer)
getTableNames()
majorCompact(ByteBuffer)
{noformat}


h2. REST usage of Admin API
{noformat}
RootResource
getTableList()
    TableName[] tableNames = servlet.getAdmin().listTableNames();
SchemaResource
delete(UriInfo)
      Admin admin = servlet.getAdmin();
update(TableSchemaModel, boolean, UriInfo)
      Admin admin = servlet.getAdmin();
StorageClusterStatusResource
get(UriInfo)
      ClusterStatus status = servlet.getAdmin().getClusterStatus();
StorageClusterVersionResource
get(UriInfo)
      model.setVersion(servlet.getAdmin().getClusterStatus().getHBaseVersion());
TableResource
exists()
    return servlet.getAdmin().tableExists(TableName.valueOf(table));
{noformat}


> 1.x clients cannot access table state talking to 2.0 cluster
> ------------------------------------------------------------
>
>                 Key: HBASE-16060
>                 URL: https://issues.apache.org/jira/browse/HBASE-16060
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Enis Soztutar
>            Priority: Blocker
>             Fix For: 2.0.0-alpha-3
>
>
> Since table state is migrated to meta instead of zk in 2.0, 1.x clients 
> talking to 2.0 cluster cannot access the table state. This causes some weird 
> behavior since from a client perspective, {{Admin.isTableEnabled()}} and 
> {{Admin.isTableDisabled()}} both return false. 
> One option we can do is to add code in 1.x clients so that they can access 
> the table state in meta if needed. Otherwise, we can mirror the table state 
> in zk (while keeping meta as the source of truth) during 2.x lifecycle so 
> that any 1.x client can still work correctly. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to