You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2010/10/21 22:35:58 UTC

svn commit: r1026131 - in /hbase/trunk: ./ src/main/java/org/apache/hadoop/hbase/ src/main/java/org/apache/hadoop/hbase/master/ src/main/java/org/apache/hadoop/hbase/rest/model/ src/main/java/org/apache/hadoop/hbase/util/ src/test/java/org/apache/hadoo...

Author: stack
Date: Thu Oct 21 20:35:57 2010
New Revision: 1026131

URL: http://svn.apache.org/viewvc?rev=1026131&view=rev
Log:
HBASE-2658 REST (stargate) TableRegionModel Regions need to be updated to work w/ new region naming convention from HBASE-2531

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/model/TableRegionModel.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java
    hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java
    hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/model/TestTableRegionModel.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1026131&r1=1026130&r2=1026131&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Thu Oct 21 20:35:57 2010
@@ -599,6 +599,8 @@ Release 0.21.0 - Unreleased
    HBASE-2985  HRegionServer.multi() no longer calls HRegion.put(List) when 
                possible
    HBASE-3031  CopyTable MR job named "Copy Table" in Driver
+   HBASE-2658  REST (stargate) TableRegionModel Regions need to be updated to
+               work w/ new region naming convention from HBASE-2531
 
 
   IMPROVEMENTS

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java?rev=1026131&r1=1026130&r2=1026131&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java Thu Oct 21 20:35:57 2010
@@ -261,7 +261,16 @@ public class HRegionInfo extends Version
     this.encodedName = other.getEncodedName();
   }
 
-  private static byte [] createRegionName(final byte [] tableName,
+  /**
+   * Make a region name of passed parameters.
+   * @param tableName
+   * @param startKey Can be null
+   * @param id Region id (Usually timestamp from when region was created).
+   * @param newFormat should we create the region name in the new format
+   *                  (such that it contains its encoded name?).
+   * @return Region name made of passed tableName, startKey and id
+   */
+  public static byte [] createRegionName(final byte [] tableName,
       final byte [] startKey, final long regionid, boolean newFormat) {
     return createRegionName(tableName, startKey, Long.toString(regionid), newFormat);
   }
@@ -270,7 +279,7 @@ public class HRegionInfo extends Version
    * Make a region name of passed parameters.
    * @param tableName
    * @param startKey Can be null
-   * @param id Region id.
+   * @param id Region id (Usually timestamp from when region was created).
    * @param newFormat should we create the region name in the new format
    *                  (such that it contains its encoded name?).
    * @return Region name made of passed tableName, startKey and id
@@ -279,11 +288,12 @@ public class HRegionInfo extends Version
       final byte [] startKey, final String id, boolean newFormat) {
     return createRegionName(tableName, startKey, Bytes.toBytes(id), newFormat);
   }
