GrantPSpencer opened a new pull request, #2848:
URL: https://github.com/apache/helix/pull/2848

   ### Issues
   
   - [ ] My PR addresses the following Helix issues and references them in the 
PR description:
   
   With the recent changes to InstanceOperation, Helix allows users to set 
their instances to DISABLE where all partitions are gracefully transited to the 
offline state. Likewise, customers can also disable specific partitions to 
transit them to offline (CRUSHED) or move them off the node (WAGED). However, 
because there can only be 1 active InstanceOperation on a node at a time, a 
user cannot DISABLE an evacuating or SWAP_IN instance without overriding that 
operation. There are scenarios where a user may want to ensure that the 
instance being operated on immediately downward state transits its partitions 
or does not receive any upward state transitions while it is being operated on. 
   
   ### Description
   
   - [ ] Here are some details about my PR, including screenshots of any UI 
changes:
   
   This change adds support for the ALL_RESOURCES key in the disabled 
partitions map of an instance's config. This change mirrors the current 
behavior of disabling a specific partition on a node, but extends that to all 
partitions in the cluster. 
   
   The main area this change effects are:
   WAGED placement calculation - AssignableNode and ReplicaActivateConstraint
   DelayedAutoRebalancer - computeBestPossiblePartitionState (responsible for 
forcing partitions down to offline)
   
   There will likely need to be discussion had on how to best reduce complexity 
of adding the "ALL_RESOURCES" key. Future code may need to explicitly check for 
this key depending on what methods they are leveraging. which will likely not 
be obvious for developers
   
   ### Tests
   
   - [ ] The following tests are written for this issue:
   **Basic Functionality**
   testDisableAllPartitions in TestDisablePartitions.java
   
   **Test Asserting Behavior Alongside Instance Operation**
   testEvacuateWithDisabledPartition in TestInstanceOperation.java
   
   
   ### Changes that Break Backward Compatibility (Optional)
   
   - My PR contains changes that break backward compatibility or previous 
assumptions for certain methods or API. They include:
   
   N/A
   
   ### Commits
   
   - My commits all reference appropriate Apache Helix GitHub issues in their 
subject lines. In addition, my commits follow the guidelines from "[How to 
write a good git commit message](http://chris.beams.io/posts/git-commit/)":
     1. Subject is separated from body by a blank line
     1. Subject is limited to 50 characters (not including Jira issue reference)
     1. Subject does not end with a period
     1. Subject uses the imperative mood ("add", not "adding")
     1. Body wraps at 72 characters
     1. Body explains "what" and "why", not "how"
   
   ### Code Quality
   
   - My diff has been formatted using helix-style.xml 
   (helix-style-intellij.xml if IntelliJ IDE is used)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: reviews-unsubscr...@helix.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@helix.apache.org
For additional commands, e-mail: reviews-h...@helix.apache.org

Reply via email to