hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From te...@apache.org
Subject svn commit: r1304611 - in /hbase/branches/0.90: CHANGES.txt src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java
Date Fri, 23 Mar 2012 21:31:42 GMT
Author: tedyu
Date: Fri Mar 23 21:31:42 2012
New Revision: 1304611

URL: http://svn.apache.org/viewvc?rev=1304611&view=rev
Log:
HBASE-5466  Opening a table also opens the metatable and never closes it (Ashley Taylor)

Modified:
    hbase/branches/0.90/CHANGES.txt
    hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java

Modified: hbase/branches/0.90/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/CHANGES.txt?rev=1304611&r1=1304610&r2=1304611&view=diff
==============================================================================
--- hbase/branches/0.90/CHANGES.txt (original)
+++ hbase/branches/0.90/CHANGES.txt Fri Mar 23 21:31:42 2012
@@ -7,6 +7,7 @@ Release 0.90.7 - Unreleased
                same region with Src and Destination as same RS. (Ram)
    HBASE-5593  Reverse DNS resolution in regionServerStartup() does not strip trailing dot
                (David S. Wang)
+   HBASE-5466  Opening a table also opens the metatable and never closes it (Ashley Taylor)
 
   IMPROVEMENT
    HBASE-5588 Deprecate/remove AssignmentManager#clearRegionFromTransition

Modified: hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java?rev=1304611&r1=1304610&r2=1304611&view=diff
==============================================================================
--- hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java (original)
+++ hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java Fri
Mar 23 21:31:42 2012
@@ -142,25 +142,31 @@ public class MetaScanner {
       byte[] searchRow =
         HRegionInfo.createRegionName(tableName, row, HConstants.NINES,
           false);
-
-      HTable metaTable = new HTable(configuration, HConstants.META_TABLE_NAME);
-      Result startRowResult = metaTable.getRowOrBefore(searchRow,
-          HConstants.CATALOG_FAMILY);
-      if (startRowResult == null) {
-        throw new TableNotFoundException("Cannot find row in .META. for table: "
-            + Bytes.toString(tableName) + ", row=" + Bytes.toStringBinary(searchRow));
-      }
-      byte[] value = startRowResult.getValue(HConstants.CATALOG_FAMILY,
-          HConstants.REGIONINFO_QUALIFIER);
-      if (value == null || value.length == 0) {
-        throw new IOException("HRegionInfo was null or empty in Meta for " +
-          Bytes.toString(tableName) + ", row=" + Bytes.toStringBinary(searchRow));
+      HTable metaTable = null;
+      try {
+        metaTable = new HTable(configuration, HConstants.META_TABLE_NAME);
+        Result startRowResult = metaTable.getRowOrBefore(searchRow,
+            HConstants.CATALOG_FAMILY);
+        if (startRowResult == null) {
+          throw new TableNotFoundException("Cannot find row in .META. for table: "
+              + Bytes.toString(tableName) + ", row=" + Bytes.toStringBinary(searchRow));
+        }
+        byte[] value = startRowResult.getValue(HConstants.CATALOG_FAMILY,
+            HConstants.REGIONINFO_QUALIFIER);
+        if (value == null || value.length == 0) {
+          throw new IOException("HRegionInfo was null or empty in Meta for " +
+            Bytes.toString(tableName) + ", row=" + Bytes.toStringBinary(searchRow));
+        }
+        HRegionInfo regionInfo = Writables.getHRegionInfo(value);
+  
+        byte[] rowBefore = regionInfo.getStartKey();
+        startRow = HRegionInfo.createRegionName(tableName, rowBefore,
+            HConstants.ZEROES, false);
+      } finally {
+        if (metaTable != null) {
+          metaTable.close();
+        }
       }
-      HRegionInfo regionInfo = Writables.getHRegionInfo(value);
-
-      byte[] rowBefore = regionInfo.getStartKey();
-      startRow = HRegionInfo.createRegionName(tableName, rowBefore,
-          HConstants.ZEROES, false);
     } else if (tableName == null || tableName.length == 0) {
       // Full META scan
       startRow = HConstants.EMPTY_START_ROW;



Mime
View raw message