[ https://issues.apache.org/jira/browse/YARN-1197?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13846075#comment-13846075 ]
Bikas Saha commented on YARN-1197: ---------------------------------- I am afraid we seem to mixing things over here. This jira deals with the issue of increasing and decreasing the resources of an allocated container. There are clear use cases for it like mentioned in previous comments on this jira. e.g. having a long running worker daemon increase and decrease its resources depending on load. We have already discussed at length on this jira on how increasing a container resource is internally no different than requesting for an additional container and merging it with an existing container. However the new container followed by merge is way more complicated for the user and adds additional complexity to the system (eg how to deal with the new container that was merged into the old one). This complexity is in addition to the common work with simply increasing resources on a given container. wrt the user, asking for a container and being able to increase its resources will give the same effect as asking for many containers and merging them. The scenario for YARN-1488 is logically different. That covers the case when an app wants to use a shared service and purchases that service by transferring its own container resource to that shared service that itself is running inside YARN. The consumer app may never need to increase its own container resource. Secondly, the shared service is not requesting an increase in its own container resources. So this jira does not come into the picture at all. I believe we have a clear and cleanly separated piece of useful functionality being implemented in this jira. We should go ahead and bring this work to completion and facilitate the creation of long running services in YARN. wrt doing this in a branch. There are new API's being added here for which functionality does not exist or is not supported yet. And none of that code will get executed until clients actually support doing it or someone writes code against it. So I dont think that any of this is going to destabilize the code base. I agree that the scheduler changes are going to be complicated. We can do them in the end when all the plumbing is in place and they could be separate jiras for each scheduler. Of course, schedulers would want their own flags to turn this on/off. So its not clear to me what benefits a branch would bring here but it would entail the overhead of maintenance and lack of test automation. Does this mean that every feature addition to YARN needs to be done in a branch? I propose we do this work in trunk and later merge it into branch-2 when we are satisfied with its stability. > Support changing resources of an allocated container > ---------------------------------------------------- > > Key: YARN-1197 > URL: https://issues.apache.org/jira/browse/YARN-1197 > Project: Hadoop YARN > Issue Type: Task > Components: api, nodemanager, resourcemanager > Affects Versions: 2.1.0-beta > Reporter: Wangda Tan > Assignee: Wangda Tan > Attachments: mapreduce-project.patch.ver.1, > tools-project.patch.ver.1, yarn-1197-v2.pdf, yarn-1197-v3.pdf, > yarn-1197-v4.pdf, yarn-1197-v5.pdf, yarn-1197.pdf, > yarn-api-protocol.patch.ver.1, yarn-pb-impl.patch.ver.1, > yarn-server-common.patch.ver.1, yarn-server-nodemanager.patch.ver.1, > yarn-server-resourcemanager.patch.ver.1 > > > The current YARN resource management logic assumes resource allocated to a > container is fixed during the lifetime of it. When users want to change a > resource > of an allocated container the only way is releasing it and allocating a new > container with expected size. > Allowing run-time changing resources of an allocated container will give us > better control of resource usage in application side -- This message was sent by Atlassian JIRA (v6.1.4#6159)