hadoop-yarn-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Arun Suresh (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (YARN-7613) Implement Planning algorithms for rich placement
Date Sat, 23 Dec 2017 17:57:00 GMT

    [ https://issues.apache.org/jira/browse/YARN-7613?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16302521#comment-16302521
] 

Arun Suresh edited comment on YARN-7613 at 12/23/17 5:56 PM:
-------------------------------------------------------------

Thanks for the patch [~pgaref]

Couple of comments:
* It looks like the temporary tags might be a common requirement for all / most algorithms.
I propose we modify the place() method to pass in a temp Tags manager. In the placementDispacher,
where we call the place method, we can create a temp tagsmanager and pass it to the algorithm
- maybe call it a 'scratch' tags manager. Maybe, this can be a subclass of the TagsManager
which just exposes an addTempTag and removeTempTag. I also noticed in the TagsManager, that
we don't really need both the containerId and applicationId to be passed into the addContainer
method. since the applicationId is derivable from the containerId. Also, the containerId is
not exactly used in the method (we can fix this in another JIRA).
* So I think we should keep the canAssign, private (or maybe have a util class that exposes
a static canAssign that takes the containerManager, tagsManager, request, applicationId etc
and returns boolean). The Algorithm, IMO, should expose only a single method in its interface.
I am also thinking maybe we remove the init method also. and pass an AlgorithmContext in the
place method, that encapsulates the TagsManager, ConstraintManager, the scratch TagsManager
and the NodeCandidateSelector. Thoughts ?



was (Author: asuresh):
Thanks for the patch [~pgaref]

Couple of comments:
* It looks like the temporary tags for the might be a common requirement for all / most algorithms.
I propose we modify the place() method to pass in a temp Tags manager. In the placementDispacher,
where we call the place method, we can create a temp tagsmanager and pass it to the algorithm
- maybe call it a 'scratch' tags manager. Maybe, this can be a subclass of the TagsManager
which just exposes an addTempTag and removeTempTag. I also noticed in the TagsManager, that
we don't really need both the containerId and applicationId to be passed into the addContainer
method. since the applicationId is derivable from the containerId. Also, the containerId is
not exactly used in the method (we can fix this in another JIRA).
* So I think we should keep the canAssign, private (or maybe have a util class that exposes
a static canAssign that takes the containerManager, tagsManager, request, applicationId etc
and returns boolean). The Algorithm, IMO, should expose only a single method in its interface.
I am also thinking maybe we remove the init method also. and pass an AlgorithmContext in the
place method, that encapsulates the TagsManager, ConstraintManager, the scratch TagsManager
and the NodeCandidateSelector. Thoughts ?


> Implement Planning algorithms for rich placement
> ------------------------------------------------
>
>                 Key: YARN-7613
>                 URL: https://issues.apache.org/jira/browse/YARN-7613
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Arun Suresh
>            Assignee: Panagiotis Garefalakis
>         Attachments: YARN-7613.wip.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org


Mime
View raw message