[
https://issues.apache.org/jira/browse/YARN-7522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16278945#comment-16278945
]
Wangda Tan commented on YARN-7522:
----------------------------------
Thanks [~kkaranasos] for your comments, addressed most of your comments, see
below.
bq. Should we start the tags manager in all cases or should we have a parameter
for enabling the whole thing for the first version, given it will add some load
to the RM?
I would prefer to enable it by default, in performance's perspective, it will
be called twice for every container, I think it should be acceptable. I tend to
not introduce too many knobs which complex how people use this feature.
bq. The current getCardinality() tries to somehow impose constraints and at the
same time check cardinalities ... I would rather have a method that for a set
of tags returns a set of their cardinalities so that my scheduler has the
flexibility to decide what to do with them.
I'm completely aware of merits of your proposal. However, returning set of
cardinalities needs an additional copy of the data structure. I'd prefer to
push this and do it if it is really needed.
bq. I would add one more getCardinality method that gets a single string tag
and no binary operator just for simplicity.
Done.
bq. It might be useful to have an exists method for a tag. Like checking
without the exact cardinality whether this tag exists.
Done.
bq. In getCardinality, what is the else doing when the specified tags are null
or empty?
When tags are null/empty, all tags exist on the node will be considered, just
like passing in a wildcard.
bq. In RMContainerImpl, the TODO for setting the allocation tags should be part
of this JIRA, right?
No, the TODO needs to be done when we finish allocating container from
SchedulingRequest from scheduler and scheduler set tags to RMContainer.
bq. We probably need to clean up the tags of all containers of an app when the
app finishes too. Will the current code path take care of this even in cases of
app failures etc.?
I think so. This should be enough to cover RMContainer related updates,
however, for latest proposal from Arun (see below), we need an external module
to handle the update separately.
bq. We should define a namespace for the appID, so that we can easily retrieve
it. Like appID: and then the actual ID.
Done.
bq. In the PlacementConstraint(s) classes, we call the tags "allocation tags",
so I suggest to rename the corresponding classes in this JIRA to AllocationTags
instead of PlacementTags too.
Done.
bq. You can just have a boolean instead of the numValues in the getCardinality.
Done.
bq. Why do we need the ImmutableSet in the add/removeContainer?
Done, added single tag method to avoid creating ImmutableSet.
bq. In the removeTagsFromNode(), let's add some warn messages in case the node
was not found or the count is already 0. It will help to catch bugs.
Done.
Thanks [~asuresh],
bq. Essentially, we need to simply be able to add/remove a tag to a node to
allow the scheduler/planning system to keep track of node to tag mappings
during intermediate processing as well.
Since AllocationTagsManager is a separate module and accessible from RMContext,
it should be capable to support the use case you mentioned. However, the
planning system needs to cleanup tags from external.
> Add application tags manager implementation
> -------------------------------------------
>
> Key: YARN-7522
> URL: https://issues.apache.org/jira/browse/YARN-7522
> Project: Hadoop YARN
> Issue Type: Sub-task
> Reporter: Wangda Tan
> Assignee: Wangda Tan
> Attachments: YARN-7522.YARN-6592.002.patch,
> YARN-7522.YARN-6592.003.patch, YARN-7522.YARN-6592.004.patch,
> YARN-7522.YARN-6592.wip-001.patch
>
>
> This is different from YARN-6596, YARN-6596 is targeted to add constraint
> manager to store intra/inter application placement constraints. This JIRA is
> targeted to support storing maps between container-tags/applications and
> nodes. This will be required by affinity/anti-affinity implementation and
> cardinality.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]