You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by to...@apache.org on 2011/08/30 23:51:22 UTC

svn commit: r1163418 - in /hbase/trunk: CHANGES.txt src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java src/main/java/org/apache/hadoop/hbase/master/handler/OpenedRegionHandler.java

Author: todd
Date: Tue Aug 30 21:51:22 2011
New Revision: 1163418

URL: http://svn.apache.org/viewvc?rev=1163418&view=rev
Log:
HBASE-4276  AssignmentManager debug logs should be at INFO level for META/ROOT regions.

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/OpenedRegionHandler.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1163418&r1=1163417&r2=1163418&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Tue Aug 30 21:51:22 2011
@@ -518,6 +518,8 @@ Release 0.90.5 - Unreleased
    HBASE-4222  Make HLog more resilient to write pipeline failures
    HBASE-4293  More verbose logging in ServerShutdownHandler for meta/root
                cases (todd)
+   HBASE-4276  AssignmentManager debug logs should be at INFO level for
+               META/ROOT regions (todd)
 
 Release 0.90.4 - August 10, 2011
 

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=1163418&r1=1163417&r2=1163418&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 Aug 30 21:51:22 2011
@@ -324,6 +324,7 @@ public class AssignmentManager extends Z
     boolean intransistion =
       processRegionInTransition(hri.getEncodedName(), hri, null);
     if (!intransistion) return intransistion;
