[jira] [Comment Edited] (YARN-8298) Yarn Service Upgrade: Support express upgrade of a service

2018-08-20 Thread Chandni Singh (JIRA)


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

Chandni Singh edited comment on YARN-8298 at 8/20/18 6:29 PM:
--

[~eyang] Supporting orchestration of upgrade by ServiceMaster requires much 
more work and is blocked by https://issues.apache.org/jira/browse/YARN-8665

There is another major problem with express upgrade. The instances of a single 
component should also be done one by one (rolling fashion). Otherwise, upgrade 
can cause disruption in component availability. One of the main reasons behind 
upgrade is that service is not disrupted. However if we upgrade all the 
instances in parallel, then failure in upgrade causes disruption.

There are 2 ways to proceed:
1. Support canceling upgrade first 
https://issues.apache.org/jira/browse/YARN-8665 and then re-work this jira
2. We merge this way of express upgrade where all instances are upgraded in 
parallel. It is a convenient way for dev testing. Work on YARN-8665 and then 
modify express upgrade.

I am fine with either way. 


was (Author: csingh):
[~eyang] Supporting orchestration of upgrade by ServiceMaster requires much 
more work and is blocked by https://issues.apache.org/jira/browse/YARN-8665

There is another major problem with express upgrade. The instances of a single 
component should also be done one by one (rolling fashion). Otherwise, upgrade 
can cause disruption in component availability. One of the main reasons behind 
upgrade is that service is not disrupted. However if we upgrade all the 
instances in parallel, then failure in upgrade causes disruption.

There are 2 ways to proceed:
1. Support canceling upgrade first 
https://issues.apache.org/jira/browse/YARN-8665 and then re-work this jira
2. We merge this way of express upgrade where all instances are upgraded in 
parallel. It is a convenient way for dev testing.

I am fine with either way. 

> Yarn Service Upgrade: Support express upgrade of a service
> --
>
> Key: YARN-8298
> URL: https://issues.apache.org/jira/browse/YARN-8298
> Project: Hadoop YARN
>  Issue Type: Sub-task
>Affects Versions: 3.1.1
>Reporter: Chandni Singh
>Assignee: Chandni Singh
>Priority: Major
> Attachments: YARN-8298.001.patch, YARN-8298.002.patch, 
> YARN-8298.003.patch
>
>
> Currently service upgrade involves 2 steps
>  * initiate upgrade by providing new spec
>  * trigger upgrade of each instance/component
>  
> We need to add the ability to upgrade the service in one shot:
>  # Aborting the upgrade will not be supported
>  # Upgrade finalization will be done automatically.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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



[jira] [Comment Edited] (YARN-8298) Yarn Service Upgrade: Support express upgrade of a service

2018-08-20 Thread Chandni Singh (JIRA)


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

Chandni Singh edited comment on YARN-8298 at 8/20/18 6:02 PM:
--

[~eyang] Please see

{quote}
actionUpgradeExpress computes components order before calling backend. The 
logic is to upgrade component by component. Instance order is irrelevant within 
a component in this design. I think this match up fine with how we upgrade 
services today in Hadoop software.
{quote}
The code which you pasted does not  seem to upgrade component by component. 
1. The below line finds all the containers that will be sent to AM for upgrades
{code:java}
containersToUpgrade = ServiceApiUtil
  .validateAndResolveCompsUpgrade(persistedService, components);
{code}
 2.  The below request is sent to AM and the AM issues event to upgrade all the 
instances
{code}
CompInstancesUpgradeRequestProto.Builder upgradeRequestBuilder =
CompInstancesUpgradeRequestProto.newBuilder();
   upgradeRequestBuilder.addAllContainerIds(containerIdsToUpgrade);
{code}
Instances are processing these events asynchronously, so all the instances will 
get upgraded without any order guarantees

Having to upgrade component by component based on dependencies could only be 
supported if we have support for canceling the upgrade when there is any 
failure. Also in case the upgrade is cancelled, we need a way for the user to 
check the status of the upgrade.


was (Author: csingh):
[~eyang] Please see

{quote}
actionUpgradeExpress computes components order before calling backend. The 
logic is to upgrade component by component. Instance order is irrelevant within 
a component in this design. I think this match up fine with how we upgrade 
services today in Hadoop software.
{quote}
The code which you pasted does not  seem to upgrade component by component. 
1. The below line finds all the containers that will be sent to AM for upgrades
{code:java}
containersToUpgrade = ServiceApiUtil
  .validateAndResolveCompsUpgrade(persistedService, components);
{code}
 2.  The below request is sent to AM and the AM issues event to upgrade all the 
