Repository: hadoop Updated Branches: refs/heads/branch-3.0 c9fdf7503 -> 054594c61
HDFS-14171. Performance improvement in Tailing EditLog. Contributed by Kenneth Yang. (cherry picked from commit e9a005dfcf4d2249235aeff4da85b321dddc1ca9) (cherry picked from commit c48640ffbd3852b75f898325ae0b3ea0ba864578) (cherry picked from commit f24684ca9cd70326e24376a33cda937c98295af0) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/054594c6 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/054594c6 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/054594c6 Branch: refs/heads/branch-3.0 Commit: 054594c6145711c60f3cb848f08e515c4179f0c4 Parents: c9fdf75 Author: Wei-Chiu Chuang <[email protected]> Authored: Fri Dec 28 10:34:18 2018 -0800 Committer: Wei-Chiu Chuang <[email protected]> Committed: Fri Dec 28 10:39:47 2018 -0800 ---------------------------------------------------------------------- .../hdfs/server/blockmanagement/BlockManagerSafeMode.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/054594c6/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerSafeMode.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerSafeMode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerSafeMode.java index 8de17ef..b730f61 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerSafeMode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerSafeMode.java @@ -561,7 +561,12 @@ class BlockManagerSafeMode { */ private boolean areThresholdsMet() { assert namesystem.hasWriteLock(); - int datanodeNum = blockManager.getDatanodeManager().getNumLiveDataNodes(); + // Calculating the number of live datanodes is time-consuming + // in large clusters. Skip it when datanodeThreshold is zero. + int datanodeNum = 0; + if (datanodeThreshold > 0) { + datanodeNum = blockManager.getDatanodeManager().getNumLiveDataNodes(); + } synchronized (this) { return blockSafe >= blockThreshold && datanodeNum >= datanodeThreshold; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
