Source:
public Set<String> getBlacklist(List<Map<String, Set<Integer>>> supervisorsWithFailures, List<Map<String, Integer>> sendAssignmentFailureCount, Cluster cluster, Topologies topologies) { Map<String, Integer> countMap = new HashMap<>(); for (Map<String, Set<Integer>> item : supervisorsWithFailures) { Set<String> supervisors = item.keySet(); for (String supervisor : supervisors) { int supervisorCount = countMap.getOrDefault(supervisor, 0); countMap.put(supervisor, supervisorCount + 1); } } for (Map<String, Integer> item : sendAssignmentFailureCount) { for (Map.Entry<String, Integer> entry : item.entrySet()) { String supervisorNode = entry.getKey(); int sendAssignmentFailures = entry.getValue() + countMap.getOrDefault(supervisorNode, 0); countMap.put(supervisorNode, sendAssignmentFailures); } } for (Map.Entry<String, Integer> entry : countMap.entrySet()) { String supervisor = entry.getKey(); int count = entry.getValue(); if (count >= toleranceCount) { if (!blacklist.containsKey(supervisor)) { LOG.debug("Added supervisor to blacklist", supervisor); LOG.debug("supervisorsWithFailures : {}", supervisorsWithFailures); reporter.reportBlacklist(supervisor, supervisorsWithFailures); blacklist.put(supervisor, resumeTime / nimbusMonitorFreqSecs); } } } Set<String> toRelease = releaseBlacklistWhenNeeded(cluster, new ArrayList<>(blacklist.keySet())); if (toRelease != null) { LOG.debug("Releasing nodes because of low resources", toRelease.size()); cluster.setGreyListedSupervisors(toRelease); for (String key : toRelease) { blacklist.remove(key); } } return blacklist.keySet(); }

Target:
public Set<String> getBlacklist(List<Map<String, Set<Integer>>> supervisorsWithFailures, List<Map<String, Integer>> sendAssignmentFailureCount, Cluster cluster, Topologies topologies) { Map<String, Integer> countMap = new HashMap<>(); for (Map<String, Set<Integer>> item : supervisorsWithFailures) { Set<String> supervisors = item.keySet(); for (String supervisor : supervisors) { int supervisorCount = countMap.getOrDefault(supervisor, 0); countMap.put(supervisor, supervisorCount + 1); } } for (Map<String, Integer> item : sendAssignmentFailureCount) { for (Map.Entry<String, Integer> entry : item.entrySet()) { String supervisorNode = entry.getKey(); int sendAssignmentFailures = entry.getValue() + countMap.getOrDefault(supervisorNode, 0); countMap.put(supervisorNode, sendAssignmentFailures); } } for (Map.Entry<String, Integer> entry : countMap.entrySet()) { String supervisor = entry.getKey(); int count = entry.getValue(); if (count >= toleranceCount) { if (!blacklist.containsKey(supervisor)) { LOG.debug("Added supervisor to blacklist", supervisor); LOG.debug("supervisorsWithFailures : {}", supervisorsWithFailures); LOG.debug("sendAssignmentFailureCount: {}", sendAssignmentFailureCount); reporter.reportBlacklist(supervisor, supervisorsWithFailures); blacklist.put(supervisor, resumeTime / nimbusMonitorFreqSecs); } } } Set<String> toRelease = releaseBlacklistWhenNeeded(cluster, new ArrayList<>(blacklist.keySet())); if (toRelease != null) { LOG.debug("Releasing nodes because of low resources", toRelease.size()); cluster.setGreyListedSupervisors(toRelease); for (String key : toRelease) { blacklist.remove(key); } } return blacklist.keySet(); }