instances
{code}
CompInstancesUpgradeRequestProto.Builder upgradeRequestBuilder =
CompInstancesUpgradeRequestProto.newBuilder();
   upgradeRequestBuilder.addAllContainerIds(containerIdsToUpgrade);
{code}
Instances are processing these events asynchronously, so all the instances will 
get upgraded without any order guarantees

Having to upgrade component by component could only be supported if we have 
support for canceling the upgrade when there is any failure. Also in case the 
upgrade is cancelled, we need a way for the user to check the status of the 
upgrade.

> Yarn Service Upgrade: Support express upgrade of a service
> --
>
> Key: YARN-8298
> URL: https://issues.apache.org/jira/browse/YARN-8298
> Project: Hadoop YARN
>  Issue Type: Sub-task
>Affects Versions: 3.1.1
>Reporter: Chandni Singh
>Assignee: Chandni Singh
>Priority: Major
> Attachments: YARN-8298.001.patch, YARN-8298.002.patch, 
> YARN-8298.003.patch
>
>
> Currently service upgrade involves 2 steps
>  * initiate upgrade by providing new spec
>  * trigger upgrade of each instance/component
>  
> We need to add the ability to upgrade the service in one shot:
>  # Aborting the upgrade will not be supported
>  # Upgrade finalization will be done automatically.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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



[jira] [Comment Edited] (YARN-8298) Yarn Service Upgrade: Support express upgrade of a service

2018-08-20 Thread Chandni Singh (JIRA)


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

Chandni Singh edited comment on YARN-8298 at 8/20/18 4:45 PM:
--

[~eyang] Please see

{quote}
actionUpgradeExpress computes components order before calling backend. The 
logic is to upgrade component by component. Instance order is irrelevant within 
a component in this design. I think this match up fine with how we upgrade 
services today in Hadoop software.
{quote}
The code which you pasted does not  seem to upgrade component by component. 
1. The below line finds all the containers that will be sent to AM for upgrades
{code:java}
containersToUpgrade = ServiceApiUtil
  .validateAndResolveCompsUpgrade(persistedService, components);
{code}
 2.  The below request is sent to AM and the AM issues event to upgrade all the 
instances
{code}
CompInstancesUpgradeRequestProto.Builder upgradeRequestBuilder =
CompInstancesUpgradeRequestProto.newBuilder();
   upgradeRequestBuilder.addAllContainerIds(containerIdsToUpgrade);
{code}
Instances are processing these events asynchronously, so all the instances will 
get upgraded without any order guarantees

Having to upgrade component by component could only be supported if we have 
support for canceling the upgrade when there is any failure. Also in case the 
upgrade is cancelled, we need a way for the user to check the status of the 
upgrade.


was (Author: csingh):
[~eyang] Please see

{quote}
actionUpgradeExpress computes components order before calling backend. The 
logic is to upgrade component by component. Instance order is irrelevant within 
a component in this design. I think this match up fine with how we upgrade 
services today in Hadoop software.
{quote}
The code which you pasted does not  seem to upgrade component by component. 
1. The below line finds all the containers that will be sent to AM for upgrades
{code:java}
containersToUpgrade = ServiceApiUtil
  .validateAndResolveCompsUpgrade(persistedService, components);
{code}
 2.  The below request is sent to AM and the AM issues event to upgrade all the 
instances
{code}
CompInstancesUpgradeRequestProto.Builder upgradeRequestBuilder =
CompInstancesUpgradeRequestProto.newBuilder();
   upgradeRequestBuilder.addAllContainerIds(containerIdsToUpgrade);
{code}

Having to upgrade component by component could only be supported if we have 
support for canceling the upgrade when there is any failure. Also in case the 
upgrade is cancelled, we need a way for the user to check the status of the 
upgrade.

> Yarn Service Upgrade: Support express upgrade of a service
> --
>
> Key: YARN-8298
> URL: https://issues.apache.org/jira/browse/YARN-8298
> Project: Hadoop YARN
>  Issue Type: Sub-task
>Affects Versions: 3.1.1
>Reporter: Chandni Singh
>Assignee: Chandni Singh
>Priority: Major
> Attachments: YARN-8298.001.patch, YARN-8298.002.patch, 
> YARN-8298.003.patch
>
>
> Currently service upgrade involves 2 steps
>  * initiate upgrade by providing new spec
>  * trigger upgrade of each instance/component
>  
> We need to add the ability to upgrade the service in one shot:
>  # Aborting the upgrade will not be supported
>  # Upgrade finalization will be done automatically.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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



