public class ExecutionTaskManager
extends java.lang.Object
Constructor and Description |
---|
ExecutionTaskManager(int defaultInterBrokerPartitionMovementConcurrency,
int defaultIntraBrokerPartitionMovementConcurrency,
int defaultLeadershipMovementConcurrency,
java.util.List<java.lang.String> replicaMovementStrategies,
org.apache.kafka.clients.admin.ConfluentAdmin adminClient,
DataBalancerMetricsRegistry metricRegistry,
org.apache.kafka.common.utils.Time time,
KafkaCruiseControlConfig config)
The constructor of The Execution task manager.
|
Modifier and Type | Method and Description |
---|---|
void |
addExecutionProposals(java.util.Collection<ExecutionProposal> proposals,
java.util.Collection<java.lang.Integer> brokersToSkipConcurrencyCheck,
org.apache.kafka.common.Cluster cluster,
ReplicaMovementStrategy replicaMovementStrategy)
Add a collection of execution proposals for execution.
|
void |
clear() |
long |
finishedInterBrokerDataMovementInMB() |
long |
finishedIntraBrokerDataToMoveInMB() |
ExecutionTaskTracker.ExecutionTasksSummary |
getExecutionTasksSummary(java.util.Set<ExecutionTask.TaskType> taskTypesToGetFullList) |
java.util.List<ExecutionTask> |
getInterBrokerReplicaMovementTasks()
Returns a list of execution tasks that move the replicas cross brokers.
|
java.util.List<ExecutionTask> |
getIntraBrokerReplicaMovementTasks()
Returns a list of execution tasks that move the replicas cross disks of the same broker.
|
java.util.List<ExecutionTask> |
getLeadershipMovementTasks()
Returns a list of execution tasks that move the leadership.
|
long |
inExecutionInterBrokerDataToMoveInMB() |
long |
inExecutionIntraBrokerDataMovementInMB() |
java.util.Set<ExecutionTask> |
inExecutionTasks() |
java.util.Set<ExecutionTask> |
inExecutionTasks(java.util.Collection<ExecutionTask.TaskType> types) |
int |
interBrokerPartitionMovementConcurrency() |
int |
intraBrokerPartitionMovementConcurrency() |
int |
leadershipMovementConcurrency() |
void |
markTaskAborting(ExecutionTask task)
Mark an in-progress task as aborting (1) if an error is encountered and (2) the rollback is possible.
|
void |
markTaskDead(ExecutionTask task)
Mark an in-progress task as aborting (1) if an error is encountered and (2) the rollback is not possible.
|
void |
markTaskDone(ExecutionTask task)
Mark the successful completion of a given task.
|
void |
markTasksAborting(java.util.List<ExecutionTask> tasks)
Mark the given tasks as aborting.
|
void |
markTasksInProgress(java.util.List<ExecutionTask> tasks)
Mark the given tasks as in progress.
|
int |
numFinishedInterBrokerPartitionMovements() |
int |
numFinishedIntraBrokerPartitionMovements() |
int |
numFinishedLeadershipMovements() |
int |
numRemainingInterBrokerPartitionMovements() |
int |
numRemainingIntraBrokerPartitionMovements() |
int |
numRemainingLeadershipMovements() |
long |
remainingInterBrokerDataToMoveInMB() |
long |
remainingIntraBrokerDataToMoveInMB() |
void |
setRequestedInterBrokerPartitionMovementConcurrency(java.lang.Integer requestedInterBrokerPartitionMovementConcurrency)
Dynamically set the inter-broker partition movement concurrency per broker.
|
void |
setRequestedIntraBrokerPartitionMovementConcurrency(java.lang.Integer requestedIntraBrokerPartitionMovementConcurrency)
Dynamically set the intra-broker partition movement concurrency.
|
void |
setRequestedLeadershipMovementConcurrency(java.lang.Integer requestedLeadershipMovementConcurrency)
Dynamically set the leadership movement concurrency.
|
void |
setStopRequested() |
java.util.Set<java.lang.String> |
throttledTopics()
Returns the topics that have had a replication throttle applied
|
public ExecutionTaskManager(int defaultInterBrokerPartitionMovementConcurrency, int defaultIntraBrokerPartitionMovementConcurrency, int defaultLeadershipMovementConcurrency, java.util.List<java.lang.String> replicaMovementStrategies, org.apache.kafka.clients.admin.ConfluentAdmin adminClient, DataBalancerMetricsRegistry metricRegistry, org.apache.kafka.common.utils.Time time, KafkaCruiseControlConfig config)
defaultInterBrokerPartitionMovementConcurrency
- The maximum number of concurrent inter-broker partition movements per broker.
It can be overwritten by user parameter upon post request.defaultIntraBrokerPartitionMovementConcurrency
- The maximum number of concurrent intra-broker partition movements.
It can be overwritten by user parameter upon post request.defaultLeadershipMovementConcurrency
- The maximum number of concurrent leadership movements per batch. It can
be overwritten by user parameter upon post request.replicaMovementStrategies
- The strategies used to determine the execution order of inter-broker replica movement tasks.adminClient
- The adminClient use to query logdir information of replicas.metricRegistry
- The metric registry.time
- The time object to get the time.config
- config object that holds all Kafka Cruise control related configspublic void setRequestedInterBrokerPartitionMovementConcurrency(java.lang.Integer requestedInterBrokerPartitionMovementConcurrency)
requestedInterBrokerPartitionMovementConcurrency
- The maximum number of concurrent inter-broker partition movements per broker
(if null, use _defaultInterBrokerPartitionMovementConcurrency
).public void setRequestedIntraBrokerPartitionMovementConcurrency(java.lang.Integer requestedIntraBrokerPartitionMovementConcurrency)
requestedIntraBrokerPartitionMovementConcurrency
- The maximum number of concurrent intra-broker partition movements
(if null, use _defaultIntraBrokerPartitionMovementConcurrency
).public void setRequestedLeadershipMovementConcurrency(java.lang.Integer requestedLeadershipMovementConcurrency)
requestedLeadershipMovementConcurrency
- The maximum number of concurrent leader movements
(if null, _defaultLeadershipMovementConcurrency
).public int interBrokerPartitionMovementConcurrency()
public int intraBrokerPartitionMovementConcurrency()
public int leadershipMovementConcurrency()
public java.util.List<ExecutionTask> getInterBrokerReplicaMovementTasks()
public java.util.List<ExecutionTask> getIntraBrokerReplicaMovementTasks()
public java.util.List<ExecutionTask> getLeadershipMovementTasks()
public java.util.Set<java.lang.String> throttledTopics()
public void addExecutionProposals(java.util.Collection<ExecutionProposal> proposals, java.util.Collection<java.lang.Integer> brokersToSkipConcurrencyCheck, org.apache.kafka.common.Cluster cluster, ReplicaMovementStrategy replicaMovementStrategy)
proposals
- the execution proposals to execute.brokersToSkipConcurrencyCheck
- the brokers that does not need to be throttled when move the partitions.cluster
- Cluster state.replicaMovementStrategy
- The strategy used to determine the execution order of generated replica movement tasks.public void markTasksInProgress(java.util.List<ExecutionTask> tasks)
public void markTasksAborting(java.util.List<ExecutionTask> tasks)
public void markTaskDone(ExecutionTask task)
public void markTaskAborting(ExecutionTask task)
public void markTaskDead(ExecutionTask task)
public int numRemainingInterBrokerPartitionMovements()
public long remainingInterBrokerDataToMoveInMB()
public int numFinishedInterBrokerPartitionMovements()
public long finishedInterBrokerDataMovementInMB()
public java.util.Set<ExecutionTask> inExecutionTasks()
public java.util.Set<ExecutionTask> inExecutionTasks(java.util.Collection<ExecutionTask.TaskType> types)
public long inExecutionInterBrokerDataToMoveInMB()
public int numRemainingLeadershipMovements()
public int numFinishedLeadershipMovements()
public int numRemainingIntraBrokerPartitionMovements()
public long remainingIntraBrokerDataToMoveInMB()
public int numFinishedIntraBrokerPartitionMovements()
public long finishedIntraBrokerDataToMoveInMB()
public long inExecutionIntraBrokerDataMovementInMB()
public void clear()
public void setStopRequested()
public ExecutionTaskTracker.ExecutionTasksSummary getExecutionTasksSummary(java.util.Set<ExecutionTask.TaskType> taskTypesToGetFullList)