[1/2] hadoop git commit: HADOOP-13285. DecayRpcScheduler MXBean should only report decayed CallVolumeSummary. Contributed by Xiaoyu Yao.

2016-08-10 Thread xyao
Repository: hadoop
Updated Branches:
  refs/heads/branch-2.8 69217ba81 -> c0e331935


HADOOP-13285. DecayRpcScheduler MXBean should only report decayed 
CallVolumeSummary. Contributed by Xiaoyu Yao.

(cherry picked from commit 0761379fe45898c44c8f161834c298ef932e4d8c)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/cc491332
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/cc491332
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/cc491332

Branch: refs/heads/branch-2.8
Commit: cc491332818a4a5fc77f714a5448d801b28ac6e9
Parents: 69217ba
Author: Xiaoyu Yao 
Authored: Fri Jun 17 15:25:14 2016 -0700
Committer: Xiaoyu Yao 
Committed: Wed Aug 10 15:19:04 2016 -0700

--
 .../apache/hadoop/ipc/DecayRpcScheduler.java| 17 ++-
 .../hadoop/ipc/TestDecayRpcScheduler.java   | 30 
 2 files changed, 41 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/cc491332/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
--
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
index ec87c75..f40bd17 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
@@ -901,9 +901,24 @@ public class DecayRpcScheduler implements RpcScheduler,
   public String getCallVolumeSummary() {
 try {
   ObjectMapper om = new ObjectMapper();
-  return om.writeValueAsString(callCounts);
+  return om.writeValueAsString(getDecayedCallCounts());
 } catch (Exception e) {
   return "Error: " + e.getMessage();
 }
   }