+    debugLog(hri, "Waiting on " + HRegionInfo.prettyPrint(hri.getEncodedName()));
     synchronized(this.regionsInTransition) {
       while (!this.master.isStopped() &&
           this.regionsInTransition.containsKey(hri.getEncodedName())) {
@@ -444,7 +445,7 @@ public class AssignmentManager extends Z
   throws KeeperException {
     // If was on dead server, its closed now.  Force to OFFLINE and then
     // handle it like a close; this will get it reassigned if appropriate
-    LOG.debug("RIT " + hri.getEncodedName() + " in state=" +
+    debugLog(hri, "RIT " + hri.getEncodedName() + " in state=" +
       oldData.getEventType() + " was on deadserver; forcing offline");
     ZKAssign.createOrForceNodeOffline(this.watcher, hri,
       this.master.getServerName());
@@ -1237,7 +1238,8 @@ public class AssignmentManager extends Z
       RegionPlan plan = getRegionPlan(state, forceNewPlan);
       if (plan == null) return; // Should get reassigned later when RIT times out.
       try {
-        LOG.debug("Assigning region " + state.getRegion().getRegionNameAsString() +
+        debugLog(state.getRegion(),
+          "Assigning region " + state.getRegion().getRegionNameAsString() +
           " to " + plan.getDestination().toString());
         // Transition RegionState to PENDING_OPEN
         state.update(RegionState.State.PENDING_OPEN, System.currentTimeMillis(),
@@ -1290,6 +1292,14 @@ public class AssignmentManager extends Z
     }
   }
 
+  private void debugLog(HRegionInfo region, String string) {
+    if (region.isMetaTable() || region.isRootRegion()) {
+      LOG.info(string);
+    } else {
+      LOG.debug(string);
+    }
+  }
+
   /**
    * Set region as OFFLINED up in zookeeper
    * @param state
@@ -1384,7 +1394,7 @@ public class AssignmentManager extends Z
       }
     }
     if (newPlan) {
-      LOG.debug("No previous transition plan was found (or we are ignoring " +
+      debugLog(state.getRegion(), "No previous transition plan was found (or we are ignoring " +
         "an existing plan) for " + state.getRegion().getRegionNameAsString() +
         " so generated a random one; " + randomPlan + "; " +
         serverManager.countOfRegionServers() +
@@ -1392,7 +1402,7 @@ public class AssignmentManager extends Z
         ", exclude=" + serverToExclude + ") available servers");
         return randomPlan;
       }
-      LOG.debug("Using pre-existing plan for region " +
+      debugLog(state.getRegion(), "Using pre-existing plan for region " +
         state.getRegion().getRegionNameAsString() + "; plan=" + existingPlan);
       return existingPlan;
   }
@@ -1421,12 +1431,12 @@ public class AssignmentManager extends Z
    * @param force if region should be closed even if already closing
    */
   public void unassign(HRegionInfo region, boolean force) {
-    LOG.debug("Starting unassignment of region " +
+    debugLog(region, "Starting unassignment of region " +
       region.getRegionNameAsString() + " (offlining)");
     synchronized (this.regions) {
       // Check if this region is currently assigned
       if (!regions.containsKey(region)) {
-        LOG.debug("Attempted to unassign region " +
+        debugLog(region, "Attempted to unassign region " +
           region.getRegionNameAsString() + " but it is not " +
           "currently assigned anywhere");
         return;
@@ -1452,12 +1462,12 @@ public class AssignmentManager extends Z
       } else if (force && state.isPendingClose()) {
         // JD 05/25/11
         // in my experience this is useless, when this happens it just spins
-        LOG.debug("Attempting to unassign region " +
+        debugLog(region, "Attempting to unassign region " +
             region.getRegionNameAsString() + " which is already pending close "
             + "but forcing an additional close");
         state.update(RegionState.State.PENDING_CLOSE);
       } else {
-        LOG.debug("Attempting to unassign region " +
+        debugLog(region, "Attempting to unassign region " +
           region.getRegionNameAsString() + " but it is " +
           "already in transition (" + state.getState() + ")");
         return;
@@ -1472,12 +1482,12 @@ public class AssignmentManager extends Z
       // TODO: We should consider making this look more like it does for the
       // region open where we catch all throwables and never abort
       if (serverManager.sendRegionClose(server, state.getRegion())) {
-        LOG.debug("Sent CLOSE to " + server + " for region " +
+        debugLog(region, "Sent CLOSE to " + server + " for region " +
           region.getRegionNameAsString());
         return;
       }
       // This never happens. Currently regionserver close always return true.
-      LOG.debug("Server " + server + " region CLOSE RPC returned false for " +
+      LOG.warn("Server " + server + " region CLOSE RPC returned false for " +
         region.getEncodedName());
     } catch (NotServingRegionException nsre) {
       LOG.info("Server " + server + " returned " + nsre + " for " +

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/OpenedRegionHandler.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/OpenedRegionHandler.java?rev=1163418&r1=1163417&r2=1163418&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/OpenedRegionHandler.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/OpenedRegionHandler.java Tue Aug 30 21:51:22 2011
@@ -90,7 +90,7 @@ public class OpenedRegionHandler extends
   
   @Override
   public void process() {
-    LOG.debug("Handling OPENED event for " + this.regionInfo.getEncodedName() +
+    debugLog(regionInfo, "Handling OPENED event for " + this.regionInfo.getEncodedName() +
       "; deleting unassigned node");
     // Remove region from in-memory transition and unassigned node from ZK
     try {
@@ -110,12 +110,21 @@ public class OpenedRegionHandler extends
     }
     if (this.assignmentManager.getZKTable().isDisablingOrDisabledTable(
         regionInfo.getTableNameAsString())) {
-      LOG.debug("Opened region " + regionInfo.getRegionNameAsString() + " but "
+      debugLog(regionInfo,
+          "Opened region " + regionInfo.getRegionNameAsString() + " but "
           + "this table is disabled, triggering close of region");
       assignmentManager.unassign(regionInfo);
     } else {
-      LOG.debug("Opened region " + regionInfo.getRegionNameAsString() +
+      debugLog(regionInfo, "Opened region " + regionInfo.getRegionNameAsString() +
           " on " + this.sn.toString());
     }
   }
+  
+  private void debugLog(HRegionInfo region, String string) {
+    if (region.isMetaTable() || region.isRootRegion()) {
+      LOG.info(string);
+    } else {
+      LOG.debug(string);
+    }
+  }
 }