Repository: hadoop
Updated Branches:
  refs/heads/trunk 128f340f4 -> e9a005dfc


HDFS-14171. Performance improvement in Tailing EditLog. Contributed by Kenneth 
Yang.


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

Branch: refs/heads/trunk
Commit: e9a005dfcf4d2249235aeff4da85b321dddc1ca9
Parents: 128f340
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:34:18 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/e9a005df/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 5a981e9..1d7e69b 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
@@ -567,7 +567,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