You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by wh...@apache.org on 2015/04/01 19:57:09 UTC
hadoop git commit: HDFS-8009. Signal congestion on the DataNode.
Contributed by Haohui Mai.
Repository: hadoop
Updated Branches:
refs/heads/branch-2 865be70b0 -> a5bcfe0d3
HDFS-8009. Signal congestion on the DataNode. Contributed by Haohui Mai.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a5bcfe0d
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a5bcfe0d
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a5bcfe0d
Branch: refs/heads/branch-2
Commit: a5bcfe0d3339a8dd72b049f8507df9a552fdba8e
Parents: 865be70
Author: Haohui Mai <wh...@apache.org>
Authored: Wed Apr 1 10:56:53 2015 -0700
Committer: Haohui Mai <wh...@apache.org>
Committed: Wed Apr 1 10:57:07 2015 -0700
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 2 ++
.../apache/hadoop/hdfs/server/datanode/DataNode.java | 12 ++++++++++--
2 files changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/a5bcfe0d/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index 1d733a0..5b64ee1 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -56,6 +56,8 @@ Release 2.8.0 - UNRELEASED
HDFS-7671. hdfs user guide should point to the common rack awareness doc.
(Kai Sasaki via aajisaka)
+ HDFS-8009. Signal congestion on the DataNode. (wheat9)
+
OPTIMIZATIONS
BUG FIXES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/a5bcfe0d/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
index 9851cb5..6f70168 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
@@ -357,6 +357,9 @@ public class DataNode extends ReconfigurableBase
private String dnUserName = null;
private SpanReceiverHost spanReceiverHost;
+ private static final int NUM_CORES = Runtime.getRuntime()
+ .availableProcessors();
+ private static final double CONGESTION_RATIO = 1.5;
/**
* Creates a dummy DataNode for testing purpose.
@@ -487,8 +490,13 @@ public class DataNode extends ReconfigurableBase
* </ul>
*/
public PipelineAck.ECN getECN() {
- return pipelineSupportECN ? PipelineAck.ECN.SUPPORTED : PipelineAck.ECN
- .DISABLED;
+ if (!pipelineSupportECN) {
+ return PipelineAck.ECN.DISABLED;
+ }
+ double load = ManagementFactory.getOperatingSystemMXBean()
+ .getSystemLoadAverage();
+ return load > NUM_CORES * CONGESTION_RATIO ? PipelineAck.ECN.CONGESTED :
+ PipelineAck.ECN.SUPPORTED;
}
/**