HDFS-8009. Signal congestion on the DataNode. Contributed by Haohui Mai.

This commit is contained in:
Haohui Mai 2015-04-01 10:56:53 -07:00
parent 492239424a
commit 53471d462c
2 changed files with 12 additions and 2 deletions

View File

@ -371,6 +371,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

View File

@ -354,6 +354,9 @@ public static InetSocketAddress createSocketAddr(String target) {
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.
@ -484,8 +487,13 @@ public Collection<String> getReconfigurableProperties() {
* </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;
}
/**