You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Michael Bieniosek (JIRA)" <ji...@apache.org> on 2008/02/13 02:15:08 UTC

[jira] Created: (HBASE-444) hbase is very slow at determining table is not present

hbase is very slow at determining table is not present
------------------------------------------------------

                 Key: HBASE-444
                 URL: https://issues.apache.org/jira/browse/HBASE-444
             Project: Hadoop HBase
          Issue Type: Bug
            Reporter: Michael Bieniosek


If I misspell a table name, it takes a very long time for hbase to determine that the table doesn't exist, because there are many levels of retries.  This often causes timeouts, which then obscure the true cause of the problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HBASE-444) hbase is very slow at determining table is not present

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

Jim Kellerman updated HBASE-444:
--------------------------------

        Fix Version/s: 0.2.0
    Affects Version/s: 0.2.0

> hbase is very slow at determining table is not present
> ------------------------------------------------------
>
>                 Key: HBASE-444
>                 URL: https://issues.apache.org/jira/browse/HBASE-444
>             Project: Hadoop HBase
>          Issue Type: Bug
>    Affects Versions: 0.2.0
>            Reporter: Michael Bieniosek
>            Assignee: Bryan Duxbury
>             Fix For: 0.2.0
>
>         Attachments: 444.patch
>
>
> If I misspell a table name, it takes a very long time for hbase to determine that the table doesn't exist, because there are many levels of retries.  This often causes timeouts, which then obscure the true cause of the problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HBASE-444) hbase is very slow at determining table is not present

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

Bryan Duxbury updated HBASE-444:
--------------------------------

    Attachment: 444.patch

This patch makes a special case for TableNotFoundException, rethrowing without any retries. It passes tests locally. 

As an interesting side note, it makes TestHTable, which tries non-existent tables, go from 93 seconds to 50 seconds. 

> hbase is very slow at determining table is not present
> ------------------------------------------------------
>
>                 Key: HBASE-444
>                 URL: https://issues.apache.org/jira/browse/HBASE-444
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Michael Bieniosek
>            Assignee: Bryan Duxbury
>         Attachments: 444.patch
>
>
> If I misspell a table name, it takes a very long time for hbase to determine that the table doesn't exist, because there are many levels of retries.  This often causes timeouts, which then obscure the true cause of the problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-444) hbase is very slow at determining table is not present

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

stack commented on HBASE-444:
-----------------------------

+1

Commit it Bryan.

> hbase is very slow at determining table is not present
> ------------------------------------------------------
>
>                 Key: HBASE-444
>                 URL: https://issues.apache.org/jira/browse/HBASE-444
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Michael Bieniosek
>            Assignee: Bryan Duxbury
>         Attachments: 444.patch
>
>
> If I misspell a table name, it takes a very long time for hbase to determine that the table doesn't exist, because there are many levels of retries.  This often causes timeouts, which then obscure the true cause of the problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HBASE-444) hbase is very slow at determining table is not present

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

Bryan Duxbury updated HBASE-444:
--------------------------------

    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

I just committed this.

> hbase is very slow at determining table is not present
> ------------------------------------------------------
>
>                 Key: HBASE-444
>                 URL: https://issues.apache.org/jira/browse/HBASE-444
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Michael Bieniosek
>            Assignee: Bryan Duxbury
>         Attachments: 444.patch
>
>
> If I misspell a table name, it takes a very long time for hbase to determine that the table doesn't exist, because there are many levels of retries.  This often causes timeouts, which then obscure the true cause of the problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HBASE-444) hbase is very slow at determining table is not present

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

Bryan Duxbury updated HBASE-444:
--------------------------------

    Status: Patch Available  (was: Open)

> hbase is very slow at determining table is not present
> ------------------------------------------------------
>
>                 Key: HBASE-444
>                 URL: https://issues.apache.org/jira/browse/HBASE-444
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Michael Bieniosek
>            Assignee: Bryan Duxbury
>         Attachments: 444.patch
>
>
> If I misspell a table name, it takes a very long time for hbase to determine that the table doesn't exist, because there are many levels of retries.  This often causes timeouts, which then obscure the true cause of the problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-444) hbase is very slow at determining table is not present

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

