Author: bryanduxbury Date: Wed Feb 13 12:31:17 2008 New Revision: 627585 URL: http://svn.apache.org/viewvc?rev=627585&view=rev Log: HBASE-444 hbase is very slow at determining table is not present
Modified: hadoop/hbase/trunk/CHANGES.txt hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HConnectionManager.java Modified: hadoop/hbase/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=627585&r1=627584&r2=627585&view=diff ============================================================================== --- hadoop/hbase/trunk/CHANGES.txt (original) +++ hadoop/hbase/trunk/CHANGES.txt Wed Feb 13 12:31:17 2008 @@ -50,7 +50,8 @@ collected HBASE-407 Keep HRegionLocation information in LRU structure (Bryan Duxbury) - + HBASE-444 hbase is very slow at determining table is not present + (Bryan Duxbury) Branch 0.1 Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HConnectionManager.java URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HConnectionManager.java?rev=627585&r1=627584&r2=627585&view=diff ============================================================================== --- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HConnectionManager.java (original) +++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HConnectionManager.java Wed Feb 13 12:31:17 2008 @@ -421,17 +421,17 @@ HRegionInfo regionInfo = (HRegionInfo) Writables.getWritable( results.get(COL_REGIONINFO), new HRegionInfo()); - if (regionInfo.isOffline()) { - throw new IllegalStateException("region offline: " + - regionInfo.getRegionName()); - } - // possible we got a region of a different table... if (!regionInfo.getTableDesc().getName().equals(tableName)) { throw new TableNotFoundException( "Table '" + tableName + "' was not found."); } + if (regionInfo.isOffline()) { + throw new IllegalStateException("region offline: " + + regionInfo.getRegionName()); + } + String serverAddress = Writables.bytesToString(results.get(COL_SERVER)); @@ -457,6 +457,11 @@ } else { throw e; } + } catch (TableNotFoundException e) { + // if we got this error, probably means the table just plain doesn't + // exist. rethrow the error immediately. this should always be coming + // from the HTable constructor. + throw e; } catch (IOException e) { if (e instanceof RemoteException) { e = RemoteExceptionHandler.decodeRemoteException(