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 2011/05/24 07:19:21 UTC

svn commit: r1126872 - in /hbase/trunk: ./ conf/ src/main/java/org/apache/hadoop/hbase/executor/ src/main/java/org/apache/hadoop/hbase/master/ src/main/java/org/apache/hadoop/hbase/util/ src/main/java/org/apache/hadoop/hbase/zookeeper/

Author: stack
Date: Tue May 24 05:19:20 2011
New Revision: 1126872

URL: http://svn.apache.org/viewvc?rev=1126872&view=rev
Log:
HBASE-3195 Binary row keys in hbck and other miscellaneous binary key display issues

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/conf/hbase-env.sh
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/RegionTransitionData.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Tue May 24 05:19:20 2011
@@ -283,6 +283,8 @@ Release 0.90.4 - Unreleased
    HBASE-3905  HBaseAdmin.createTableAsync() should check for invalid split
                keys (Ted Yu)
    HBASE-3908  TableSplit not implementing "hashCode" problem (Daniel Iancu)
+   HBASE-3915  Binary row keys in hbck and other miscellaneous binary key
+               display issues
 
   IMPROVEMENT
    HBASE-3882  hbase-config.sh needs to be updated so it can auto-detects the

Modified: hbase/trunk/conf/hbase-env.sh
URL: http://svn.apache.org/viewvc/hbase/trunk/conf/hbase-env.sh?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/conf/hbase-env.sh (original)
+++ hbase/trunk/conf/hbase-env.sh Tue May 24 05:19:20 2011
@@ -36,8 +36,8 @@
 # see http://wiki.apache.org/hadoop/PerformanceTuning
 export HBASE_OPTS="-ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
 
-# Uncomment below to enable java garbage collection logging.
-# export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$HBASE_HOME/logs/gc-hbase.log" 
+# Uncomment below to enable java garbage collection logging in the .out file.
+# export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps" 
 
 # Uncomment and adjust to enable JMX exporting
 # See jmxremote.password and jmxremote.access in $JRE_HOME/lib/management to configure remote password access.

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/RegionTransitionData.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/RegionTransitionData.java?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/RegionTransitionData.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/executor/RegionTransitionData.java Tue May 24 05:19:20 2011
@@ -243,7 +243,7 @@ public class RegionTransitionData implem
 
   @Override
   public String toString() {
-    return "region=" + Bytes.toString(regionName) + ", origin=" + this.origin +
+    return "region=" + Bytes.toStringBinary(regionName) + ", origin=" + this.origin +
       ", state=" + eventType;
   }
-}
\ No newline at end of file
+}

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java Tue May 24 05:19:20 2011
@@ -1943,7 +1943,11 @@ public class AssignmentManager extends Z
               case OPEN:
                 LOG.error("Region has been OPEN for too long, " +
                 "we don't know where region was opened so can't do anything");
+                synchronized(regionState) {
+                  regionState.updateTimestampToNow();
+                }
                 break;
+
               case PENDING_CLOSE:
                 LOG.info("Region has been PENDING_CLOSE for too " +
                     "long, running forced unassign again on region=" +

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Tue May 24 05:19:20 2011
@@ -51,7 +51,6 @@ import org.apache.hadoop.hbase.UnknownRe
 import org.apache.hadoop.hbase.catalog.CatalogTracker;
 import org.apache.hadoop.hbase.catalog.MetaEditor;
 import org.apache.hadoop.hbase.catalog.MetaReader;
-import org.apache.hadoop.hbase.client.HConnectionManager;
 import org.apache.hadoop.hbase.client.MetaScanner;
 import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor;
 import org.apache.hadoop.hbase.client.Result;
@@ -915,13 +914,17 @@ implements HMasterInterface, HMasterRegi
       region.getLog().closeAndDelete();
     }
 
