-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52691/
-----------------------------------------------------------
(Updated Oct. 13, 2016, 3:50 p.m.)
Review request for Ambari, Alejandro Fernandez, Jonathan Hurley, Laszlo Puskas,
Nate Cole, Sumit Mohanty, and Sebastian Toader.
Changes
-------
Change command filtering in ActionScheduler, add more comments.
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
ef4fc33
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
091c6d9
ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql c2c965d
ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql f28cdc9
ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 49f3e2f
ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 7aa52ef
ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 0c95471
ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql 631b5c4
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
4f2580a
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