public abstract class AbstractAcceptanceGoal extends AbstractGoal
Goal.actionAcceptance(BalancingAction, ClusterModel)
is the only
method that must be implemented.Goal.ClusterModelStatsComparator
_balancingConstraint, _finished, _minMonitoredPartitionPercentage, _numWindows, _succeeded
Constructor and Description |
---|
AbstractAcceptanceGoal() |
Modifier and Type | Method and Description |
---|---|
protected java.util.SortedSet<Broker> |
brokersToBalance(ClusterModel clusterModel)
No brokers need to be balanced for this goal, because it only needs to validate moves proposed by other goals
|
ModelCompletenessRequirements |
clusterModelCompletenessRequirements()
Return the model completeness requirements for this goal.
|
Goal.ClusterModelStatsComparator |
clusterModelStatsComparator()
Get an instance of
Goal.ClusterModelStatsComparator for this goal. |
void |
finish()
Signal for finishing the process for rebalance or self-healing for this goal.
|
protected void |
initGoalState(ClusterModel clusterModel,
OptimizationOptions optimizationOptions)
Initialize states that this goal requires -- e.g.
|
boolean |
isHardGoal()
True if this is a hard goal, false otherwise.
|
protected void |
rebalanceForBroker(Broker broker,
ClusterModel clusterModel,
java.util.Set<Goal> optimizedGoals,
OptimizationOptions optimizationOptions)
Rebalance the given broker without violating the constraints of the current goal and optimized goals.
|
protected boolean |
selfSatisfied(ClusterModel clusterModel,
BalancingAction action)
This goal is always considered self-satisfied, since it can only be violated by other goals' actions
|
protected void |
updateGoalState(ClusterModel clusterModel,
java.util.Set<java.lang.String> excludedTopics)
Update goal state after one round of self-healing / rebalance.
|
configure, maybeApplyBalancingAction, maybeMoveReplicaBetweenDisks, name, optimize, shouldExclude, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
actionAcceptance, canChangeReplicationFactor
public Goal.ClusterModelStatsComparator clusterModelStatsComparator()
Goal
Goal.ClusterModelStatsComparator
for this goal.
The Goal.ClusterModelStatsComparator.compare(ClusterModelStats, ClusterModelStats)
method should give a
preference between two ClusterModelStats
.
Cruise Control will not reuse the returned instance.
The returned value must not be null.public ModelCompletenessRequirements clusterModelCompletenessRequirements()
public void finish()
public boolean isHardGoal()
protected java.util.SortedSet<Broker> brokersToBalance(ClusterModel clusterModel)
brokersToBalance
in class AbstractGoal
clusterModel
- The state of the cluster.protected boolean selfSatisfied(ClusterModel clusterModel, BalancingAction action)
selfSatisfied
in class AbstractGoal
clusterModel
- The state of the cluster.action
- Action containing information about potential modification to the given cluster model.protected void initGoalState(ClusterModel clusterModel, OptimizationOptions optimizationOptions) throws OptimizationFailureException
initGoalState
in class AbstractGoal
clusterModel
- The state of the cluster.optimizationOptions
- Options to take into account during optimization -- e.g. excluded topics.OptimizationFailureException
protected void updateGoalState(ClusterModel clusterModel, java.util.Set<java.lang.String> excludedTopics) throws OptimizationFailureException
AbstractGoal
updateGoalState
in class AbstractGoal
clusterModel
- The state of the cluster.excludedTopics
- The topics that should be excluded from the optimization action.OptimizationFailureException
protected void rebalanceForBroker(Broker broker, ClusterModel clusterModel, java.util.Set<Goal> optimizedGoals, OptimizationOptions optimizationOptions) throws OptimizationFailureException
rebalanceForBroker
in class AbstractGoal
broker
- Broker to be balanced.clusterModel
- The state of the cluster.optimizedGoals
- Optimized goals.optimizationOptions
- Options to take into account during optimization -- e.g. excluded topics.OptimizationFailureException