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

Konstantinos Karanasos commented on YARN-7437:
----------------------------------------------

Thanks for starting this, [~leftnoteasy].

Given that we are at it, I think the {{PlacementSet}} class is confusing too, 
both because it is essentially an iterator over multiple nodes and because it 
has very similar name with {{SchedulingPlacementSet}} although they do 
something very different.

So, let's see what is the current functionality first -- correct me if I am 
wrong.
There is one {{SchedulingPlacementSet}} per application, storing the 
outstanding resource/scheduling requests. This class is also doing the 
allocation, given a particular node. So, in the current implementation, we do 
locality, thus we have the allocateNodeLocal, rackLocal, etc.
At the same time, I see the {{getPreferredNodeIterator()}}, which is capable of 
getting a list of nodes instead of a single node. As we discussed, this is 
currently being used with a single node.
[offtopic: BTW (not for this JIRA that is about renaming, but since I am 
looking at this code), I don't see why we call the getPreferredNodeIterator 
outside the SchedulingPlacementSet, I would expect this logic to happen within 
the SchedulingPlacementSet. As in, you give it multiple nodes, and then it 
decides what is the right one, based on its implementation. For example, you 
have locality placement, you give it a bunch of nodes, then internally the 
SchedulingPlacementSet decides which is the best of these nodes to use for each 
outstanding request. It does not matter /offtopic]

So, on the renaming:
- I think we should rename the {{SchedulingSet}} to something like 
{{CandidateNodeSet}}, or anything that has {{NodeSet}} or {{NodeSetIterator}} 
in it.
- For the {{SchedulingPlacementSet}}, I think we should have in the name 
something about the {{App}}, like {{AppPlacementXYZ}} or {{AppSchedulingXYZ}}, 
where XYZ can be Strategy, although it is not just a strategy, because it does 
the accounting for outstanding requests too.


> Give SchedulingPlacementSet to a better name.
> ---------------------------------------------
>
>                 Key: YARN-7437
>                 URL: https://issues.apache.org/jira/browse/YARN-7437
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Wangda Tan
>            Assignee: Wangda Tan
>            Priority: Major
>
> Currently, the SchedulingPlacementSet is very confusing. Here're its 
> responsibilities:
> 1) Store ResourceRequests. (Or SchedulingRequest after YARN-6592).
> 2) Decide order of nodes to allocate when there're multiple node candidates.
> 3) Decide if we should reject node for given requests.
> 4) Store any states/cache can help make decision for #2/#3



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to