[jira] [Comment Edited] (YARN-8298) Yarn Service Upgrade: Support express upgrade of a service
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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