-----------------------------------------------------------
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

Reply via email to