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

Eric Yang commented on YARN-7217:
---------------------------------

[~gsaha] 

{quote}
What do you mean by it does not increase the count? Are you saying there is a 
bug in the code, or are you saying that it should not increase container count?
{quote}

There is a bug in the code.

{quote}
Modifying service config for a service in STOPPED state is not supported via 
the REST API. It is supported in classic Slider though. Are you saying you want 
to support this in REST API?
{quote}

Yes, pause application should be supported in the REST API.  It is a valid use 
case to allow pause of the application by running slider stop, and resume the 
application later with a different YARN application ID,andt brand new set of 
containers.

{quote}
Do you intend to support GET for /ws/v1/services/[service_name]/spec as well? 
If yes, then for a STARTED app, what will GET return - the spec corresponding 
to the current snapshot of the running app OR the saved spec which might be 
more recent and has not been reflected to the running state yet? For STOPPED 
app this is not a problem.
{quote}

Yes, GET is also implemented in the current patch.  I incorporated patch for 
YARN-7216 in this patch to reduce logistic work.

{quote}
Also, the patch contains solr specific changes and cannot be reviewed in its 
current state.
{quote}

The patch allows the configuration to be stored in Solr for faster search and 
retrieval time.  There is a on/off flag to use Slor as backend.  When solr 
storage backend is disabled (default), it will look for spec in HDFS.

> PUT method for update service for Service API doesn't function correctly
> ------------------------------------------------------------------------
>
>                 Key: YARN-7217
>                 URL: https://issues.apache.org/jira/browse/YARN-7217
>             Project: Hadoop YARN
>          Issue Type: Task
>          Components: api, applications
>            Reporter: Eric Yang
>            Assignee: Eric Yang
>         Attachments: YARN-7217.yarn-native-services.001.patch
>
>
> The PUT method for updateService API provides multiple functions:
> # Stopping a service.
> # Start a service.
> # Increase or decrease number of containers.
> The overloading is buggy depending on how the configuration should be applied.
> Scenario 1
> A user retrieves Service object from getService call, and the Service object 
> contains state: STARTED.  The user would like to increase number of 
> containers for the deployed service.  The JSON has been updated to increase 
> container count.  The PUT method does not actually increase container count.
> Scenario 2
> A user retrieves Service object from getService call, and the Service object 
> contains state: STOPPED.  The user would like to make a environment 
> configuration change.  The configuration does not get updated after PUT 
> method.
> This is possible to address by rearranging the logic of START/STOP after 
> configuration update.  However, there are other potential combinations that 
> can break PUT method.  For example, user like to make configuration changes, 
> but not yet restart the service until a later time.
> The alternative is to separate the PUT method into PUT method for 
> configuration vs status.  This increase the number of action that can be 
> performed.  New API could look like:
> {code}
> @PUT
> /ws/v1/services/[service_name]/config
> Request Data:
> {
>   "name":"[service_name]",
>   "number_of_containers": 5
> }
> {code}
> {code}
> @PUT
> /ws/v1/services/[service_name]/state
> Request data:
> {
>   "name": "[service_name]",
>   "state": "STOPPED|STARTED"
> }
> {code}



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

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

Reply via email to