+
   /**
    * Make a region name of passed parameters.
    * @param tableName
    * @param startKey Can be null
-   * @param id Region id
+   * @param id Region id (Usually timestamp from when region was created).
    * @param newFormat should we create the region name in the new format
    *                  (such that it contains its encoded name?).
    * @return Region name made of passed tableName, startKey and id

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java?rev=1026131&r1=1026130&r2=1026131&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java Thu Oct 21 20:35:57 2010
@@ -255,6 +255,15 @@ public class HTableDescriptor implements
   }
 
   /**
+   * @param n Table name.
+   * @return True if a catalog table, -ROOT- or .META.
+   */
+  public static boolean isMetaTable(final byte [] n) {
+    return Bytes.equals(n, HConstants.ROOT_TABLE_NAME) ||
+      Bytes.equals(n, HConstants.META_TABLE_NAME);
+  }
+
+  /**
    * Check passed buffer is legal user-space table name.
    * @param b Table name.
    * @return Returns passed <code>b</code> param

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java?rev=1026131&r1=1026130&r2=1026131&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java Thu Oct 21 20:35:57 2010
@@ -41,9 +41,9 @@ import org.apache.hadoop.hbase.PleaseHol
 import org.apache.hadoop.hbase.Server;
 import org.apache.hadoop.hbase.Stoppable;
 import org.apache.hadoop.hbase.YouAreDeadException;
-import org.apache.hadoop.hbase.ZooKeeperConnectionException;
 import org.apache.hadoop.hbase.client.HConnection;
 import org.apache.hadoop.hbase.client.HConnectionManager;
+import org.apache.hadoop.hbase.client.RetriesExhaustedException;
 import org.apache.hadoop.hbase.ipc.HRegionInterface;
 import org.apache.hadoop.hbase.master.handler.ServerShutdownHandler;
 import org.apache.hadoop.hbase.master.metrics.MasterMetrics;

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/model/TableRegionModel.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/model/TableRegionModel.java?rev=1026131&r1=1026130&r2=1026131&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/model/TableRegionModel.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/model/TableRegionModel.java Thu Oct 21 20:35:57 2010
@@ -25,6 +25,8 @@ import java.io.Serializable;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.hadoop.hbase.HRegionInfo;
+import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.util.Bytes;
 
 /**
@@ -91,13 +93,11 @@ public class TableRegionModel implements
    */
   @XmlAttribute
   public String getName() {
-    StringBuilder sb = new StringBuilder();
-    sb.append(table);
-    sb.append(',');
-    sb.append(Bytes.toString(startKey));
-    sb.append(',');
-    sb.append(id);
-    return sb.toString();
+    byte [] tableNameAsBytes = Bytes.toBytes(this.table);
+    byte [] nameAsBytes = HRegionInfo.createRegionName(tableNameAsBytes,
+      this.startKey, this.id,
+      !HTableDescriptor.isMetaTable(tableNameAsBytes));
+    return Bytes.toString(nameAsBytes);
   }
 
   /**
@@ -137,9 +137,11 @@ public class TableRegionModel implements
    */
   public void setName(String name) {
     String split[] = name.split(",");
-    table = split[0];
-    startKey = Bytes.toBytes(split[1]);
-    id = Long.valueOf(split[2]);
+    this.table = split[0];
+    this.startKey = Bytes.toBytes(split[1]);
+    String tail = split[2];
+    split = tail.split("\\.");
+    id = Long.valueOf(split[0]);
   }
 
   /**

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java?rev=1026131&r1=1026130&r2=1026131&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java Thu Oct 21 20:35:57 2010
@@ -475,13 +475,4 @@ public class MetaUtils {
       }});
     return result;
   }
-
-  /**
-   * @param n Table name.
-   * @return True if a catalog table, -ROOT- or .META.
-   */
-  public static boolean isMetaTableName(final byte [] n) {
-    return Bytes.equals(n, HConstants.ROOT_TABLE_NAME) ||
-      Bytes.equals(n, HConstants.META_TABLE_NAME);
-  }
 }

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java?rev=1026131&r1=1026130&r2=1026131&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestTableResource.java Thu Oct 21 20:35:57 2010
@@ -170,7 +170,7 @@ public class TestTableResource extends H
         HRegionInfo hri = e.getKey();
         String hriRegionName = hri.getRegionNameAsString();
         String regionName = region.getName();
-        if (hriRegionName.startsWith(regionName)) {
+        if (hriRegionName.equals(regionName)) {
           found = true;
           byte[] startKey = hri.getStartKey();
           byte[] endKey = hri.getEndKey();

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/model/TestTableRegionModel.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/model/TestTableRegionModel.java?rev=1026131&r1=1026130&r2=1026131&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/model/TestTableRegionModel.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/model/TestTableRegionModel.java Thu Oct 21 20:35:57 2010
@@ -26,6 +26,8 @@ import java.io.StringWriter;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 
+import org.apache.hadoop.hbase.HRegionInfo;
+import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.util.Bytes;
 
 import junit.framework.TestCase;
@@ -75,14 +77,30 @@ public class TestTableRegionModel extend
     assertEquals(model.getId(), ID);
     assertEquals(model.getLocation(), LOCATION);
     assertEquals(model.getName(), 
-      TABLE + "," + Bytes.toString(START_KEY) + "," + Long.toString(ID));
+      TABLE + "," + Bytes.toString(START_KEY) + "," + Long.toString(ID) +
+      ".ad9860f031282c46ed431d7af8f94aca.");
   }
 
   public void testBuildModel() throws Exception {
     checkModel(buildTestModel());
   }
 
+  public void testGetName() {
+    TableRegionModel model = buildTestModel();
+    String modelName = model.getName();
+    HRegionInfo hri = new HRegionInfo(new HTableDescriptor(TABLE),
+      START_KEY, END_KEY, false, ID);
+    assertEquals(modelName, hri.getRegionNameAsString());
+  }
+
+  public void testSetName() {
+    TableRegionModel model = buildTestModel();
+    String name = model.getName();
+    model.setName(name);
+    assertEquals(name, model.getName());
+  }
+
   public void testFromXML() throws Exception {
     checkModel(fromXML(AS_XML));
   }
-}
+}
\ No newline at end of file