hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryan Duxbury (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HBASE-444) hbase is very slow at determining table is not present
Date Wed, 13 Feb 2008 01:37:09 GMT

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

View raw message