Repository: hadoop Updated Branches: refs/heads/branch-2 94cbb6d16 -> 2dca55be0
HDFS-9087. Add some jitter to DataNode.checkDiskErrorThread (Elliott Clark via Colin P. McCabe) (cherry picked from commit 0b31c237f2622e256726fc5d7698f0f195dbdbc1) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2dca55be Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2dca55be Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2dca55be Branch: refs/heads/branch-2 Commit: 2dca55be00e0bca913ff88ec2413701705cd05e2 Parents: 94cbb6d Author: Colin Patrick Mccabe <cmcc...@cloudera.com> Authored: Sat Sep 26 20:36:24 2015 -0700 Committer: Colin Patrick Mccabe <cmcc...@cloudera.com> Committed: Sat Sep 26 20:37:54 2015 -0700 ---------------------------------------------------------------------- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../org/apache/hadoop/hdfs/server/datanode/DataNode.java | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/2dca55be/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 38af55b..2fe25bb 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -632,6 +632,9 @@ Release 2.8.0 - UNRELEASED HDFS-8053. Move DFSIn/OutputStream and related classes to hadoop-hdfs-client. (Mingliang Liu via wheat9) + HDFS-9087. Add some jitter to DataNode.checkDiskErrorThread (Elliott Clark + via Colin P. McCabe) + OPTIMIZATIONS HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than http://git-wip-us.apache.org/repos/asf/hadoop/blob/2dca55be/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 e2d6490..44a3bb2 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 @@ -88,6 +88,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; @@ -359,7 +360,7 @@ public class DataNode extends ReconfigurableBase private final boolean getHdfsBlockLocationsEnabled; private ObjectName dataNodeInfoBeanName; private Thread checkDiskErrorThread = null; - protected final int checkDiskErrorInterval = 5*1000; + protected final int checkDiskErrorInterval; private boolean checkDiskErrorFlag = false; private Object checkDiskErrorMutex = new Object(); private long lastDiskErrorCheck; @@ -391,6 +392,8 @@ public class DataNode extends ReconfigurableBase this.connectToDnViaHostname = false; this.getHdfsBlockLocationsEnabled = false; this.pipelineSupportECN = false; + this.checkDiskErrorInterval = + ThreadLocalRandom.current().nextInt(5000, (int) (5000 * 1.25)); initOOBTimeout(); } @@ -429,6 +432,9 @@ public class DataNode extends ReconfigurableBase ",hdfs-" + conf.get("hadoop.hdfs.configuration.version", "UNSPECIFIED"); + this.checkDiskErrorInterval = + ThreadLocalRandom.current().nextInt(5000, (int) (5000 * 1.25)); + // Determine whether we should try to pass file descriptors to clients. if (conf.getBoolean(HdfsClientConfigKeys.Read.ShortCircuit.KEY, HdfsClientConfigKeys.Read.ShortCircuit.DEFAULT)) {