@Override protected boolean isGoodDatanode(DatanodeDescriptor node, int maxTargetPerRack, boolean considerLoad, List<DatanodeStorageInfo> results, boolean avoidStaleNodes) { boolean isGoodTarget = super.isGoodDatanode(node, maxTargetPerRack, considerLoad, results, avoidStaleNodes); if (isGoodTarget) { if (results.size() > 0 && results.size() < upgradeDomainFactor) { // Each node in "results" has a different upgrade domain. Make sure // the candidate node introduces a new upgrade domain. Set<String> upgradeDomains = getUpgradeDomains(results); if (upgradeDomains.contains(node.getUpgradeDomain())) { isGoodTarget = false; } } } return isGoodTarget; }
&& isGoodDatanode(localDatanode, maxNodesPerRack, false, results, avoidStaleNodes)) { for (Iterator<Map.Entry<StorageType, Integer>> iter = storageTypes
if (isGoodDatanode(chosenNode, maxNodesPerRack, considerLoad, results, avoidStaleNodes)) { for (Iterator<Map.Entry<StorageType, Integer>> iter = storageTypes