You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Jian He (JIRA)" <ji...@apache.org> on 2016/10/18 18:10:00 UTC
[jira] [Issue Comment Deleted] (YARN-5716) Add global scheduler
interface definition and update CapacityScheduler to use it.
[ https://issues.apache.org/jira/browse/YARN-5716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jian He updated YARN-5716:
--------------------------
Comment: was deleted
(was: - Fix unnecessary format changes in CapacityScheduler
- Below null check is unnecessary
{code}
RMContainer fromReservedContainer = null;
if (allocation.getAllocateFromReservedContainer() != null) {
fromReservedContainer =
allocation.getAllocateFromReservedContainer()
.getRmContainer();
}
{code}
- This seems inconsistent with following code which will not add reserved resource back.
{code}
// Do we have enough space on this node?
Resource availableResource = Resources.clone(
schedulerContainer.getSchedulerNode().getUnallocatedResource());
if (allocation.getAllocateFromReservedContainer() != null) {
Resources.addTo(availableResource,
allocation.getAllocateFromReservedContainer()
.getRmContainer().getReservedResource());
}
{code}
- may be we can check {{anythingAllocatedOrReserved}} and {{getAllocateFromReservedContainer}} outside of accept so that they do need to be checked for every queue in the path.
{code}
boolean accepted = true;
if (!reReservation) {
// Check parent
accepted = getCSLeafQueue().accept(cluster, request);
}
{code}
- should these methods be synchronized for consistency
{code}
public void incUnconfirmedRes(Resource res) {
unconfirmedAllocatedMem.addAndGet(res.getMemorySize());
unconfirmedAllocatedVcores.addAndGet(res.getVirtualCores());
}
public void decUnconfirmedRes(Resource res) {
unconfirmedAllocatedMem.addAndGet(-res.getMemorySize());
unconfirmedAllocatedVcores.addAndGet(-res.getVirtualCores());
}
{code}
- Too many data structures which wrapps container related info with similar names: CSAssignment, ContainerAllocation, ContainerAllocationContext, SchedulerContainer.. could you consolidate these ?
- SchedulingPlacementSet has a bunch unused methods and introduced unused class ResourceRequestUpdateResult, can we add them when needed ?
- rename allocationResult.updatedContainer properly ? or add comments to what this field is used for
- Add comments to what preCheckForPlacementSet does
- preCheckForSingleNode -> checkIfNodeBlackListed
- change getFinishedStatus to isCompleted
- I think this needs to be done in accept ?
{code}
// Inform the application it is about to get a scheduling opportunity
// TODO, we may need to revisit here to see if we should add scheduling
// opportunity here
application.addSchedulingOpportunity(schedulerKey);
{code}
- FiCaSchedulerApp#toBeRemovedIncRequests, why is this field moved to this class ? now the toBeRemovedIncRequests will be removed on allocate API only )
> Add global scheduler interface definition and update CapacityScheduler to use it.
> ---------------------------------------------------------------------------------
>
> Key: YARN-5716
> URL: https://issues.apache.org/jira/browse/YARN-5716
> Project: Hadoop YARN
> Issue Type: Sub-task
> Reporter: Wangda Tan
> Assignee: Wangda Tan
> Attachments: YARN-5716.001.patch, YARN-5716.002.patch
>
>
> Target of this JIRA:
> - Definition of interfaces / objects which will be used by global scheduling, this will be shared by different schedulers.
> - Modify CapacityScheduler to use it.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org