+
+  private Map getDecayedCallCounts() {
+Map decayedCallCounts = new HashMap<>(callCounts.size());
+Iterator> it =
+callCounts.entrySet().iterator();
+while (it.hasNext()) {
+  Map.Entry entry = it.next();
+  Object user = entry.getKey();
+  Long decayedCount = entry.getValue().get(0).get();
+  if (decayedCount > 0) {
+decayedCallCounts.put(user, decayedCount);
+  }
+}
+return decayedCallCounts;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/cc491332/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
--
diff --git 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
index 0b0408c..58380c5 100644
--- 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
+++ 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
@@ -30,6 +30,10 @@ import static org.mockito.Mockito.when;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.conf.Configuration;
 
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import java.lang.management.ManagementFactory;
+
 public class TestDecayRpcScheduler {
   private Schedulable mockCall(String id) {
 Schedulable mockCall = mock(Schedulable.class);
@@ -189,12 +193,14 @@ public class TestDecayRpcScheduler {
 
   @Test
   @SuppressWarnings("deprecation")
-  public void testPriority() {
+  public void testPriority() throws Exception {
 Configuration conf = new Configuration();
-conf.set("ns." + DecayRpcScheduler.IPC_FCQ_DECAYSCHEDULER_PERIOD_KEY, 
""); // Never flush
-conf.set("ns." + DecayRpcScheduler.IPC_FCQ_DECAYSCHEDULER_THRESHOLDS_KEY,
-  "25, 50, 75");
-scheduler = new DecayRpcScheduler(4, "ns", conf);
+final String namespace = "ns";
+conf.set(namespace + "." + DecayRpcScheduler
+.IPC_FCQ_DECAYSCHEDULER_PERIOD_KEY, ""); // Never flush
+conf.set(namespace + "." + DecayRpcScheduler
+.IPC_FCQ_DECAYSCHEDULER_THRESHOLDS_KEY, "25, 50, 75");
+scheduler = new DecayRpcScheduler(4, namespace, conf);
 
 assertEquals(0, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(2, scheduler.getPriorityLevel(mockCall("A")));
@@ -206,6 +212,20 @@ public class TestDecayRpcScheduler {
 assertEquals(1, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(1, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(2, 

[29/51] [abbrv] hadoop git commit: HADOOP-13285. DecayRpcScheduler MXBean should only report decayed CallVolumeSummary. Contributed by Xiaoyu Yao.

2016-06-21 Thread subru
HADOOP-13285. DecayRpcScheduler MXBean should only report decayed 
CallVolumeSummary. Contributed by Xiaoyu Yao.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/0761379f
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/0761379f
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/0761379f

Branch: refs/heads/YARN-2915
Commit: 0761379fe45898c44c8f161834c298ef932e4d8c
Parents: 2800695
Author: Xiaoyu Yao 
Authored: Fri Jun 17 15:25:14 2016 -0700
Committer: Xiaoyu Yao 
Committed: Fri Jun 17 15:25:14 2016 -0700

--
 .../apache/hadoop/ipc/DecayRpcScheduler.java| 17 ++-
 .../hadoop/ipc/TestDecayRpcScheduler.java   | 30 
 2 files changed, 41 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/0761379f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
--
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
index ec87c75..f40bd17 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
@@ -901,9 +901,24 @@ public class DecayRpcScheduler implements RpcScheduler,
   public String getCallVolumeSummary() {
 try {
   ObjectMapper om = new ObjectMapper();
-  return om.writeValueAsString(callCounts);
+  return om.writeValueAsString(getDecayedCallCounts());
 } catch (Exception e) {
   return "Error: " + e.getMessage();
 }
   }
+
+  private Map getDecayedCallCounts() {
+Map decayedCallCounts = new HashMap<>(callCounts.size());
+Iterator> it =
+callCounts.entrySet().iterator();
+while (it.hasNext()) {
+  Map.Entry entry = it.next();
+  Object user = entry.getKey();
+  Long decayedCount = entry.getValue().get(0).get();
+  if (decayedCount > 0) {
+decayedCallCounts.put(user, decayedCount);
+  }
+}
+return decayedCallCounts;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/0761379f/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
--
diff --git 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
index 0b0408c..58380c5 100644
--- 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
+++ 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
@@ -30,6 +30,10 @@ import static org.mockito.Mockito.when;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.conf.Configuration;
 
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import java.lang.management.ManagementFactory;
+
 public class TestDecayRpcScheduler {
   private Schedulable mockCall(String id) {
 Schedulable mockCall = mock(Schedulable.class);
@@ -189,12 +193,14 @@ public class TestDecayRpcScheduler {
 
   @Test
   @SuppressWarnings("deprecation")
-  public void testPriority() {
+  public void testPriority() throws Exception {
 Configuration conf = new Configuration();
-conf.set("ns." + DecayRpcScheduler.IPC_FCQ_DECAYSCHEDULER_PERIOD_KEY, 
""); // Never flush
-conf.set("ns." + DecayRpcScheduler.IPC_FCQ_DECAYSCHEDULER_THRESHOLDS_KEY,
-  "25, 50, 75");
-scheduler = new DecayRpcScheduler(4, "ns", conf);
+final String namespace = "ns";
+conf.set(namespace + "." + DecayRpcScheduler
+.IPC_FCQ_DECAYSCHEDULER_PERIOD_KEY, ""); // Never flush
+conf.set(namespace + "." + DecayRpcScheduler
+.IPC_FCQ_DECAYSCHEDULER_THRESHOLDS_KEY, "25, 50, 75");
+scheduler = new DecayRpcScheduler(4, namespace, conf);
 
 assertEquals(0, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(2, scheduler.getPriorityLevel(mockCall("A")));
@@ -206,6 +212,20 @@ public class TestDecayRpcScheduler {
 assertEquals(1, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(1, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(2, scheduler.getPriorityLevel(mockCall("A")));
+
+MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+ObjectName mxbeanName = new ObjectName(
+

[34/39] hadoop git commit: HADOOP-13285. DecayRpcScheduler MXBean should only report decayed CallVolumeSummary. Contributed by Xiaoyu Yao.

2016-06-18 Thread aengineer
HADOOP-13285. DecayRpcScheduler MXBean should only report decayed 
CallVolumeSummary. Contributed by Xiaoyu Yao.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/0761379f
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/0761379f
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/0761379f

Branch: refs/heads/HDFS-1312
Commit: 0761379fe45898c44c8f161834c298ef932e4d8c
Parents: 2800695
Author: Xiaoyu Yao 
Authored: Fri Jun 17 15:25:14 2016 -0700
Committer: Xiaoyu Yao 
Committed: Fri Jun 17 15:25:14 2016 -0700

--
 .../apache/hadoop/ipc/DecayRpcScheduler.java| 17 ++-
 .../hadoop/ipc/TestDecayRpcScheduler.java   | 30 
 2 files changed, 41 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/0761379f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
--
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
index ec87c75..f40bd17 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
@@ -901,9 +901,24 @@ public class DecayRpcScheduler implements RpcScheduler,
   public String getCallVolumeSummary() {
 try {
   ObjectMapper om = new ObjectMapper();
-  return om.writeValueAsString(callCounts);
+  return om.writeValueAsString(getDecayedCallCounts());
 } catch (Exception e) {
   return "Error: " + e.getMessage();
 }
   }
+
+  private Map getDecayedCallCounts() {
+Map decayedCallCounts = new HashMap<>(callCounts.size());
+Iterator> it =
+callCounts.entrySet().iterator();
+while (it.hasNext()) {
+  Map.Entry entry = it.next();
+  Object user = entry.getKey();
+  Long decayedCount = entry.getValue().get(0).get();
+  if (decayedCount > 0) {
+decayedCallCounts.put(user, decayedCount);
+  }
+}
+return decayedCallCounts;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/0761379f/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
--
diff --git 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
index 0b0408c..58380c5 100644
--- 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
+++ 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
@@ -30,6 +30,10 @@ import static org.mockito.Mockito.when;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.conf.Configuration;
 
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import java.lang.management.ManagementFactory;
+
 public class TestDecayRpcScheduler {
   private Schedulable mockCall(String id) {
 Schedulable mockCall = mock(Schedulable.class);
@@ -189,12 +193,14 @@ public class TestDecayRpcScheduler {
 
   @Test
   @SuppressWarnings("deprecation")
-  public void testPriority() {
+  public void testPriority() throws Exception {
 Configuration conf = new Configuration();
-conf.set("ns." + DecayRpcScheduler.IPC_FCQ_DECAYSCHEDULER_PERIOD_KEY, 
""); // Never flush
-conf.set("ns." + DecayRpcScheduler.IPC_FCQ_DECAYSCHEDULER_THRESHOLDS_KEY,
-  "25, 50, 75");
-scheduler = new DecayRpcScheduler(4, "ns", conf);
+final String namespace = "ns";
+conf.set(namespace + "." + DecayRpcScheduler
+.IPC_FCQ_DECAYSCHEDULER_PERIOD_KEY, ""); // Never flush
+conf.set(namespace + "." + DecayRpcScheduler
+.IPC_FCQ_DECAYSCHEDULER_THRESHOLDS_KEY, "25, 50, 75");
+scheduler = new DecayRpcScheduler(4, namespace, conf);
 
 assertEquals(0, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(2, scheduler.getPriorityLevel(mockCall("A")));
@@ -206,6 +212,20 @@ public class TestDecayRpcScheduler {
 assertEquals(1, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(1, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(2, scheduler.getPriorityLevel(mockCall("A")));
+
+MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+ObjectName mxbeanName = new ObjectName(
+

hadoop git commit: HADOOP-13285. DecayRpcScheduler MXBean should only report decayed CallVolumeSummary. Contributed by Xiaoyu Yao.

2016-06-17 Thread xyao
Repository: hadoop
Updated Branches:
  refs/heads/branch-2 35c6b725d -> ed5d3a62c


HADOOP-13285. DecayRpcScheduler MXBean should only report decayed 
CallVolumeSummary. Contributed by Xiaoyu Yao.

(cherry picked from commit 0761379fe45898c44c8f161834c298ef932e4d8c)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ed5d3a62
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ed5d3a62
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ed5d3a62

Branch: refs/heads/branch-2
Commit: ed5d3a62cedb33975304c99dda8f3957611ef12e
Parents: 35c6b72
Author: Xiaoyu Yao 
Authored: Fri Jun 17 15:25:14 2016 -0700
Committer: Xiaoyu Yao 
Committed: Fri Jun 17 15:30:51 2016 -0700

--
 .../apache/hadoop/ipc/DecayRpcScheduler.java| 17 ++-
 .../hadoop/ipc/TestDecayRpcScheduler.java   | 30 
 2 files changed, 41 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/ed5d3a62/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
--
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
index ec87c75..f40bd17 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
@@ -901,9 +901,24 @@ public class DecayRpcScheduler implements RpcScheduler,
   public String getCallVolumeSummary() {
 try {
   ObjectMapper om = new ObjectMapper();
-  return om.writeValueAsString(callCounts);
+  return om.writeValueAsString(getDecayedCallCounts());
 } catch (Exception e) {
   return "Error: " + e.getMessage();
 }
   }
+
+  private Map getDecayedCallCounts() {
+Map decayedCallCounts = new HashMap<>(callCounts.size());
+Iterator> it =
+callCounts.entrySet().iterator();
+while (it.hasNext()) {
+  Map.Entry entry = it.next();
+  Object user = entry.getKey();
+  Long decayedCount = entry.getValue().get(0).get();
+  if (decayedCount > 0) {
+decayedCallCounts.put(user, decayedCount);
+  }
+}
+return decayedCallCounts;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ed5d3a62/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
--
diff --git 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
index 0b0408c..58380c5 100644
--- 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
+++ 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
@@ -30,6 +30,10 @@ import static org.mockito.Mockito.when;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.conf.Configuration;
 
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import java.lang.management.ManagementFactory;
+
 public class TestDecayRpcScheduler {
   private Schedulable mockCall(String id) {
 Schedulable mockCall = mock(Schedulable.class);
@@ -189,12 +193,14 @@ public class TestDecayRpcScheduler {
 
   @Test
   @SuppressWarnings("deprecation")
-  public void testPriority() {
+  public void testPriority() throws Exception {
 Configuration conf = new Configuration();
-conf.set("ns." + DecayRpcScheduler.IPC_FCQ_DECAYSCHEDULER_PERIOD_KEY, 
""); // Never flush
-conf.set("ns." + DecayRpcScheduler.IPC_FCQ_DECAYSCHEDULER_THRESHOLDS_KEY,
-  "25, 50, 75");
-scheduler = new DecayRpcScheduler(4, "ns", conf);
+final String namespace = "ns";
+conf.set(namespace + "." + DecayRpcScheduler
+.IPC_FCQ_DECAYSCHEDULER_PERIOD_KEY, ""); // Never flush
+conf.set(namespace + "." + DecayRpcScheduler
+.IPC_FCQ_DECAYSCHEDULER_THRESHOLDS_KEY, "25, 50, 75");
+scheduler = new DecayRpcScheduler(4, namespace, conf);
 
 assertEquals(0, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(2, scheduler.getPriorityLevel(mockCall("A")));
@@ -206,6 +212,20 @@ public class TestDecayRpcScheduler {
 assertEquals(1, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(1, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(2, 

hadoop git commit: HADOOP-13285. DecayRpcScheduler MXBean should only report decayed CallVolumeSummary. Contributed by Xiaoyu Yao.

2016-06-17 Thread xyao
Repository: hadoop
Updated Branches:
  refs/heads/trunk 280069510 -> 0761379fe


HADOOP-13285. DecayRpcScheduler MXBean should only report decayed 
CallVolumeSummary. Contributed by Xiaoyu Yao.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/0761379f
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/0761379f
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/0761379f

Branch: refs/heads/trunk
Commit: 0761379fe45898c44c8f161834c298ef932e4d8c
Parents: 2800695
Author: Xiaoyu Yao 
Authored: Fri Jun 17 15:25:14 2016 -0700
Committer: Xiaoyu Yao 
Committed: Fri Jun 17 15:25:14 2016 -0700

--
 .../apache/hadoop/ipc/DecayRpcScheduler.java| 17 ++-
 .../hadoop/ipc/TestDecayRpcScheduler.java   | 30 
 2 files changed, 41 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/0761379f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
--
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
index ec87c75..f40bd17 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/DecayRpcScheduler.java
@@ -901,9 +901,24 @@ public class DecayRpcScheduler implements RpcScheduler,
   public String getCallVolumeSummary() {
 try {
   ObjectMapper om = new ObjectMapper();
-  return om.writeValueAsString(callCounts);
+  return om.writeValueAsString(getDecayedCallCounts());
 } catch (Exception e) {
   return "Error: " + e.getMessage();
 }
   }
+
+  private Map getDecayedCallCounts() {
+Map decayedCallCounts = new HashMap<>(callCounts.size());
+Iterator> it =
+callCounts.entrySet().iterator();
+while (it.hasNext()) {
+  Map.Entry entry = it.next();
+  Object user = entry.getKey();
+  Long decayedCount = entry.getValue().get(0).get();
+  if (decayedCount > 0) {
+decayedCallCounts.put(user, decayedCount);
+  }
+}
+return decayedCallCounts;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/0761379f/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
--
diff --git 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
index 0b0408c..58380c5 100644
--- 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
+++ 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestDecayRpcScheduler.java
@@ -30,6 +30,10 @@ import static org.mockito.Mockito.when;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.conf.Configuration;
 
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import java.lang.management.ManagementFactory;
+
 public class TestDecayRpcScheduler {
   private Schedulable mockCall(String id) {
 Schedulable mockCall = mock(Schedulable.class);
@@ -189,12 +193,14 @@ public class TestDecayRpcScheduler {
 
   @Test
   @SuppressWarnings("deprecation")
-  public void testPriority() {
+  public void testPriority() throws Exception {
 Configuration conf = new Configuration();
-conf.set("ns." + DecayRpcScheduler.IPC_FCQ_DECAYSCHEDULER_PERIOD_KEY, 
""); // Never flush
-conf.set("ns." + DecayRpcScheduler.IPC_FCQ_DECAYSCHEDULER_THRESHOLDS_KEY,
-  "25, 50, 75");
-scheduler = new DecayRpcScheduler(4, "ns", conf);
+final String namespace = "ns";
+conf.set(namespace + "." + DecayRpcScheduler
+.IPC_FCQ_DECAYSCHEDULER_PERIOD_KEY, ""); // Never flush
+conf.set(namespace + "." + DecayRpcScheduler
+.IPC_FCQ_DECAYSCHEDULER_THRESHOLDS_KEY, "25, 50, 75");
+scheduler = new DecayRpcScheduler(4, namespace, conf);
 
 assertEquals(0, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(2, scheduler.getPriorityLevel(mockCall("A")));
@@ -206,6 +212,20 @@ public class TestDecayRpcScheduler {
 assertEquals(1, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(1, scheduler.getPriorityLevel(mockCall("A")));
 assertEquals(2, scheduler.getPriorityLevel(mockCall("A")));
+
+MBeanServer mbs =