public static int getNodeCountIfSlotsWereTaken(int slots, NodePool[] pools) { LOG.debug("How many nodes to get {} slots from {}", slots, pools); int total = 0; for (NodePool pool : pools) { NodeAndSlotCounts ns = pool.getNodeAndSlotCountIfSlotsWereTaken(slots); total += ns._nodes; slots -= ns._slots; LOG.debug("Found {} nodes so far {} more slots needed", total, slots); if (slots <= 0) { break; } } return total; }
@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); }
public static int nodesAvailable(NodePool[] pools) { int nodesAvailable = 0; for (NodePool pool : pools) { nodesAvailable += pool.nodesAvailable(); } return nodesAvailable; }
slotsAvailable = NodePool.slotsAvailable(lesserPools); int numNewNodes = NodePool.getNodeCountIfSlotsWereTaken(slotsNeeded, lesserPools); LOG.debug("Nodes... new {} used {} max {}", numNewNodes, _usedNodes, _maxNodes); Collection<Node> found = NodePool.takeNodesBySlot(slotsNeeded, lesserPools); _usedNodes += found.size(); allNodes.addAll(found);
LOG.debug("Found top {} run by user {}", td.getId(), user); NodePool pool = userPools.get(user); if (pool == null || !pool.canAdd(td)) { pool = defaultPool; pool.addTopology(td);
LOG.debug("Topology {} is isolated", topId); int nodesFromUsAvailable = nodesAvailable(); int nodesFromOthersAvailable = NodePool.nodesAvailable(lesserPools); Collection<Node> found = NodePool.takeNodes(nodesNeededFromOthers, lesserPools); _usedNodes += found.size(); allNodes.addAll(found);
slotsAvailable = NodePool.slotsAvailable(lesserPools); _nodes.addAll(NodePool.takeNodesBySlot(slotsNeeded, lesserPools));
public static int slotsAvailable(NodePool[] pools) { int slotsAvailable = 0; for (NodePool pool : pools) { slotsAvailable += pool.slotsAvailable(); } return slotsAvailable; }
public static Collection<Node> takeNodesBySlot(int slotsNeeded, NodePool[] pools) { LOG.debug("Trying to grab {} free slots from {}", slotsNeeded, pools); HashSet<Node> ret = new HashSet<>(); for (NodePool pool : pools) { Collection<Node> got = pool.takeNodesBySlots(slotsNeeded); ret.addAll(got); slotsNeeded -= Node.countFreeSlotsAlive(got); LOG.debug("Got {} nodes so far need {} more slots", ret.size(), slotsNeeded); if (slotsNeeded <= 0) { break; } } return ret; }
public static Collection<Node> takeNodes(int nodesNeeded, NodePool[] pools) { LOG.debug("Trying to grab {} free nodes from {}", nodesNeeded, pools); HashSet<Node> ret = new HashSet<>(); for (NodePool pool : pools) { Collection<Node> got = pool.takeNodes(nodesNeeded); ret.addAll(got); nodesNeeded -= got.size(); LOG.debug("Got {} nodes so far need {} more nodes", ret.size(), nodesNeeded); if (nodesNeeded <= 0) { break; } } return ret; }
slotsAvailable = NodePool.slotsAvailable(lesserPools); int numNewNodes = NodePool.getNodeCountIfSlotsWereTaken(slotsNeeded, lesserPools); LOG.debug("Nodes... new {} used {} max {}", numNewNodes, _usedNodes, _maxNodes); Collection<Node> found = NodePool.takeNodesBySlot(slotsNeeded, lesserPools); _usedNodes += found.size(); allNodes.addAll(found);
LOG.debug("Found top {} run by user {}",td.getId(), user); NodePool pool = userPools.get(user); if (pool == null || !pool.canAdd(td)) { pool = defaultPool; pool.addTopology(td);
LOG.debug("Topology {} is isolated", topId); int nodesFromUsAvailable = nodesAvailable(); int nodesFromOthersAvailable = NodePool.nodesAvailable(lesserPools); Collection<Node> found = NodePool.takeNodes(nodesNeededFromOthers, lesserPools); _usedNodes += found.size(); allNodes.addAll(found);
slotsAvailable = NodePool.slotsAvailable(lesserPools); _nodes.addAll(NodePool.takeNodesBySlot(slotsNeeded, lesserPools));
public static int slotsAvailable(NodePool[] pools) { int slotsAvailable = 0; for (NodePool pool: pools) { slotsAvailable += pool.slotsAvailable(); } return slotsAvailable; }
public static Collection<Node> takeNodesBySlot(int slotsNeeded,NodePool[] pools) { LOG.debug("Trying to grab {} free slots from {}",slotsNeeded, pools); HashSet<Node> ret = new HashSet<>(); for (NodePool pool: pools) { Collection<Node> got = pool.takeNodesBySlots(slotsNeeded); ret.addAll(got); slotsNeeded -= Node.countFreeSlotsAlive(got); LOG.debug("Got {} nodes so far need {} more slots",ret.size(),slotsNeeded); if (slotsNeeded <= 0) { break; } } return ret; }
public static Collection<Node> takeNodes(int nodesNeeded,NodePool[] pools) { LOG.debug("Trying to grab {} free nodes from {}",nodesNeeded, pools); HashSet<Node> ret = new HashSet<>(); for (NodePool pool: pools) { Collection<Node> got = pool.takeNodes(nodesNeeded); ret.addAll(got); nodesNeeded -= got.size(); LOG.debug("Got {} nodes so far need {} more nodes", ret.size(), nodesNeeded); if (nodesNeeded <= 0) { break; } } 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); }
public static int nodesAvailable(NodePool[] pools) { int nodesAvailable = 0; for (NodePool pool: pools) { nodesAvailable += pool.nodesAvailable(); } return nodesAvailable; }
public static int getNodeCountIfSlotsWereTaken(int slots,NodePool[] pools) { LOG.debug("How many nodes to get {} slots from {}",slots, pools); int total = 0; for (NodePool pool: pools) { NodeAndSlotCounts ns = pool.getNodeAndSlotCountIfSlotsWereTaken(slots); total += ns._nodes; slots -= ns._slots; LOG.debug("Found {} nodes so far {} more slots needed", total, slots); if (slots <= 0) { break; } } return total; } }