浏览代码

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

Wei-Chiu Chuang 6 年之前
父节点
当前提交
e9a005dfcf

+ 6 - 1
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;
     }