Class TaskPartitionEqualSharingRebalancer
java.lang.Object
io.debezium.connector.spanner.task.leader.rebalancer.TaskPartitionEqualSharingRebalancer
- All Implemented Interfaces:
TaskPartitionRebalancer
This task contains the functionality to rebalance change stream partitions from obsolete tasks to
survived tasks after a rebalance event.
Leader distributes partitions equally between tasks.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncollectOwnedPartitionTokens(Collection<TaskState>... taskStates) collectPartitionTokens(Collection<TaskState>... taskStates) private TaskStatedistributePartitionsFromObsoleteTasks(TaskState leaderTaskState, Map<String, TaskState> survivedTasks, Map<String, TaskState> obsoleteTasks) excludeLeader(String leaderTaskUid, Map<String, TaskState> tasks) private List<PartitionState>filterDuplications(List<PartitionState> partitionStates) private StringfindCandidateToSharePartition(TaskState leaderTaskState, Map<String, TaskState> survivedTasks) private TaskStatemoveFinishedPartitionsFromObsoleteTasks(TaskState leaderTaskState, Map<String, TaskState> obsoleteTasks) private TaskStatemoveSharedPartitionsFromObsoleteTasks(TaskState leaderTaskState, Map<String, TaskState> survivedTasks, Map<String, TaskState> obsoleteTasks) rebalance(TaskState leaderTaskState, Map<String, TaskState> survivedTasks, Map<String, TaskState> obsoleteTaskStates) private TaskStatetakeSharedPartitionsFromSurvivedTasks(TaskState leaderTaskState, Map<String, TaskState> survivedTasks) private TaskStatetakeSharedPartitionsToObsoleteTask(TaskState leaderTaskState, Map<String, TaskState> survivedTasks)
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
-
Constructor Details
-
TaskPartitionEqualSharingRebalancer
public TaskPartitionEqualSharingRebalancer()
-
-
Method Details
-
rebalance
public TaskState rebalance(TaskState leaderTaskState, Map<String, TaskState> survivedTasks, Map<String, TaskState> obsoleteTaskStates) - Specified by:
rebalancein interfaceTaskPartitionRebalancer
-
excludeLeader
-
moveFinishedPartitionsFromObsoleteTasks
-
distributePartitionsFromObsoleteTasks
-
filterDuplications
-
collectPartitionTokens
-
collectOwnedPartitionTokens
-