-    // 5. Trigger immediate assignment of the regions in round-robin fashion
-    List<ServerName> servers = serverManager.getOnlineServersList();
-    try {
-      this.assignmentManager.assignUserRegions(Arrays.asList(newRegions), servers);
-    } catch (InterruptedException ie) {
-      LOG.error("Caught " + ie + " during round-robin assignment");
-      throw new IOException(ie);
+    if (newRegions.length == 1) {
+      this.assignmentManager.assign(newRegions[0], true);
+    } else {
+      // 5. Trigger immediate assignment of the regions in round-robin fashion
+      List<ServerName> servers = serverManager.getOnlineServersList();
+      try {
+        this.assignmentManager.assignUserRegions(Arrays.asList(newRegions), servers);
+      } catch (InterruptedException ie) {
+        LOG.error("Caught " + ie + " during round-robin assignment");
+        throw new IOException(ie);
+      }
     }
 
     // 6. If sync, wait for assignment of regions

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java Tue May 24 05:19:20 2011
@@ -422,12 +422,8 @@ public class HBaseFsck {
     if (inMeta && inHdfs && isDeployed && deploymentMatchesMeta && shouldBeDeployed) {
       return;
     } else if (inMeta && !isDeployed && splitParent) {
-      // Offline regions shouldn't cause complaints
-      LOG.debug("Region " + descriptiveName + " offline, split, parent, ignoring.");
       return;
     } else if (inMeta && !shouldBeDeployed && !isDeployed) {
-      // offline regions shouldn't cause complaints
-      LOG.debug("Region " + descriptiveName + " offline, ignoring.");
       return;
     } else if (recentlyModified) {
       LOG.warn("Region " + descriptiveName + " was recently modified -- skipping");
@@ -444,7 +440,7 @@ public class HBaseFsck {
     } else if (!inMeta && inHdfs && !isDeployed) {
       errors.reportError(ERROR_CODE.NOT_IN_META_OR_DEPLOYED, "Region "
           + descriptiveName + " on HDFS, but not listed in META " +
-          "or deployed on any region server.");
+          "or deployed on any region server");
     } else if (!inMeta && inHdfs && isDeployed) {
       errors.reportError(ERROR_CODE.NOT_IN_META, "Region " + descriptiveName
           + " not in META, but deployed on " + Joiner.on(", ").join(hbi.deployedOn));
@@ -584,6 +580,7 @@ public class HBaseFsck {
     public boolean checkRegionChain() {
       Collections.sort(regions);
       HbckInfo last = null;
+      int originalErrorsCount = errors.getErrorList().size();
 
       for (HbckInfo r : regions) {
         if (last == null) {
@@ -607,8 +604,8 @@ public class HBaseFsck {
               errors.reportError(ERROR_CODE.REGION_CYCLE,
                   String.format("The endkey for this region comes before the "
                       + "startkey, startkey=%s, endkey=%s",
-                      Bytes.toString(r.metaEntry.getStartKey()),
-                      Bytes.toString(r.metaEntry.getEndKey())),
+                      Bytes.toStringBinary(r.metaEntry.getStartKey()),
+                      Bytes.toStringBinary(r.metaEntry.getEndKey())),
                   this, r, last);
             }
           }
@@ -617,7 +614,7 @@ public class HBaseFsck {
           if (Bytes.equals(r.metaEntry.getStartKey(), last.metaEntry.getStartKey())) {
             errors.reportError(ERROR_CODE.DUPE_STARTKEYS,
                 "Two regions have the same startkey: "
-                    + Bytes.toString(r.metaEntry.getStartKey()),
+                    + Bytes.toStringBinary(r.metaEntry.getStartKey()),
                 this, r, last);
           } else {
             // Check that the startkey is the same as the previous end key
@@ -641,7 +638,7 @@ public class HBaseFsck {
         last = r;
       }
 
-      return errors.getErrorList().size() == 0;
+      return errors.getErrorList().size() == originalErrorsCount;
     }
 
   }

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java?rev=1126872&r1=1126871&r2=1126872&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java Tue May 24 05:19:20 2011
@@ -1021,6 +1021,6 @@ public class ZKUtil {
       (data == null? "null": data.length == 0? "empty": (
           znode.startsWith(zkw.assignmentZNode) ?
               RegionTransitionData.fromBytes(data).toString()
-              : StringUtils.abbreviate(Bytes.toString(data), 32)))));
+              : StringUtils.abbreviate(Bytes.toStringBinary(data), 32)))));
   }
 }