public void decUsed(Resource res) { decUsed(NL, res); }
public void decUsed(Resource res) { decUsed(NL, res); }
public void decUsed(Resource res) { decUsed(NL, res); }
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(); } }
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 removeRMContainer(ContainerId containerId) { try { writeLock.lock(); RMContainer rmContainer = liveContainers.remove(containerId); if (rmContainer != null) { if (rmContainer.getExecutionType() == ExecutionType.OPPORTUNISTIC) { this.attemptOpportunisticResourceUsage .decUsed(rmContainer.getAllocatedResource()); } if (rmContainer.isRemotelyAllocated()) { this.attemptResourceUsageAllocatedRemotely .decUsed(rmContainer.getAllocatedResource()); } } } finally { writeLock.unlock(); } }
private void updateResourceUsagePerUser(User user, Resource resource, String nodePartition, boolean isAllocate) { ResourceUsage totalResourceUsageForUsers = getTotalResourceUsagePerUser( user.userName); if (isAllocate) { user.getResourceUsage().incUsed(nodePartition, resource); totalResourceUsageForUsers.incUsed(nodePartition, resource); } else { user.getResourceUsage().decUsed(nodePartition, resource); totalResourceUsageForUsers.decUsed(nodePartition, resource); } if (LOG.isDebugEnabled()) { LOG.debug( "User resource is updated." + "Total Resource usage for active users=" + totalResUsageForActiveUsers.getAllUsed() + "." + "Total Resource usage for non-active users=" + totalResUsageForNonActiveUsers.getAllUsed()); } }
totalResUsageForNonActiveUsers.decUsed(partition, resourceUsage.getUsed(partition)); totalResUsageForActiveUsers.incUsed(partition,
totalResUsageForActiveUsers.decUsed(partition, resourceUsage.getUsed(partition)); totalResUsageForNonActiveUsers.incUsed(partition,
@Override public void decUsedResource(String nodeLabel, Resource resourceToDec, SchedulerApplicationAttempt application) { if (nodeLabel == null) { nodeLabel = RMNodeLabelsManager.NO_LABEL; } // ResourceUsage has its own lock, no addition lock needs here. queueUsage.decUsed(nodeLabel, resourceToDec); CSQueueUtils.updateUsedCapacity(resourceCalculator, labelManager.getResourceByLabel(nodeLabel, Resources.none()), nodeLabel, this); if (null != parent) { parent.decUsedResource(nodeLabel, resourceToDec, null); } }
public boolean containerCompleted(RMContainer rmContainer, ContainerStatus containerStatus, RMContainerEventType event, String partition) { try { writeLock.lock(); ContainerId containerId = rmContainer.getContainerId(); // Remove from the list of containers if (null == liveContainers.remove(containerId)) { return false; } // Remove from the list of newly allocated containers if found newlyAllocatedContainers.remove(rmContainer); // Inform the container rmContainer.handle( new RMContainerFinishedEvent(containerId, containerStatus, event)); containersToPreempt.remove(containerId); Resource containerResource = rmContainer.getContainer().getResource(); RMAuditLogger.logSuccess(getUser(), AuditConstants.RELEASE_CONTAINER, "SchedulerApp", getApplicationId(), containerId, containerResource); // Update usage metrics queue.getMetrics().releaseResources(partition, getUser(), 1, containerResource); attemptResourceUsage.decUsed(partition, containerResource); // Clear resource utilization metrics cache. lastMemoryAggregateAllocationUpdateTime = -1; return true; } finally { writeLock.unlock(); } }
rmContainer.getNodeLabelExpression(), getUser(), 1, containerResource); this.attemptResourceUsage.decUsed(containerResource); getQueue().decUsedResource(containerResource);
public void nodePartitionUpdated(RMContainer rmContainer, String oldPartition, String newPartition) { Resource containerResource = rmContainer.getAllocatedResource(); this.attemptResourceUsage.decUsed(oldPartition, containerResource); this.attemptResourceUsage.incUsed(newPartition, containerResource); getCSLeafQueue().decUsedResource(oldPartition, containerResource, this); getCSLeafQueue().incUsedResource(newPartition, containerResource, this); // Update new partition name if container is AM and also update AM resource if (rmContainer.isAMContainer()) { setAppAMNodePartitionName(newPartition); this.attemptResourceUsage.decAMUsed(oldPartition, containerResource); this.attemptResourceUsage.incAMUsed(newPartition, containerResource); getCSLeafQueue().decAMUsedResource(oldPartition, containerResource, this); getCSLeafQueue().incAMUsedResource(newPartition, containerResource, this); } }