Bryan Duxbury commented on HBASE-444:
-------------------------------------

It would be nice if we could quickly say that a table doesn't exist. However, the question is, how do we do that? 

The current way of determining if a table exists is to locate the first region in the table. As noted, if the table doesn't even exist, you'll have to verify that 5 times before actually admitting it doesn't exist. I don't think this is necessarily behavior we want to change, though, because the table might have just been created, and therefore you don't want to assume a TableNotFound exception should skip retries. 

The alternative is to scan the .META. table to see if the table exists at all. There's even a method for this on HConnectionManager$TableServers - tableExists. Unfortunately, none of this info is cached at all, and that means every table creation would cause a genuine scan of the .META. table. This seems like it would be slow, too. 

I guess one option would be to cache NON-existing table names. After we've become certain that a table doesn't exist (retries have failed), then we could store a flag saying that a table decisively isn't there. The only problem with this approach is that when you then go and create the missing table, how do you inform the clients that it has been created?

Basically, I am open to suggestion as to how this process could be improved.

> hbase is very slow at determining table is not present
> ------------------------------------------------------
>
>                 Key: HBASE-444
>                 URL: https://issues.apache.org/jira/browse/HBASE-444
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Michael Bieniosek
>
> If I misspell a table name, it takes a very long time for hbase to determine that the table doesn't exist, because there are many levels of retries.  This often causes timeouts, which then obscure the true cause of the problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (HBASE-444) hbase is very slow at determining table is not present

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

Bryan Duxbury reassigned HBASE-444:
-----------------------------------

    Assignee: Bryan Duxbury

> hbase is very slow at determining table is not present
> ------------------------------------------------------
>
>                 Key: HBASE-444
>                 URL: https://issues.apache.org/jira/browse/HBASE-444
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Michael Bieniosek
>            Assignee: Bryan Duxbury
>
> If I misspell a table name, it takes a very long time for hbase to determine that the table doesn't exist, because there are many levels of retries.  This often causes timeouts, which then obscure the true cause of the problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-444) hbase is very slow at determining table is not present

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

Michael Bieniosek commented on HBASE-444:
-----------------------------------------

Ah.  I don't think we need to worry about that edge case -- if I ask for data from a table whose creation has not yet been completed, it seems reasonable to get a TableNotFound exception.

> hbase is very slow at determining table is not present
> ------------------------------------------------------
>
>                 Key: HBASE-444
>                 URL: https://issues.apache.org/jira/browse/HBASE-444
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Michael Bieniosek
>
> If I misspell a table name, it takes a very long time for hbase to determine that the table doesn't exist, because there are many levels of retries.  This often causes timeouts, which then obscure the true cause of the problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-444) hbase is very slow at determining table is not present

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

Bryan Duxbury commented on HBASE-444:
-------------------------------------

No, because there's a chance the table is in the process of being created. If that's just an edge case we aren't very worried about, we can change the behavior to treat TableNotFound exceptions differently.

> hbase is very slow at determining table is not present
> ------------------------------------------------------
>
>                 Key: HBASE-444
>                 URL: https://issues.apache.org/jira/browse/HBASE-444
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Michael Bieniosek
>
> If I misspell a table name, it takes a very long time for hbase to determine that the table doesn't exist, because there are many levels of retries.  This often causes timeouts, which then obscure the true cause of the problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-444) hbase is very slow at determining table is not present

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

Michael Bieniosek commented on HBASE-444:
-----------------------------------------

I'm not sure I understand.  If we check META for the first region, and it's not there, can't we just stop and say the table doesn't exist?

> hbase is very slow at determining table is not present
> ------------------------------------------------------
>
>                 Key: HBASE-444
>                 URL: https://issues.apache.org/jira/browse/HBASE-444
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Michael Bieniosek
>
> If I misspell a table name, it takes a very long time for hbase to determine that the table doesn't exist, because there are many levels of retries.  This often causes timeouts, which then obscure the true cause of the problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.