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

Review request for helix, Zhen Zhang and Kishore Gopalakrishna.


Bugs: HELIX-281


Repository: helix-git


Description
-------

The key part of this is a new queue for callbacks. When a ClusterEvent is 
added, if an event with the same name already exists in the queue, it replaces 
that event. Otherwise, it is added to the tail of the queue. This prevents a 
large number of message events from starving other events.

commit a0e0eff78ce56d28f436e943303220579897dc32
Author: Kanak Biscuitwala <[email protected]>
Date:   Wed Jan 8 17:18:35 2014 -0800

    [HELIX-281] Prevent message callbacks from indefinitely starving other 
callbacks

:100644 100644 9fef2da... b467bff... M  
helix-core/src/main/java/org/apache/helix/controller/GenericHelixController.java
:000000 100644 0000000... 986437b... A  
helix-core/src/main/java/org/apache/helix/controller/stages/ClusterEventBlockingQueue.java
:000000 100644 0000000... 2dba7b6... A  
helix-core/src/test/java/org/apache/helix/controller/stages/TestClusterEventBlockingQueue.java
:100644 100644 30f5807... 67298b3... M  
helix-core/src/test/java/org/apache/helix/integration/TestSchedulerMessage.java


Diffs
-----

  
helix-core/src/main/java/org/apache/helix/controller/GenericHelixController.java
 9fef2da 
  
helix-core/src/main/java/org/apache/helix/controller/stages/ClusterEventBlockingQueue.java
 PRE-CREATION 
  
helix-core/src/test/java/org/apache/helix/controller/stages/TestClusterEventBlockingQueue.java
 PRE-CREATION 
  
helix-core/src/test/java/org/apache/helix/integration/TestSchedulerMessage.java 
30f5807 

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


Testing
-------

Ran this on a cluster with 100 resources, 100 partitions per resource, 100 
nodes, FULL_AUTO. Took them all up and all down a few times, leading to a 
massive amount of entropy in the cluster. The controller was able to process 
all the callbacks in the expected order and outstanding callbacks were 
automatically coalesced.

Existing tests pass locally, added unit tests for the queue.


Thanks,

Kanak Biscuitwala

Reply via email to