void allocateResource(Resource clusterResource, Resource resource, String nodePartition) { try { writeLock.lock(); queueUsage.incUsed(nodePartition, resource); ++numContainers; CSQueueUtils.updateQueueStatistics(resourceCalculator, clusterResource, this, labelManager, nodePartition); } finally { writeLock.unlock(); } }
protected void releaseResource(Resource clusterResource, Resource resource, String nodePartition) { try { writeLock.lock(); queueUsage.decUsed(nodePartition, resource); CSQueueUtils.updateQueueStatistics(resourceCalculator, clusterResource, this, labelManager, nodePartition); --numContainers; } finally { writeLock.unlock(); } }
@Override public synchronized void updateClusterResource(Resource clusterResource, ResourceLimits resourceLimits) { // Update all children for (CSQueue childQueue : childQueues) { // Get ResourceLimits of child queue before assign containers ResourceLimits childLimits = getResourceLimitsOfChild(childQueue, clusterResource, resourceLimits); childQueue.updateClusterResource(clusterResource, childLimits); } // Update metrics CSQueueUtils.updateQueueStatistics( resourceCalculator, this, parent, clusterResource, minimumAllocation); }
@Override public synchronized void updateClusterResource(Resource clusterResource, ResourceLimits resourceLimits) { // Update all children for (CSQueue childQueue : childQueues) { // Get ResourceLimits of child queue before assign containers ResourceLimits childLimits = getResourceLimitsOfChild(childQueue, clusterResource, resourceLimits); childQueue.updateClusterResource(clusterResource, childLimits); } // Update metrics CSQueueUtils.updateQueueStatistics( resourceCalculator, this, parent, clusterResource, minimumAllocation); }
synchronized void allocateResource(Resource clusterResource, Resource resource, Set<String> nodeLabels) { // Update usedResources by labels if (nodeLabels == null || nodeLabels.isEmpty()) { queueUsage.incUsed(resource); } else { Set<String> anls = (accessibleLabels.contains(RMNodeLabelsManager.ANY)) ? labelManager.getClusterNodeLabels() : accessibleLabels; for (String label : Sets.intersection(anls, nodeLabels)) { queueUsage.incUsed(label, resource); } } ++numContainers; CSQueueUtils.updateQueueStatistics(resourceCalculator, this, getParent(), clusterResource, minimumAllocation); }
synchronized void allocateResource(Resource clusterResource, Resource resource, Set<String> nodeLabels) { // Update usedResources by labels if (nodeLabels == null || nodeLabels.isEmpty()) { queueUsage.incUsed(resource); } else { Set<String> anls = (accessibleLabels.contains(RMNodeLabelsManager.ANY)) ? labelManager.getClusterNodeLabels() : accessibleLabels; for (String label : Sets.intersection(anls, nodeLabels)) { queueUsage.incUsed(label, resource); } } ++numContainers; CSQueueUtils.updateQueueStatistics(resourceCalculator, this, getParent(), clusterResource, minimumAllocation); }
protected synchronized void releaseResource(Resource clusterResource, Resource resource, Set<String> nodeLabels) { // Update usedResources by labels if (null == nodeLabels || nodeLabels.isEmpty()) { queueUsage.decUsed(resource); } else { Set<String> anls = (accessibleLabels.contains(RMNodeLabelsManager.ANY)) ? labelManager.getClusterNodeLabels() : accessibleLabels; for (String label : Sets.intersection(anls, nodeLabels)) { queueUsage.decUsed(label, resource); } } CSQueueUtils.updateQueueStatistics(resourceCalculator, this, getParent(), clusterResource, minimumAllocation); --numContainers; }
protected synchronized void releaseResource(Resource clusterResource, Resource resource, Set<String> nodeLabels) { // Update usedResources by labels if (null == nodeLabels || nodeLabels.isEmpty()) { queueUsage.decUsed(resource); } else { Set<String> anls = (accessibleLabels.contains(RMNodeLabelsManager.ANY)) ? labelManager.getClusterNodeLabels() : accessibleLabels; for (String label : Sets.intersection(anls, nodeLabels)) { queueUsage.decUsed(label, resource); } } CSQueueUtils.updateQueueStatistics(resourceCalculator, this, getParent(), clusterResource, minimumAllocation); --numContainers; }
public void reinitializeFromTemplate(AutoCreatedLeafQueueConfig leafQueueTemplate) throws SchedulerDynamicEditException, IOException { try { writeLock.lock(); // TODO: // reinitialize only capacities for now since 0 capacity updates // can cause // abs capacity related config computations to be incorrect if we go // through reinitialize QueueCapacities capacities = leafQueueTemplate.getQueueCapacities(); //update abs capacities setupConfigurableCapacities(capacities); //reset capacities for the leaf queue mergeCapacities(capacities); //update queue used capacity for all the node labels CSQueueUtils.updateQueueStatistics(resourceCalculator, csContext.getClusterResource(), this, labelManager, null); //activate applications if any are pending activateApplications(); } finally { writeLock.unlock(); } }
@Override public void reinitialize(CSQueue newlyParsedQueue, Resource clusterResource) throws IOException { try { writeLock.lock(); // Sanity check if (!(newlyParsedQueue instanceof ReservationQueue) || !newlyParsedQueue .getQueuePath().equals(getQueuePath())) { throw new IOException( "Trying to reinitialize " + getQueuePath() + " from " + newlyParsedQueue.getQueuePath()); } super.reinitialize(newlyParsedQueue, clusterResource); CSQueueUtils.updateQueueStatistics(resourceCalculator, clusterResource, this, labelManager, null); updateQuotas(parent.getUserLimitForReservation(), parent.getUserLimitFactor(), parent.getMaxApplicationsForReservations(), parent.getMaxApplicationsPerUserForReservation()); } finally { writeLock.unlock(); } }
@Override public void updateClusterResource(Resource clusterResource, ResourceLimits resourceLimits) { try { writeLock.lock(); // Update effective capacity in all parent queue. Set<String> configuredNodelabels = csContext.getConfiguration() .getConfiguredNodeLabels(getQueuePath()); for (String label : configuredNodelabels) { calculateEffectiveResourcesAndCapacity(label, clusterResource); } // Update all children for (CSQueue childQueue : childQueues) { // Get ResourceLimits of child queue before assign containers ResourceLimits childLimits = getResourceLimitsOfChild(childQueue, clusterResource, resourceLimits.getLimit(), RMNodeLabelsManager.NO_LABEL); childQueue.updateClusterResource(clusterResource, childLimits); } CSQueueUtils.updateQueueStatistics(resourceCalculator, clusterResource, this, labelManager, null); } finally { writeLock.unlock(); } }
CSQueueUtils.updateQueueStatistics(resourceCalculator, clusterResource, this, labelManager, null);
CSQueueUtils.updateQueueStatistics(resourceCalculator, csContext.getClusterResource(), this, labelManager, nodeLabel);
@Override public synchronized void reinitialize(CSQueue newlyParsedQueue, Resource clusterResource) throws IOException { // Sanity check if (!(newlyParsedQueue instanceof ReservationQueue) || !newlyParsedQueue.getQueuePath().equals(getQueuePath())) { throw new IOException("Trying to reinitialize " + getQueuePath() + " from " + newlyParsedQueue.getQueuePath()); } super.reinitialize(newlyParsedQueue, clusterResource); CSQueueUtils.updateQueueStatistics( parent.schedulerContext.getResourceCalculator(), newlyParsedQueue, parent, parent.schedulerContext.getClusterResource(), parent.schedulerContext.getMinimumResourceCapability()); updateQuotas(parent.getUserLimitForReservation(), parent.getUserLimitFactor(), parent.getMaxApplicationsForReservations(), parent.getMaxApplicationsPerUserForReservation()); }
@Override public synchronized void updateClusterResource(Resource clusterResource, ResourceLimits currentResourceLimits) { updateCurrentResourceLimits(currentResourceLimits, clusterResource); lastClusterResource = clusterResource; updateAbsoluteCapacityResource(clusterResource); // Update headroom info based on new cluster resource value // absoluteMaxCapacity now, will be replaced with absoluteMaxAvailCapacity // during allocation setQueueResourceLimitsInfo(clusterResource); // Update metrics CSQueueUtils.updateQueueStatistics( resourceCalculator, this, getParent(), clusterResource, minimumAllocation); // queue metrics are updated, more resource may be available // activate the pending applications if possible activateApplications(); // Update application properties for (FiCaSchedulerApp application : activeApplications) { synchronized (application) { computeUserLimitAndSetHeadroom(application, clusterResource, Resources.none(), null); } } }
@Override public synchronized void reinitialize(CSQueue newlyParsedQueue, Resource clusterResource) throws IOException { // Sanity check if (!(newlyParsedQueue instanceof ReservationQueue) || !newlyParsedQueue.getQueuePath().equals(getQueuePath())) { throw new IOException("Trying to reinitialize " + getQueuePath() + " from " + newlyParsedQueue.getQueuePath()); } super.reinitialize(newlyParsedQueue, clusterResource); CSQueueUtils.updateQueueStatistics( parent.schedulerContext.getResourceCalculator(), newlyParsedQueue, parent, parent.schedulerContext.getClusterResource(), parent.schedulerContext.getMinimumResourceCapability()); updateQuotas(parent.getUserLimitForReservation(), parent.getUserLimitFactor(), parent.getMaxApplicationsForReservations(), parent.getMaxApplicationsPerUserForReservation()); }
@Override public synchronized void updateClusterResource(Resource clusterResource, ResourceLimits currentResourceLimits) { updateCurrentResourceLimits(currentResourceLimits, clusterResource); lastClusterResource = clusterResource; updateAbsoluteCapacityResource(clusterResource); // Update headroom info based on new cluster resource value // absoluteMaxCapacity now, will be replaced with absoluteMaxAvailCapacity // during allocation setQueueResourceLimitsInfo(clusterResource); // Update metrics CSQueueUtils.updateQueueStatistics( resourceCalculator, this, getParent(), clusterResource, minimumAllocation); // queue metrics are updated, more resource may be available // activate the pending applications if possible activateApplications(); // Update application properties for (FiCaSchedulerApp application : activeApplications) { synchronized (application) { computeUserLimitAndSetHeadroom(application, clusterResource, Resources.none(), null); } } }
CSQueueUtils.updateQueueStatistics( resourceCalculator, this, parent, clusterResource, minimumAllocation);
CSQueueUtils.updateQueueStatistics( resourceCalculator, this, parent, clusterResource, minimumAllocation);
CSQueueUtils.updateQueueStatistics(resourceCalculator, clusterResource, this, labelManager, null);