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