diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 4ed744fd400..49425a96b3d 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -27,6 +27,9 @@ Release 2.0.3-alpha - Unreleased OPTIMIZATIONS + HADOOP-8866. SampleQuantiles#query is O(N^2) instead of O(N). (Andrew Wang + via atm) + BUG FIXES HADOOP-8795. BASH tab completion doesn't look in PATH, assumes path to diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/util/SampleQuantiles.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/util/SampleQuantiles.java index c0b14cc21e6..97685b4fe4c 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/util/SampleQuantiles.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/util/SampleQuantiles.java @@ -210,9 +210,12 @@ public class SampleQuantiles { int rankMin = 0; int desired = (int) (quantile * count); + ListIterator it = samples.listIterator(); + SampleItem prev = null; + SampleItem cur = it.next(); for (int i = 1; i < samples.size(); i++) { - SampleItem prev = samples.get(i - 1); - SampleItem cur = samples.get(i); + prev = cur; + cur = it.next(); rankMin += prev.g;