You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2017/09/01 21:16:02 UTC

[jira] [Commented] (HBASE-16060) 1.x clients cannot access table state talking to 2.0 cluster

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