You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Cristian Ivascu (JIRA)" <ji...@apache.org> on 2010/02/04 23:09:28 UTC
[jira] Updated: (HBASE-2184) Calling HTable.getTableDescriptor().*
on a full cluster takes a long time
[ https://issues.apache.org/jira/browse/HBASE-2184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Cristian Ivascu updated HBASE-2184:
-----------------------------------
Attachment: HBASE_2184_0.21.0.patch
Attached proposed fix - the HConnectionManager.getHTableDescriptor(tableName) now calls MetaScanner.scan(*,*,tableName).
Observed results: time dropped from 5 seconds to 0.112 sec for a describe 'tableName' in the shell on the busy cluster
> Calling HTable.getTableDescriptor().* on a full cluster takes a long time
> -------------------------------------------------------------------------
>
> Key: HBASE-2184
> URL: https://issues.apache.org/jira/browse/HBASE-2184
> Project: Hadoop HBase
> Issue Type: Bug
> Affects Versions: 0.21.0
> Environment: CentOS 5.4, x86_64
> MacOSX 10.6
> Reporter: Cristian Ivascu
> Attachments: HBASE_2184_0.21.0.patch
>
>
> On a cluster with many tables, and consequently many regions, calling the getTableDescriptor() methods on a HTable takes a very long time, depending on the number of regions. For comparison, on a cluster with 7000 regions, getting a table descriptor ranged between 4 and 36 seconds, even when the queried table was empty.
> The problem seems to lie in the HConnectionManager.getHTableDescriptor() method, which calls MetaScanner.scan() with an empty START_ROW. This means that even if we need the descriptor for a single region table, we still need to wait until the entire META is scanned. There is also a constructor for MetaScanner.scan() which takes the table name to lookup as a param.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.