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

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

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