HDFS-8009. Signal congestion on the DataNode. Contributed by Haohui Mai.
This commit is contained in:
parent
865be70b02
commit
a5bcfe0d33
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue