@Override public Collection<Node> takeNodesBySlots(int slotsNeeded) { HashSet<Node> ret = new HashSet<>(); Iterator<Node> it = _nodes.iterator(); while (it.hasNext() && slotsNeeded > 0) { Node n = it.next(); ret.add(n); _totalSlots -= n.totalSlotsFree(); slotsNeeded -= n.totalSlotsFree(); it.remove(); } return ret; }
@Override public Collection<Node> takeNodes(int nodesNeeded) { HashSet<Node> ret = new HashSet<>(); Iterator<Node> it = _nodes.iterator(); while (it.hasNext() && nodesNeeded > ret.size()) { Node n = it.next(); ret.add(n); _totalSlots -= n.totalSlotsFree(); it.remove(); } return ret; }
public static int countFreeSlotsAlive(Collection<Node> nodes) { int total = 0; for (Node n : nodes) { if (n.isAlive()) { total += n.totalSlotsFree(); } } return total; }
public int totalSlots() { return totalSlotsFree() + totalSlotsUsed(); }
private Node findBestNode(Collection<Node> nodes) { Node ret = null; for (Node node : nodes) { if (ret == null) { if (node.totalSlotsFree() > 0) { ret = node; } } else { if (node.totalSlotsFree() > 0) { if (node.totalSlotsUsed() < ret.totalSlotsUsed()) { ret = node; } else if (node.totalSlotsUsed() == ret.totalSlotsUsed()) { if (node.totalSlotsFree() > ret.totalSlotsFree()) { ret = node; } } } } } return ret; }
@Override public void init(Cluster cluster, Map<String, Node> nodeIdToNode) { super.init(cluster, nodeIdToNode); for (Node n : nodeIdToNode.values()) { if (n.isTotallyFree() && n.isAlive()) { _nodes.add(n); _totalSlots += n.totalSlotsFree(); } } LOG.debug("Found {} nodes with {} slots", _nodes.size(), _totalSlots); }
@Override public Collection<Node> takeNodesBySlots(int slotsNeeded) { HashSet<Node> ret = new HashSet<>(); LinkedList<Node> sortedNodes = new LinkedList<>(_nodes); Collections.sort(sortedNodes, Node.FREE_NODE_COMPARATOR_DEC); for (Node n : sortedNodes) { if (slotsNeeded <= 0) { break; } if (n.isAlive()) { n.freeAllSlots(_cluster); _nodes.remove(n); ret.add(n); slotsNeeded -= n.totalSlotsFree(); } } return ret; }
if (n.totalSlotsFree() == 0) { nodes.remove(); n = null;
@Override public Collection<Node> takeNodesBySlots(int slotsNeeded) { HashSet<Node> ret = new HashSet<>(); Iterator<Node> it = _nodes.iterator(); while (it.hasNext() && slotsNeeded > 0) { Node n = it.next(); ret.add(n); _totalSlots -= n.totalSlotsFree(); slotsNeeded -= n.totalSlotsFree(); it.remove(); } return ret; }
@Override public Collection<Node> takeNodes(int nodesNeeded) { HashSet<Node> ret = new HashSet<>(); Iterator<Node> it = _nodes.iterator(); while (it.hasNext() && nodesNeeded > ret.size()) { Node n = it.next(); ret.add(n); _totalSlots -= n.totalSlotsFree(); it.remove(); } return ret; }
public static int countFreeSlotsAlive(Collection<Node> nodes) { int total = 0; for (Node n: nodes) { if (n.isAlive()) { total += n.totalSlotsFree(); } } return total; }
public int totalSlots() { return totalSlotsFree() + totalSlotsUsed(); }
private Node findBestNode(Collection<Node> nodes) { Node ret = null; for(Node node : nodes) { if(ret == null ) { if(node.totalSlotsFree() > 0) { ret = node; } } else { if (node.totalSlotsFree() > 0) { if (node.totalSlotsUsed() < ret.totalSlotsUsed()) { ret = node; } else if (node.totalSlotsUsed() == ret.totalSlotsUsed()) { if(node.totalSlotsFree() > ret.totalSlotsFree()) { ret = node; } } } } } return ret; }
@Override public void init(Cluster cluster, Map<String, Node> nodeIdToNode) { super.init(cluster, nodeIdToNode); for (Node n: nodeIdToNode.values()) { if(n.isTotallyFree() && n.isAlive()) { _nodes.add(n); _totalSlots += n.totalSlotsFree(); } } LOG.debug("Found {} nodes with {} slots", _nodes.size(), _totalSlots); }
@Override public Collection<Node> takeNodesBySlots(int slotsNeeded) { HashSet<Node> ret = new HashSet<>(); LinkedList<Node> sortedNodes = new LinkedList<>(_nodes); Collections.sort(sortedNodes, Node.FREE_NODE_COMPARATOR_DEC); for (Node n: sortedNodes) { if (slotsNeeded <= 0) { break; } if (n.isAlive()) { n.freeAllSlots(_cluster); _nodes.remove(n); ret.add(n); slotsNeeded -= n.totalSlotsFree(); } } return ret; }
if (n.totalSlotsFree() == 0) { nodes.remove(); n = null;