@ThreadSafe public class BrokerRemovalStateMachine extends StateMachine<BrokerRemovalStateMachine.BrokerRemovalState,BrokerRemovalStateMachine.BrokerRemovalEvent>
Operation State SUCCESS State FAILURE State
START
|
V
INITIAL_PLAN_COMPUTATION_INITIATED ----------- error ------------------------> INITIAL_PLAN_COMPUTATION_FAILED
PAR=PENDING PAR=ERROR
BSS=PENDING BSS=CANCELED
RBS=PENDING RBS=CANCELED
BOS=IN_PROGRESS BOS=FAILED
|
+------------------------------------------ cancel event ---------------------> INITIAL_PLAN_COMPUTATION_CANCELED
| PAR=CANCELED
| BSS=CANCELED
| RBS=CANCELED
| BOS=FAILED
|
V
EXCLUSION_INITIATED --------------------------- error ------------------------> EXCLUSION_FAILED
PAR=PENDING PAR=CANCELED
BSS=PENDING BSS=CANCELED
RBS=IN_PROGRESS RBS=ERROR
BOS=IN_PROGRESS BOS=FAILED
|
+-------------------------------------------cancel event ---------------------> EXCLUSION_CANCELED
| PAR=CANCELED
| BSS=CANCELED
| RBS=ERROR
| BOS=FAILED
|
V
PLAN_COMPUTATION_INITIATED -------------------- error ------------------------> PLAN_COMPUTATION_FAILED
PAR=IN_PROGRESS PAR=ERROR
BSS=PENDING BSS=CANCELED
RBS=EXCLUDED RBS=EXCLUDED
BSS=IN_PROGRESS BOS=FAILED
^ |
| |
| +------------------------------------ cancel event -------------------> PLAN_COMPUTATION_CANCELED
| | PAR=ERROR
| | BSS=CANCELED
fail- | RBS=EXCLUDED
over | BOS=FAILED
restart |
| V
PLAN_EXECUTION_INITIATED ---------------------- error ------------------------> PLAN_EXECUTION_FAILED
PAR=IN_PROGRESS PAR=ERROR
BSS=PENDING BSS=CANCELED
RBS=EXCLUDED RBS=EXCLUDED
BOS=IN_PROGRESS BOS=FAILED
^
+-------------------------------------------- cancel event -------------------> PLAN_EXECUTION_CANCELED
| PAR=ERROR
| BSS=CANCELED
| RBS=EXCLUDED
| BOS=FAILED
|
|
+--- shouldShutdown=false --------> PLAN_EXECUTION_SUCCEEDED
| PAR=COMPLETED
| BSS=CANCELED
| RBS=EXCLUDED
| BOS=SUCCESS
|
|
V
SHUTDOWN_INITIATED ----------------------------- error -----------------------> SHUTDOWN_FAILED
PAR=COMPLETED PAR=COMPLETED
BSS=PENDING BSS=ERROR
RBS=EXCLUDED RBS=EXCLUDED
BOS=IN_PROGRESS BOS=FAILED
|
+------------------------------------------ cancel event ---------------------> SHUTDOWN_CANCELED
| PAR=COMPLETED
| BSS=ERROR
| RBS=EXCLUDED
| BOS=FAILED
|
V
EXCLUSION_REMOVAL_INITIATED -------------------- error ----------------------> EXCLUSION_REMOVAL_FAILED
PAR=COMPLETED PAR=COMPLETED
BSS=COMPLETED BSS=COMPLETED
RBS=IN_PROGRESS RBS=ERROR
BOS=IN_PROGRESS BOS=FAILED
|
+------------------------------------------ cancel event ---------------------> EXCLUSION_REMOVAL_CANCELED
| PAR=COMPLETED
| BSS=COMPLETED
| RBS=ERROR
| BOS=FAILED
|
|
+---------------------------------> EXCLUSION_REMOVAL_SUCCEEDED
PAR=COMPLETED
BSS=COMPLETED
RBS=COMPLETED
BOS=SUCCESS
Modifier and Type | Class and Description |
---|---|
static class |
BrokerRemovalStateMachine.BrokerRemovalEvent
Events feeding into the BrokerRemovalStateMachine.
|
static class |
BrokerRemovalStateMachine.BrokerRemovalState
All the possible states of the broker removal operation
|
Modifier and Type | Field and Description |
---|---|
static BrokerRemovalStateMachine.BrokerRemovalState |
START_STATE |
currentState
Constructor and Description |
---|
BrokerRemovalStateMachine(Set<Integer> brokerIds) |
BrokerRemovalStateMachine(Set<Integer> brokerIds,
BrokerRemovalStateMachine.BrokerRemovalState currentState) |
BrokerRemovalStateMachine(Set<Integer> brokerIds,
BrokerRemovalStateMachine.BrokerRemovalState currentState,
org.apache.kafka.common.utils.Time time) |
Modifier and Type | Method and Description |
---|---|
static boolean |
isStateTerminal(BrokerRemovalStateMachine.BrokerRemovalState state) |
advanceState, createTime, isTerminalState, lastUpdateTime
public static final BrokerRemovalStateMachine.BrokerRemovalState START_STATE
public BrokerRemovalStateMachine(Set<Integer> brokerIds, BrokerRemovalStateMachine.BrokerRemovalState currentState)
public BrokerRemovalStateMachine(Set<Integer> brokerIds, BrokerRemovalStateMachine.BrokerRemovalState currentState, org.apache.kafka.common.utils.Time time)
public static boolean isStateTerminal(BrokerRemovalStateMachine.BrokerRemovalState state)