----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/52691/ -----------------------------------------------------------
(Updated Oct. 18, 2016, 6:17 p.m.) Review request for Ambari, Alejandro Fernandez, Jonathan Hurley, Laszlo Puskas, Nate Cole, Sumit Mohanty, and Sebastian Toader. Changes ------- Add comments, minor fixes. Bugs: AMBARI-18553 https://issues.apache.org/jira/browse/AMBARI-18553 Repository: ambari Description ------- Today, the START commands stored in role_command_orders table are bound to multiple stages created based on dependencies between components - a component in the second stage can only begin its START after the entire first stage is done as opposed to just its dependencies in the first stage. This eventually increases the overall blueprint deployment time. The goal is to be able to configure a direct dependency based execution model of commands, for now only for Blueprint based deployment commands. Implementation: --------------- When creating stages we set the commandExecutionType to RoleGraph. In case commandExecutionType is set to DEPENDENCY_ORDERED there's only one stage created. commandExecutionType is persisted into Stage object / entity as well, so ActionScheduler can decide based on commandExecutionType how to execute the stage. In case commandExecutionType is set to DEPENDENCY_ORDERED it will filter out commands having dependencies on other commands IN_PROGRESS. By default commandExecutionType is STAGE_BASED which works as before, creating one or more stages dependening on dependecies. DEPENDENCY_ORDERED commandExecutionType is set only in case of START commands initiated by Blueprint deployment and if Ambari property server.stage.command.execution_type = DEPENDENCY_ORDERED. Diffs (updated) ----- ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionScheduler.java 8cbfb1e ambari-server/src/main/java/org/apache/ambari/server/actionmanager/CommandExecutionType.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java f03d8ea ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java 378db18 ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java 5d8f279 ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java 5afaba8 ambari-server/src/main/java/org/apache/ambari/server/metadata/CachedRoleCommandOrderProvider.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/metadata/RoleCommandOrder.java bbdb808 ambari-server/src/main/java/org/apache/ambari/server/metadata/RoleCommandOrderProvider.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/metadata/RoleCommandPair.java PRE-CREATION ambari-server/src/main/java/org/apache/ambari/server/orm/entities/StageEntity.java eaea913 ambari-server/src/main/java/org/apache/ambari/server/stageplanner/RoleGraph.java c9ab6f9 ambari-server/src/main/java/org/apache/ambari/server/stageplanner/RoleGraphFactory.java 625b168 ambari-server/src/main/java/org/apache/ambari/server/stageplanner/RoleGraphFactoryImpl.java 5ca4d88 ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java 34331ee ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql 4b64955 ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 15a84cd ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 6c3c036 ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 570b684 ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 170e430 ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql 1501143 ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java bd23e00 ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ActiveWidgetLayoutResourceProviderTest.java d38108f ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackUpgradeConfigurationMergeTest.java a49fc09 ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserAuthorizationResourceProviderTest.java 2ccbcda ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderTest.java d96e7b5 ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewURLResourceProviderTest.java e223d0f ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleCommandOrderTest.java a03f05b ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleGraphTest.java 8bead43 ambari-server/src/test/java/org/apache/ambari/server/stageplanner/TestStagePlanner.java d26816c ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterEffectiveVersionTest.java 2aaa2cf Diff: https://reviews.apache.org/r/52691/diff/ Testing ------- UT in progress. Tested with manual cluster deployments. Thanks, Sandor Magyari