kyungwan nam created SLIDER-1265: ------------------------------------ Summary: Support upgrade with reusing YARN container Key: SLIDER-1265 URL: https://issues.apache.org/jira/browse/SLIDER-1265 Project: Slider Issue Type: New Feature Reporter: kyungwan nam Assignee: kyungwan nam
h2. Problem Currently, upgrading an app is tightly coupled with YARN container lifecycle. To upgrade an app, existing YARN container must be released and then new container would be allocated. In case of the large cluster which multitude of apps are running, during an upgrade, getting back resources to the upgrading app is hard to be guaranteed. Even if new YARN container is allocated finally, It could takes too long time. It would be harmful for reliable service. That makes it difficult to change even trivial config. h2. Proposal Currently, procedure to upgrade a container is as follows. * AM send PRE_UPGRADE command to agent. * AM send STOP command to agent. * existing YARN container is released due to stopped agent. * AM ask for a new YARN container / new YARN container is allocated. * AM launch app with new config/package to the new YARN container. I propose _--reusecontainer_option for _slider upgrade_, which upgrade on existing YARN container. with _--reusecontainer_, it would be as below. * AM send PRE_UPGRADE command to agent. * AM send STOP command to agent. * AM send INSTALL command to agent. * AM send START command to agent. There are some limitation. * app-package is provisioned by YARN container localization. so, changing app-package does not work. * the existing YARN container is kept. so, changing resource specification like memory does not work. Even though some limitation, in case of modifying/adding app-specific config, It makes upgrading app easy. -- This message was sent by Atlassian JIRA (v7.6.3#76005)