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

Reply via email to