ReplicaStateMachine

ReplicaStateMachine is the base of Replica State Machines that can handleStateChanges, be started up and shut down in the end.

Table 1. ReplicaStateMachine Contract (Abstract Methods Only)
Method Description

handleStateChanges

handleStateChanges(
  replicas: Seq[PartitionAndReplica],
  targetState: ReplicaState): Unit

Handles state changes of replicas (replica state changes)

Used when:

Note
ZkReplicaStateMachine is the default and only known implementation of the ReplicaStateMachine Contract in Apache Kafka.

ReplicaStateMachine takes a single ControllerContext to be created.

Note
ReplicaStateMachine is a Scala abstract class and cannot be created directly. It is created indirectly for the concrete ReplicaStateMachines.

Shutting Down — shutdown Method

shutdown(): Unit

shutdown simply prints out the following INFO message to the logs:

Stopped replica state machine
Note
shutdown is used exclusively when KafkaController is requested to resign as the active controller.

Starting Up (On Active Controller) — startup Method

startup(): Unit

startup prints out the following INFO message to the logs:

Initializing replica state

startup prints out the following INFO message to the logs:

Triggering online replica state changes

startup handleStateChanges (with the online replicas and OnlineReplica target state).

startup prints out the following INFO message to the logs:

Triggering offline replica state changes

startup handleStateChanges (with the offline replicas and OfflineReplica target state).

In the end, startup prints out the following DEBUG message to the logs:

Started replica state machine with initial state -> [replicaState]
Note
startup is used exclusively when KafkaController is requested to onControllerFailover (when a broker is successfully elected as the controller).

Initializing Partition Replica States using ControllerContext — initializeReplicaState Internal Method

initializeReplicaState(): Unit

initializeReplicaState requests the ControllerContext for all partitions.

For every partition, initializeReplicaState requests the ControllerContext for the partition replica assignment (the broker IDs of partition replicas).

For every partition replica, initializeReplicaState requests the ControllerContext to putReplicaState to OnlineReplica or ReplicaDeletionIneligible per isReplicaOnline.

Note
initializeReplicaState is used exclusively when ReplicaStateMachine is requested to start up.

results matching ""

    No results matching ""