Author: stack
Date: Fri Aug 26 18:27:02 2011
New Revision: 1162198

URL: http://svn.apache.org/viewvc?rev=1162198&view=rev
Log:
HBASE-4215 RS requestsPerSecond counter seems to be off

Modified:
    hbase/trunk/CHANGES.txt
    
hbase/trunk/src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/HServerLoad.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java

Modified: hbase/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1162198&r1=1162197&r2=1162198&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Fri Aug 26 18:27:02 2011
@@ -484,6 +484,7 @@ Release 0.90.5 - Unreleased
   IMPROVEMENT
    HBASE-4205  Enhance HTable javadoc (Eric Charles)
    HBASE-4222  Make HLog more resilient to write pipeline failures
+   HBASE-4315  RS requestsPerSecond counter seems to be off (subramanian 
raghunathan)
 
 Release 0.90.4 - August 10, 2011
 

Modified: 
hbase/trunk/src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon?rev=1162198&r1=1162197&r2=1162198&view=diff
==============================================================================
--- 
hbase/trunk/src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon 
(original)
+++ 
hbase/trunk/src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon 
Fri Aug 26 18:27:02 2011
@@ -198,7 +198,7 @@ org.apache.hadoop.hbase.HTableDescriptor
 <%java>
     }
 </%java>
-<tr><th>Total: </th><td>servers: <% servers.size() 
%></td><td>&nbsp;</td><td>requests=<% totalRequests %>, regions=<% totalRegions 
%></td></tr>
+<tr><th>Total: </th><td>servers: <% servers.size() 
%></td><td>&nbsp;</td><td>requestsPerSecond=<% totalRequests %>, 
numberOfOnlineRegions=<% totalRegions %></td></tr>
 </table>
 
 <p>Load is requests per second and count of regions loaded</p>

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/HServerLoad.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/HServerLoad.java?rev=1162198&r1=1162197&r2=1162198&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/HServerLoad.java 
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/HServerLoad.java Fri Aug 
26 18:27:02 2011
@@ -40,11 +40,15 @@ implements WritableComparable<HServerLoa
   // Empty load instance.
   public static final HServerLoad EMPTY_HSERVERLOAD = new HServerLoad();
 
-  /** Number of requests since last report
+  /** Number of requests per second since last report.
    */
   // TODO: Instead build this up out of region counters.
   private int numberOfRequests = 0;
 
+  /** Total Number of requests from the start of the region server.
+   */
+  private int totalNumberOfRequests = 0;
+  
   /** the amount of used heap, in MB */
   private int usedHeapMB = 0;
 
@@ -367,12 +371,14 @@ implements WritableComparable<HServerLoa
    * @param usedHeapMB
    * @param maxHeapMB
    */
-  public HServerLoad(final int numberOfRequests, final int usedHeapMB,
-      final int maxHeapMB, final Map<byte[], RegionLoad> regionLoad) {
+  public HServerLoad(final int totalNumberOfRequests,
+      final int numberOfRequests, final int usedHeapMB, final int maxHeapMB,
+      final Map<byte[], RegionLoad> regionLoad) {
     this.numberOfRequests = numberOfRequests;
     this.usedHeapMB = usedHeapMB;
     this.maxHeapMB = maxHeapMB;
     this.regionLoad = regionLoad;
+    this.totalNumberOfRequests = totalNumberOfRequests;
   }
 
   /**
@@ -380,7 +386,8 @@ implements WritableComparable<HServerLoa
    * @param hsl the template HServerLoad
    */
   public HServerLoad(final HServerLoad hsl) {
-    this(hsl.numberOfRequests, hsl.usedHeapMB, hsl.maxHeapMB, 
hsl.getRegionsLoad());
+    this(hsl.totalNumberOfRequests, hsl.numberOfRequests, hsl.usedHeapMB,
+        hsl.maxHeapMB, hsl.getRegionsLoad());
     for (Map.Entry<byte[], RegionLoad> e : hsl.regionLoad.entrySet()) {
       this.regionLoad.put(e.getKey(), e.getValue());
     }
@@ -456,11 +463,18 @@ implements WritableComparable<HServerLoa
   }
 
   /**
-   * @return the numberOfRequests
+   * @return the numberOfRequests per second.
    */
   public int getNumberOfRequests() {
     return numberOfRequests;
   }
+  
+  /**
+   * @return the numberOfRequests
+   */
+  public int getTotalNumberOfRequests() {
+    return totalNumberOfRequests;
+  }
 
   /**
    * @return the amount of heap in use, in MB
@@ -538,6 +552,7 @@ implements WritableComparable<HServerLoa
       rl.readFields(in);
       regionLoad.put(rl.getName(), rl);
     }
+    totalNumberOfRequests = in.readInt();
   }
 
   public void write(DataOutput out) throws IOException {
@@ -549,6 +564,7 @@ implements WritableComparable<HServerLoa
     out.writeInt(this.regionLoad.size());
     for (RegionLoad rl: regionLoad.values())
       rl.write(out);
+    out.writeInt(totalNumberOfRequests);
   }
 
   // Comparable

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=1162198&r1=1162197&r2=1162198&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 Fri 
Aug 26 18:27:02 2011
@@ -754,7 +754,7 @@ implements HMasterInterface, HMasterRegi
     this.serverManager.regionServerReport(new ServerName(sn), hsl);
     if (hsl != null && this.metrics != null) {
       // Up our metrics.
-      this.metrics.incrementRequests(hsl.getNumberOfRequests());
+      this.metrics.incrementRequests(hsl.getTotalNumberOfRequests());
     }
   }
 

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1162198&r1=1162197&r2=1162198&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 Fri Aug 26 18:27:02 2011
@@ -765,7 +765,7 @@ public class HRegionServer implements HR
     }
     MemoryUsage memory =
       ManagementFactory.getMemoryMXBean().getHeapMemoryUsage();
-    return new HServerLoad(requestCount.get(),
+    return new HServerLoad(requestCount.get(),(int)metrics.getRequests(),
       (int)(memory.getUsed() / 1024 / 1024),
       (int) (memory.getMax() / 1024 / 1024), regionLoads);
   }

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java?rev=1162198&r1=1162197&r2=1162198&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java
 Fri Aug 26 18:27:02 2011
@@ -364,8 +364,8 @@ public class RegionServerMetrics impleme
   @Override
   public String toString() {
     StringBuilder sb = new StringBuilder();
-    sb = Strings.appendKeyValue(sb, "requestsPerSecond",
-      Float.valueOf(this.requests.getPreviousIntervalValue()));
+    sb = Strings.appendKeyValue(sb, "requestsPerSecond", Integer
+        .valueOf((int) this.requests.getPreviousIntervalValue()));
     sb = Strings.appendKeyValue(sb, "numberOfOnlineRegions",
       Integer.valueOf(this.regions.get()));
     sb = Strings.appendKeyValue(sb, "numberOfStores",


Reply via email to