[jira] [Comment Edited] (YARN-8298) Yarn Service Upgrade: Support express upgrade of a service

2018-08-20 Thread Chandni Singh (JIRA)


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

Chandni Singh edited comment on YARN-8298 at 8/20/18 4:30 PM:
--

[~eyang] 

Even though the patch 2 referenced resolveCompsDependency, it wasn't being used 
to orchestrate upgrade of comp instances in any way.

 If we need to orchestrate upgrade of instances based on component dependency, 
it requires the support to cancel the current upgrade. For, example if upgrade 
of compA fails, then compB upgrade will not be triggered as well. 


was (Author: csingh):
[~eyang] 

Even though the patch 2 referenced resolveCompsDependency, it wasn't being used 
to orchestrate upgrade of comp instances in any way.

 

> Yarn Service Upgrade: Support express upgrade of a service
> --
>
> Key: YARN-8298
> URL: https://issues.apache.org/jira/browse/YARN-8298
> Project: Hadoop YARN
>  Issue Type: Sub-task
>Affects Versions: 3.1.1
>Reporter: Chandni Singh
>Assignee: Chandni Singh
>Priority: Major
> Attachments: YARN-8298.001.patch, YARN-8298.002.patch, 
> YARN-8298.003.patch
>
>
> Currently service upgrade involves 2 steps
>  * initiate upgrade by providing new spec
>  * trigger upgrade of each instance/component
>  
> We need to add the ability to upgrade the service in one shot:
>  # Aborting the upgrade will not be supported
>  # Upgrade finalization will be done automatically.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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



[jira] [Comment Edited] (YARN-8298) Yarn Service Upgrade: Support express upgrade of a service

2018-08-08 Thread Chandni Singh (JIRA)


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

Chandni Singh edited comment on YARN-8298 at 8/8/18 7:31 PM:
-

[~eyang] Thanks for working on this.
Why does {{ServiceState.UPGRADING_AUTO_FINALIZE}} trigger express upgrade?
Please refer to the design document in YARN-7512. 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} is to trigger automatic finalization 
of service upgrade. It isn't specific to express upgrade of the service. 

It will be useful to not club ServiceState.UPGRADING_AUTO_FINALIZE with express 
upgrade. They have different meanings. A user may want auto-finalization 
without  express upgrade. There isn't any technical complexity in supporting 
both independently as well.
 
If you require a flag to trigger express upgrade, why not add a query param to 
update service endpoint?
If the ServiceState = {{ServiceState.UPGRADING}} or 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} and 
the query param expressUpgrade = true, then perform express upgrade.



was (Author: csingh):
[~eyang] Thanks for working on this.
Why does {{ServiceState.UPGRADING_AUTO_FINALIZE}} trigger express upgrade?
Please refer to the design document in YARN-7512. 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} is to trigger automatic finalization 
of service upgrade. It isn't for express upgrade of the service. 

It will be useful to not club ServiceState.UPGRADING_AUTO_FINALIZE with express 
upgrade. They have different meanings. A user may want auto-finalization 
without  express upgrade. There isn't any technical complexity in supporting 
both independently as well.
 
If you require a flag to trigger express upgrade, why not add a query param to 
update service endpoint?
If the ServiceState = {{ServiceState.UPGRADING}} or 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} and 
the query param expressUpgrade = true, then perform express upgrade.


> Yarn Service Upgrade: Support express upgrade of a service
> --
>
> Key: YARN-8298
> URL: https://issues.apache.org/jira/browse/YARN-8298
> Project: Hadoop YARN
>  Issue Type: Sub-task
>Affects Versions: 3.1.1
>Reporter: Chandni Singh
>Assignee: Eric Yang
>Priority: Major
> Attachments: YARN-8298.001.patch, YARN-8298.002.patch
>
>
> Currently service upgrade involves 2 steps
>  * initiate upgrade by providing new spec
>  * trigger upgrade of each instance/component
>  
> We need to add the ability to upgrade the service in one shot:
>  # Aborting the upgrade will not be supported
>  # Upgrade finalization will be done automatically.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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



[jira] [Comment Edited] (YARN-8298) Yarn Service Upgrade: Support express upgrade of a service

2018-08-08 Thread Chandni Singh (JIRA)


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

Chandni Singh edited comment on YARN-8298 at 8/8/18 7:03 PM:
-

[~eyang] Thanks for working on this.
Why does {{ServiceState.UPGRADING_AUTO_FINALIZE}} trigger express upgrade?
Please refer to the design document in YARN-7512. 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} is to trigger automatic finalization 
of service upgrade. It isn't for express upgrade of the service. 

