Repository: hadoop
Updated Branches:
  refs/heads/branch-2 15286d916 -> 10cc02f64


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)
(cherry picked from commit 054594c6145711c60f3cb848f08e515c4179f0c4)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/10cc02f6
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/10cc02f6
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/10cc02f6

Branch: refs/heads/branch-2
Commit: 10cc02f6436457ea88f6cd9a2cfb9894e53bd4c6
Parents: 15286d9
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:46:38 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/10cc02f6/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 d0965b5..ae2f942 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
@@ -541,7 +541,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]

Reply via email to