Author: mahadev
Date: Tue Feb 14 23:47:15 2012
New Revision: 1244280
URL: http://svn.apache.org/viewvc?rev=1244280&view=rev
Log:
HADOOP-8052. Hadoop Metrics2 should emit Float.MAX_VALUE (instead of
Double.MAX_VALUE) to avoid making Ganglia's gmetad core. (Varun Kapoor via
Matt) - Merging r1243207 from trunk.
Modified:
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/CHANGES.txt
(contents, props changed)
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/util/SampleStat.java
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/util/TestSampleStat.java
Modified:
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1244280&r1=1244279&r2=1244280&view=diff
==============================================================================
---
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/CHANGES.txt
(original)
+++
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/CHANGES.txt
Tue Feb 14 23:47:15 2012
@@ -225,6 +225,10 @@ Release 0.23.1 - 2012-02-08
HADOOP-8055. Hadoop tarball distribution lacks a core-site.xml (harsh)
+ HADOOP-8052. Hadoop Metrics2 should emit Float.MAX_VALUE
+ (instead of Double.MAX_VALUE) to avoid making Ganglia's gmetad core.
+ (Varun Kapoor via Matt)
+
Release 0.23.0 - 2011-11-01
INCOMPATIBLE CHANGES
Propchange:
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/CHANGES.txt
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb 14 23:47:15 2012
@@ -1,3 +1,4 @@
+/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt:1243206
/hadoop/common/branches/yahoo-merge/CHANGES.txt:1079157,1079163-1079164,1079167
/hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt:1161777,1161781,1162008,1162188,1162421,1162491,1162499,1162613,1162928,1162954,1162979,1163050,1163069,1163456,1163465,1163490,1163768,1163852,1163858,1164255,1164301,1166009,1166402,1167383,1169986,1170046,1170379,1170459,1171297,1171894,1171909,1172186,1172916,1173402,1176550,1176986,1177035,1177487,1177531,1177859,1177864,1179869,1182189,1182205,1182214,1182641,1183132,1189357,1189613,1189932,1189982,1190109,1195575,1195760,1196113,1196129,1204114,1204117,1204122,1204124,1204129,1204131,1204177,1204376,1204388,1205260,1206830,1207694,1208153,1208313,1209246,1212062,1212073,1212084,1213537,1213586,1213592-1213593,1213598,1214046,1220510,1221348,1225114,1225192,1225456,1225489,1225591,1226211,1226239,1226350-1226351,1227091,1227165,1227423,1227964,1229347,1230398,1231569,1231572,1231627,1231640,1233605,1234555,1235135,1235137,1235956,1236456,1239386,1239752,1240897,1240928
/hadoop/core/branches/branch-0.18/CHANGES.txt:727226
Modified:
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/util/SampleStat.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/util/SampleStat.java?rev=1244280&r1=1244279&r2=1244280&view=diff
==============================================================================
---
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/util/SampleStat.java
(original)
+++
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/util/SampleStat.java
Tue Feb 14 23:47:15 2012
@@ -143,8 +143,16 @@ public class SampleStat {
@SuppressWarnings("PublicInnerClass")
public static class MinMax {
- private double min = Double.MAX_VALUE;
- private double max = Double.MIN_VALUE;
+ // Float.MAX_VALUE is used rather than Double.MAX_VALUE, even though the
+ // min and max variables are of type double.
+ // Float.MAX_VALUE is big enough, and using Double.MAX_VALUE makes
+ // Ganglia core due to buffer overflow.
+ // The same reasoning applies to the MIN_VALUE counterparts.
+ static final double DEFAULT_MIN_VALUE = Float.MAX_VALUE;
+ static final double DEFAULT_MAX_VALUE = Float.MIN_VALUE;
+
+ private double min = DEFAULT_MIN_VALUE;
+ private double max = DEFAULT_MAX_VALUE;
public void add(double value) {
if (value > max) max = value;
@@ -155,8 +163,8 @@ public class SampleStat {
public double max() { return max; }
public void reset() {
- min = Double.MAX_VALUE;
- max = Double.MIN_VALUE;
+ min = DEFAULT_MIN_VALUE;
+ max = DEFAULT_MAX_VALUE;
}
public void reset(MinMax other) {
Modified:
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/util/TestSampleStat.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/util/TestSampleStat.java?rev=1244280&r1=1244279&r2=1244280&view=diff
==============================================================================
---
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/util/TestSampleStat.java
(original)
+++
hadoop/common/branches/branch-0.23.1/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/util/TestSampleStat.java
Tue Feb 14 23:47:15 2012
@@ -36,8 +36,8 @@ public class TestSampleStat {
assertEquals("mean", 0.0, stat.mean(), EPSILON);
assertEquals("variance", 0.0, stat.variance(), EPSILON);
assertEquals("stddev", 0.0, stat.stddev(), EPSILON);
- assertEquals("min", Double.MAX_VALUE, stat.min(), EPSILON);
- assertEquals("max", Double.MIN_VALUE, stat.max(), EPSILON);
+ assertEquals("min", SampleStat.MinMax.DEFAULT_MIN_VALUE, stat.min(),
EPSILON);
+ assertEquals("max", SampleStat.MinMax.DEFAULT_MAX_VALUE, stat.max(),
EPSILON);
stat.add(3);
assertEquals("num samples", 1L, stat.numSamples());
@@ -60,8 +60,8 @@ public class TestSampleStat {
assertEquals("mean", 0.0, stat.mean(), EPSILON);
assertEquals("variance", 0.0, stat.variance(), EPSILON);
assertEquals("stddev", 0.0, stat.stddev(), EPSILON);
- assertEquals("min", Double.MAX_VALUE, stat.min(), EPSILON);
- assertEquals("max", Double.MIN_VALUE, stat.max(), EPSILON);
+ assertEquals("min", SampleStat.MinMax.DEFAULT_MIN_VALUE, stat.min(),
EPSILON);
+ assertEquals("max", SampleStat.MinMax.DEFAULT_MAX_VALUE, stat.max(),
EPSILON);
}
}