It will be useful to not club ServiceState.UPGRADING_AUTO_FINALIZE with express 
upgrade. They have different meanings. A user may want auto-finalization 
without  express upgrade. There isn't any technical complexity in supporting 
both independently as well.
 
If you require a flag to trigger express upgrade, why not add a query param to 
update service endpoint?
If the ServiceState = {{ServiceState.UPGRADING}} or 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} and 
the query param expressUpgrade = true, then perform express upgrade.



was (Author: csingh):
[~eyang] Thanks for working on this.
Why does {{ServiceState.UPGRADING_AUTO_FINALIZE}} trigger express upgrade?
Please refer to the design document in YARN-7512. 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} is to trigger automatic finalization 
of service upgrade. It isn't for express upgrade of the service. 

It will be useful to not club ServiceState.UPGRADING_AUTO_FINALIZE with express 
upgrade. They have different meanings. A user may want auto-finalization 
without  express upgrade. There isn't any complexity in supporting this 
technically as will
 
If you require a flag to trigger express upgrade, why not add a query param to 
update service endpoint?
If the ServiceState = {{ServiceState.UPGRADING}} or 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} and 
the query param expressUpgrade = true, then perform express upgrade.


> Yarn Service Upgrade: Support express upgrade of a service
> --
>
> Key: YARN-8298
> URL: https://issues.apache.org/jira/browse/YARN-8298
> Project: Hadoop YARN
>  Issue Type: Sub-task
>Affects Versions: 3.1.1
>Reporter: Chandni Singh
>Assignee: Eric Yang
>Priority: Major
> Attachments: YARN-8298.001.patch, YARN-8298.002.patch
>
>
> Currently service upgrade involves 2 steps
>  * initiate upgrade by providing new spec
>  * trigger upgrade of each instance/component
>  
> We need to add the ability to upgrade a component in shot which accepts the 
> spec of the component. However there are couple of limitations when upgrading 
> in this way:
>  # Aborting the upgrade will not be supported
>  # Upgrade finalization will be done automatically.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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



[jira] [Comment Edited] (YARN-8298) Yarn Service Upgrade: Support express upgrade of a service

2018-08-08 Thread Chandni Singh (JIRA)


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

Chandni Singh edited comment on YARN-8298 at 8/8/18 7:01 PM:
-

[~eyang] Thanks for working on this.
Why does {{ServiceState.UPGRADING_AUTO_FINALIZE}} trigger express upgrade?
Please refer to the design document in YARN-7512. 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} is to trigger automatic finalization 
of service upgrade. It isn't for express upgrade of the service. 

It will be useful to not club ServiceState.UPGRADING_AUTO_FINALIZE with express 
upgrade. They have different meanings. A user may want auto-finalization 
without  express upgrade. There isn't any complexity in supporting this 
technically as will
 
If you require a flag to trigger express upgrade, why not add a query param to 
update service endpoint?
If the ServiceState = {{ServiceState.UPGRADING}} or 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} and 
the query param expressUpgrade = true, then perform express upgrade.



was (Author: csingh):
[~eyang] 
Why does {{ServiceState.UPGRADING_AUTO_FINALIZE}} trigger express upgrade?
Please refer to the design document in YARN-7512. 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} is to trigger automatic finalization 
of service upgrade. It isn't for express upgrade of the service. 

It will be useful to not club ServiceState.UPGRADING_AUTO_FINALIZE with express 
upgrade. They have different meanings. A user may want auto-finalization 
without  express upgrade. There isn't any complexity in supporting this 
technically as will
 
If you require a flag to trigger express upgrade, why not add a query param to 
update service endpoint?
If the ServiceState = {{ServiceState.UPGRADING}} or 
{{ServiceState.UPGRADING_AUTO_FINALIZE}} and 
the query param expressUpgrade = true, then perform express upgrade.


> Yarn Service Upgrade: Support express upgrade of a service
> --
>
> Key: YARN-8298
> URL: https://issues.apache.org/jira/browse/YARN-8298
> Project: Hadoop YARN
>  Issue Type: Sub-task
>Affects Versions: 3.1.1
>Reporter: Chandni Singh
>Assignee: Eric Yang
>Priority: Major
> Attachments: YARN-8298.001.patch, YARN-8298.002.patch
>
>
> Currently service upgrade involves 2 steps
>  * initiate upgrade by providing new spec
>  * trigger upgrade of each instance/component
>  
> We need to add the ability to upgrade a component in shot which accepts the 
> spec of the component. However there are couple of limitations when upgrading 
> in this way:
>  # Aborting the upgrade will not be supported
>  # Upgrade finalization will be done automatically.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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