-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/58282/
-----------------------------------------------------------

(Updated April 8, 2017, 4:50 p.m.)


Review request for Ambari and Sumit Mohanty.


Bugs: AMBARI-20712
    https://issues.apache.org/jira/browse/AMBARI-20712


Repository: ambari


Description
-------

AMBARI-20646 introduced a regression which can be seen when deploying a cluster 
via blueprint with Kerberization. The problem is caused by the change which was 
made to only pull in the most recent stage in progress per request.

There was logic which prevented concurrently executing request stages to be 
scheduled if a prior request had an un-executed stage with a conflicting host. 
For example:

- Request 1
-- Stage 1 (IN_PROGRESS)
--- Host 1
--- Host 2
--- Host 3
-- Stage 2 (PENDING)
--- Host 4

- Request 2
-- Stage 1
--- Host 4

In the above scenario, the scheduler was tricked into thinking that Request 2 
can run even though Host-4 has a conflict. This is because it was only looking 
at the stage in progress.

We can't simply look at all stages in progress since this would cause the 
performance bug to manifest again. So, the solution is to have the database 
tell us which hosts are blocking from prior requests. This SQL should be very 
fast and will only run in the specific cases where there are multiple 
concurrent requests (which is typically at blueprint time).


Diffs (updated)
-----

  
ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionScheduler.java
 758db35 
  
ambari-server/src/main/java/org/apache/ambari/server/actionmanager/HostRoleCommand.java
 651eb24 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
 77d5bf8 
  
ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java
 79b8bc9 
  
ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostRoleCommandEntity.java
 a809295 
  ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql 6744a74 
  ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 6279f83 
  ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 470eb60 
  ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 87ffb7f 
  ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql a460194 
  ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql 237c892 
  
ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionScheduler.java
 d7d3d40 


Diff: https://reviews.apache.org/r/58282/diff/2/

Changes: https://reviews.apache.org/r/58282/diff/1-2/


Testing (updated)
-------

Tests run: 4981, Failures: 0, Errors: 0, Skipped: 39

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17:26 min
[INFO] Finished at: 2017-04-08T15:20:57-04:00
[INFO] Final Memory: 58M/586M
[INFO] ------------------------------------------------------------------------


Thanks,

Jonathan Hurley

Reply via email to