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 2008/07/21 23:54:45 UTC

svn commit: r678581 - in /hadoop/hbase/trunk: CHANGES.txt src/java/org/apache/hadoop/hbase/master/BaseScanner.java src/java/org/apache/hadoop/hbase/master/ServerManager.java

Author: stack
Date: Mon Jul 21 14:54:44 2008
New Revision: 678581

URL: http://svn.apache.org/viewvc?rev=678581&view=rev
Log:
HBASE-743   bin/hbase migrate upgrade fails when redo logs exists

Modified:
    hadoop/hbase/trunk/CHANGES.txt
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/BaseScanner.java
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/ServerManager.java

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=678581&r1=678580&r2=678581&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Mon Jul 21 14:54:44 2008
@@ -197,6 +197,7 @@
    HBASE-424   Should be able to enable/disable .META. table
    HBASE-679   Regionserver addresses are still not right in the new tables page
    HBASE-758   Throwing IOE read-only when should be throwing NSRE
+   HBASE-743   bin/hbase migrate upgrade fails when redo logs exists
    
   IMPROVEMENTS
    HBASE-559   MR example job to count table rows

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/BaseScanner.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/BaseScanner.java?rev=678581&r1=678580&r2=678581&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/BaseScanner.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/BaseScanner.java Mon Jul 21 14:54:44 2008
@@ -172,7 +172,7 @@
         String serverName = Writables.cellToString(values.get(COL_SERVER));
         long startCode = Writables.cellToLong(values.get(COL_STARTCODE));
         if (LOG.isDebugEnabled()) {
-          LOG.debug(Thread.currentThread().getName() + info.toString() +
+          LOG.debug(Thread.currentThread().getName() + " " + info.toString() +
             "}, SERVER => '" + serverName + "', STARTCODE => " + startCode);
         }
 
@@ -261,25 +261,17 @@
     RowResult rowContent)
   throws IOException {
     boolean result = false;
-
     boolean hasReferencesA = hasReferences(metaRegionName, srvr,
         parent.getRegionName(), rowContent, COL_SPLITA);
     boolean hasReferencesB = hasReferences(metaRegionName, srvr,
         parent.getRegionName(), rowContent, COL_SPLITB);
-    
     if (!hasReferencesA && !hasReferencesB) {
       LOG.info("Deleting region " + parent.getRegionNameAsString() +
         " because daughter splits no longer hold references");
       HRegion.deleteRegion(master.fs, master.rootdir, parent);
-      
       HRegion.removeRegionFromMETA(srvr, metaRegionName,
         parent.getRegionName());
       result = true;
-    } else if (LOG.isDebugEnabled()) {
-      // If debug, note we checked and current state of daughters.
-      LOG.debug("Checked " + parent.getRegionNameAsString() +
-        " for references: splitA: " + hasReferencesA + ", splitB: "+
-        hasReferencesB);
     }
     return result;
   }

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/ServerManager.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/ServerManager.java?rev=678581&r1=678580&r2=678581&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/ServerManager.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/ServerManager.java Mon Jul 21 14:54:44 2008
@@ -73,6 +73,10 @@
   
   private HMaster master;
   private final Leases serverLeases;
+  
+  // Last time we logged average load.
+  private volatile long lastLogOfAverageLaod = 0;
+  private final long loggingPeriodForAverageLoad;
 
   /**
    * @param master
@@ -82,6 +86,8 @@
     serverLeases = new Leases(master.leaseTimeout, 
       master.getConfiguration().getInt("hbase.master.lease.thread.wakefrequency",
         15 * 1000));
+    this.loggingPeriodForAverageLoad = master.getConfiguration().
+      getLong("hbase.master.avgload.logging.period", 15000);
   }
   
   /**
@@ -557,18 +563,19 @@
     int totalLoad = 0;
     int numServers = 0;
     double averageLoad = 0.0;
-    
     synchronized (serversToLoad) {
       numServers = serversToLoad.size();
-      
       for (HServerLoad load : serversToLoad.values()) {
         totalLoad += load.getNumberOfRegions();
       }
-      
       averageLoad = Math.ceil((double)totalLoad / (double)numServers);
-      if (LOG.isDebugEnabled()) {
+      // Only log on a period, not on every invocation of this method.
+      long now = System.currentTimeMillis();
+      if (LOG.isDebugEnabled() &&
+          (now > (this.loggingPeriodForAverageLoad + this.lastLogOfAverageLaod))) {
         LOG.debug("Total Load: " + totalLoad + ", Num Servers: " + numServers 
           + ", Avg Load: " + averageLoad);
+        this.lastLogOfAverageLaod = now;
       }
     }
     return averageLoad;