[
https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13054499#comment-13054499
]
Ted Yu commented on HBASE-3229:
-------------------------------
w.r.t. Kannan's comments.
In TRUNK, the following method of HMaster is async - see the third parameter:
{code}
public void createTable(HTableDescriptor desc, byte [][] splitKeys)
throws IOException {
createTable(desc, splitKeys, false);
}
{code}
It is the only method exposed through HMasterInterface.
patch v5 from HBASE-3904 makes HBaseAdmin.createTable() to wait for all regions
to be online.
> Table creation, though using "async" call to master, can actually run for a
> while and cause RPC timeout
> -------------------------------------------------------------------------------------------------------
>
> Key: HBASE-3229
> URL: https://issues.apache.org/jira/browse/HBASE-3229
> Project: HBase
> Issue Type: Bug
> Components: client, master
> Affects Versions: 0.90.0
> Reporter: Jonathan Gray
> Priority: Critical
> Fix For: 0.92.0
>
>
> Our create table methods in HBaseAdmin are synchronous from client POV.
> However, underneath, we're using an "async" create and then looping waiting
> for table availability. Because the create is async and we loop instead of
> block on RPC, we don't expect RPC timeouts.
> However, when creating a table with lots of initial regions, the "async"
> create can actually take a long time (more than 30 seconds in this case)
> which causes the client to timeout and gives impression something failed.
> We should make the create truly async so that this can't happen. And rather
> than doing one-off, inline assignment as it is today, we should reuse the
> fancy enable/disable code stack just added to make this faster and more
> optimal.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira