You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jonathan Gray (JIRA)" <ji...@apache.org> on 2010/11/11 20:51:13 UTC

[jira] Created: (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

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.90.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.
-
You can reply to this email to add a comment to the issue online.


[jira] [Commented] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "Ted Yu (JIRA)" <ji...@apache.org>.
    [ 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

        

[jira] Commented: (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "Jonathan Gray (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12931170#action_12931170 ] 

Jonathan Gray commented on HBASE-3229:
--------------------------------------

I think this is a bug, not a feature, so tied it on 0.90.  But could be convinced on a punt if others don't think this is a big deal.

I'm filing this after a user tripped on it and didn't know exactly what happened.

> 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.90.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.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "Kannan Muthukkaruppan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12931501#action_12931501 ] 

Kannan Muthukkaruppan commented on HBASE-3229:
----------------------------------------------

Two additional observations:

1) The HBaseAdmin.java:createTableAsync() (this is from 0.89), the function doesn't actually seem be doing anything async. The master.createTable() appears to be a blocking call.

{code}
public void createTableAsync(HTableDescriptor desc, byte [][] splitKeys)
  throws IOException {
    if (this.master == null) {
      throw new MasterNotRunningException("master has been shut down");
    }
    HTableDescriptor.isLegalTableName(desc.getName());
    try {
      this.master.createTable(desc, splitKeys);
    } catch (RemoteException e) {
      throw RemoteExceptionHandler.decodeRemoteException(e);
    }
  }
{code}

2) When creating a table with pre-splits, HBaseAdmin.java:createTable() waits only for the first region/split to be online. 

{code}
 public void createTable(HTableDescriptor desc, byte [][] splitKeys)
  throws IOException {
   
    ...

    createTableAsync(desc, splitKeys);
    for (int tries = 0; tries < numRetries; tries++) {
      try {
        // Wait for new table to come on-line
        connection.locateRegion(desc.getName(), HConstants.EMPTY_START_ROW);

    ...
{code}


> 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.
-
You can reply to this email to add a comment to the issue online.


[jira] [Commented] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13090813#comment-13090813 ] 

jiraposter@reviews.apache.org commented on HBASE-3229:
------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1653/
-----------------------------------------------------------

(Updated 2011-08-25 06:33:04.297176)


Review request for hbase.


Summary
-------

1. Make createTable truly async.
2. Fix up some incorrect comments, logs.


This addresses bug HBASE-3229.
    https://issues.apache.org/jira/browse/HBASE-3229


Diffs (updated)
-----

  http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java 1161360 
  http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java 1161360 
  http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java 1161360 
  http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1161360 
  http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1161360 
  http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java PRE-CREATION 
  http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java 1161360 
  http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKTable.java 1161360 
  http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java 1161360 

Diff: https://reviews.apache.org/r/1653/diff


Testing
-------

1. add a new test case to verify RPC timeout exception is gone when creating table with lots of regions.
2. hbase shell, unit tests.


Thanks,

Ming



> 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
>            Assignee: Ming Ma
>            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

        

[jira] Commented: (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "stack (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966001#action_12966001 ] 

stack commented on HBASE-3229:
------------------------------

Yeah, createTable is not actually async.   Its waiting over in master.  Needs redo so its like the enable/disable/delete table methods.

> 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.
-
You can reply to this email to add a comment to the issue online.


[jira] [Resolved] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "stack (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

stack resolved HBASE-3229.
--------------------------

      Resolution: Fixed
    Hadoop Flags: [Reviewed]

Thank you for the patch Ming and review, Ted.  Committed to TRUNK.

> 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
>            Assignee: Ming Ma
>            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

        

[jira] [Commented] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "Ted Yu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13091785#comment-13091785 ] 

Ted Yu commented on HBASE-3229:
-------------------------------

+1 on patch.

> 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
>            Assignee: Ming Ma
>            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

        

[jira] [Commented] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13091908#comment-13091908 ] 

jiraposter@reviews.apache.org commented on HBASE-3229:
------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1653/#review1661
-----------------------------------------------------------

Ship it!


We could commit this as is but there is one item below I'd like your opinion on first Ming.


http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
<https://reviews.apache.org/r/1653/#comment3706>

    I think we need a bit more checking in here before we queue the Excecutor.  We should check if table already exists.  Its no good throwing this exception down in the Executor.  The client won't see it.  Can we check table existence up here before we queue the Executor while we have the client on the line?
    
    I had a quick look at table existence seems to be the only thing to check.



http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
<https://reviews.apache.org/r/1653/#comment3707>

    Thanks.


- Michael


On 2011-08-25 06:33:04, Ming Ma wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/1653/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-08-25 06:33:04)
bq.  
bq.  
bq.  Review request for hbase.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  1. Make createTable truly async.
bq.  2. Fix up some incorrect comments, logs.
bq.  
bq.  
bq.  This addresses bug HBASE-3229.
bq.      https://issues.apache.org/jira/browse/HBASE-3229
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java PRE-CREATION 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKTable.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java 1161360 
bq.  
bq.  Diff: https://reviews.apache.org/r/1653/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  1. add a new test case to verify RPC timeout exception is gone when creating table with lots of regions.
bq.  2. hbase shell, unit tests.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ming
bq.  
bq.



> 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
>            Assignee: Ming Ma
>            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

        

[jira] [Commented] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13091947#comment-13091947 ] 

jiraposter@reviews.apache.org commented on HBASE-3229:
------------------------------------------------------



bq.  On 2011-08-26 17:58:10, Michael Stack wrote:
bq.  > http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java, line 934
bq.  > <https://reviews.apache.org/r/1653/diff/3/?file=35507#file35507line934>
bq.  >
bq.  >     I think we need a bit more checking in here before we queue the Excecutor.  We should check if table already exists.  Its no good throwing this exception down in the Executor.  The client won't see it.  Can we check table existence up here before we queue the Executor while we have the client on the line?
bq.  >     
bq.  >     I had a quick look at table existence seems to be the only thing to check.

Stack, CreateTableHandler constructor will throw TableExistsException if the table exists. So CreateTableHandler object won't be created at the first place to be queued. So it should take care of your question, or you meant something else?


- Ming


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1653/#review1661
-----------------------------------------------------------


On 2011-08-25 06:33:04, Ming Ma wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/1653/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-08-25 06:33:04)
bq.  
bq.  
bq.  Review request for hbase.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  1. Make createTable truly async.
bq.  2. Fix up some incorrect comments, logs.
bq.  
bq.  
bq.  This addresses bug HBASE-3229.
bq.      https://issues.apache.org/jira/browse/HBASE-3229
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java PRE-CREATION 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKTable.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java 1161360 
bq.  
bq.  Diff: https://reviews.apache.org/r/1653/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  1. add a new test case to verify RPC timeout exception is gone when creating table with lots of regions.
bq.  2. hbase shell, unit tests.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ming
bq.  
bq.



> 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
>            Assignee: Ming Ma
>            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

        

[jira] [Commented] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13091134#comment-13091134 ] 

jiraposter@reviews.apache.org commented on HBASE-3229:
------------------------------------------------------



bq.  On 2011-08-25 11:52:17, Ted Yu wrote:
bq.  > http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java, line 968
bq.  > <https://reviews.apache.org/r/1653/diff/3/?file=35507#file35507line968>
bq.  >
bq.  >     Should we consider using the existing code if there aren't many entries in newRegions ?

Some reasons to do async for all cases.

1. Other table operations like enableTable doesn't have such logics. So it is more consistent.
2. If we do sync for small number of regions, then we have to decide what is considered small. It might end up with another configuration parameter.
3. Less code to manage.

Suggestions?


- Ming


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1653/#review1638
-----------------------------------------------------------


On 2011-08-25 06:33:04, Ming Ma wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/1653/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-08-25 06:33:04)
bq.  
bq.  
bq.  Review request for hbase.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  1. Make createTable truly async.
bq.  2. Fix up some incorrect comments, logs.
bq.  
bq.  
bq.  This addresses bug HBASE-3229.
bq.      https://issues.apache.org/jira/browse/HBASE-3229
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java PRE-CREATION 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKTable.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java 1161360 
bq.  
bq.  Diff: https://reviews.apache.org/r/1653/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  1. add a new test case to verify RPC timeout exception is gone when creating table with lots of regions.
bq.  2. hbase shell, unit tests.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ming
bq.  
bq.



> 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
>            Assignee: Ming Ma
>            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

        

[jira] [Commented] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13090958#comment-13090958 ] 

jiraposter@reviews.apache.org commented on HBASE-3229:
------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1653/#review1638
-----------------------------------------------------------



http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
<https://reviews.apache.org/r/1653/#comment3678>

    Should we consider using the existing code if there aren't many entries in newRegions ?


- Ted


On 2011-08-25 06:33:04, Ming Ma wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/1653/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-08-25 06:33:04)
bq.  
bq.  
bq.  Review request for hbase.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  1. Make createTable truly async.
bq.  2. Fix up some incorrect comments, logs.
bq.  
bq.  
bq.  This addresses bug HBASE-3229.
bq.      https://issues.apache.org/jira/browse/HBASE-3229
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java PRE-CREATION 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKTable.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java 1161360 
bq.  
bq.  Diff: https://reviews.apache.org/r/1653/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  1. add a new test case to verify RPC timeout exception is gone when creating table with lots of regions.
bq.  2. hbase shell, unit tests.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ming
bq.  
bq.



> 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
>            Assignee: Ming Ma
>            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

        

[jira] [Assigned] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "Ming Ma (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ming Ma reassigned HBASE-3229:
------------------------------

    Assignee: Ming Ma

> 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
>            Assignee: Ming Ma
>            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

        

[jira] Updated: (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "stack (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

stack updated HBASE-3229:
-------------------------

    Fix Version/s:     (was: 0.90.0)
                   0.92.0

> 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.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "stack (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12931179#action_12931179 ] 

stack commented on HBASE-3229:
------------------------------

Moved it out after chatting w/ Jon on IRC.  Not 'critical'.

> 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.
-
You can reply to this email to add a comment to the issue online.


[jira] [Commented] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13092041#comment-13092041 ] 

Hudson commented on HBASE-3229:
-------------------------------

Integrated in HBase-TRUNK #2147 (See [https://builds.apache.org/job/HBase-TRUNK/2147/])
    HBASE-3229 Table creation, though using async call to master, can actually run for a while and cause RPC timeout

stack : 
Files : 
* /hbase/trunk/CHANGES.txt
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKTable.java
* /hbase/trunk/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java


> 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
>            Assignee: Ming Ma
>            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

        

[jira] [Commented] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13091215#comment-13091215 ] 

jiraposter@reviews.apache.org commented on HBASE-3229:
------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1653/#review1649
-----------------------------------------------------------



http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
<https://reviews.apache.org/r/1653/#comment3687>

    Jonathan may not like another configuration parameter.
    I think this implementation is fine.
    
    All tests passed.



http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKTable.java
<https://reviews.apache.org/r/1653/#comment3688>

    


- Ted


On 2011-08-25 06:33:04, Ming Ma wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/1653/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-08-25 06:33:04)
bq.  
bq.  
bq.  Review request for hbase.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  1. Make createTable truly async.
bq.  2. Fix up some incorrect comments, logs.
bq.  
bq.  
bq.  This addresses bug HBASE-3229.
bq.      https://issues.apache.org/jira/browse/HBASE-3229
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java PRE-CREATION 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKTable.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java 1161360 
bq.  
bq.  Diff: https://reviews.apache.org/r/1653/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  1. add a new test case to verify RPC timeout exception is gone when creating table with lots of regions.
bq.  2. hbase shell, unit tests.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ming
bq.  
bq.



> 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
>            Assignee: Ming Ma
>            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

        

[jira] [Commented] (HBASE-3229) Table creation, though using "async" call to master, can actually run for a while and cause RPC timeout

Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13091952#comment-13091952 ] 

jiraposter@reviews.apache.org commented on HBASE-3229:
------------------------------------------------------



bq.  On 2011-08-26 17:58:10, Michael Stack wrote:
bq.  > http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java, line 934
bq.  > <https://reviews.apache.org/r/1653/diff/3/?file=35507#file35507line934>
bq.  >
bq.  >     I think we need a bit more checking in here before we queue the Excecutor.  We should check if table already exists.  Its no good throwing this exception down in the Executor.  The client won't see it.  Can we check table existence up here before we queue the Executor while we have the client on the line?
bq.  >     
bq.  >     I had a quick look at table existence seems to be the only thing to check.
bq.  
bq.  Ming Ma wrote:
bq.      Stack, CreateTableHandler constructor will throw TableExistsException if the table exists. So CreateTableHandler object won't be created at the first place to be queued. So it should take care of your question, or you meant something else?

I didn't get that part.  I see now that the test is done in the handler constructor.  Nice one Ming.


- Michael


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1653/#review1661
-----------------------------------------------------------


On 2011-08-25 06:33:04, Ming Ma wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/1653/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-08-25 06:33:04)
bq.  
bq.  
bq.  Review request for hbase.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  1. Make createTable truly async.
bq.  2. Fix up some incorrect comments, logs.
bq.  
bq.  
bq.  This addresses bug HBASE-3229.
bq.      https://issues.apache.org/jira/browse/HBASE-3229
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java PRE-CREATION 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKTable.java 1161360 
bq.    http://svn.apache.org/repos/asf/hbase/trunk/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java 1161360 
bq.  
bq.  Diff: https://reviews.apache.org/r/1653/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  1. add a new test case to verify RPC timeout exception is gone when creating table with lots of regions.
bq.  2. hbase shell, unit tests.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ming
bq.  
bq.



> 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
>            Assignee: Ming Ma
>            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