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

Review request for Ambari, Alejandro Fernandez, Jonathan Hurley, and Nate Cole.


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


Repository: ambari


Description
-------

On a large cluster, all of the agents will heartbeat during registration at the 
same time, so the HearbeatHandler has to be fast. Right now, the logic to 
handle host versions is done as part of StackVersionListener, which uses the 
AmbariEventPublisher, and acquires a lock.
*This means that the heartbeats will compete for the same lock in a piece of 
code that makes a lot of DB calls.*

Use a separate EventBus since we should not listen for host version changes 
using AmbariEventPublisher

We should also move HearbeatHandler.java (around line 520)

    HostComponentVersionEvent event = new HostComponentVersionEvent(cl, scHost);
    ambariEventPublisher.publish(event);

inside the handleComponentVersionReceived() method.

As an optimization, we should consider only registering the event if 
"previousVersion" differs from the new value.


Diffs
-----

  
ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java
 539af00 
  
ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/StackVersionListener.java
 5460092 
  
ambari-server/src/main/java/org/apache/ambari/server/events/publishers/VersionEventPublisher.java
 PRE-CREATION 
  
ambari-server/src/test/java/org/apache/ambari/server/events/listeners/upgrade/StackVersionListenerTest.java
 PRE-CREATION 
  
ambari-server/src/test/java/org/apache/ambari/server/events/publishers/VersionEventPublisherTest.java
 PRE-CREATION 

Diff: https://reviews.apache.org/r/31808/diff/


Testing
-------

Manual tested upgrade.

New unit tests added.

All tests pass ...

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 34:25 min
[INFO] Finished at: 2015-03-06T12:09:54-05:00
[INFO] Final Memory: 45M/565M
[INFO] ------------------------------------------------------------------------


Thanks,

Tom Beerbower

Reply via email to