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> </td><td>requests=<% totalRequests %>, regions=<% totalRegions
%></td></tr>
+<tr><th>Total: </th><td>servers: <% servers.size()
%></td><td> </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",