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(


Reply via email to