...
User uses kafka-reassignemnt-partitions.sh to send ChangeReplicaDirRequest to broker to initiate replica movement between its log directories. The flow graph below illustrates how broker handles ChangeReplicaDirRequest
.
Note:
- Broker will cancel existing movement of the replica if "any" is specified as destination log directory.
- If broker doesn't not have already replica created for the specified topicParition when it receives ChangeReplicaDirRequest, it will reply ReplicaNotAvailableException AND remember (replica, destination log directory) pair in memory to create the replica in the specified log directory
View file | ||||
---|---|---|---|---|
|
...
Notes:
- The replica movement will stop if either source or destination replica becomes offline due to log directory failure.
- The RequestHandlerThread
or ReplicaFetcherThread
needs to grab lock of the Replica instance in order to append data to the Replica. This prevents race condition while ReplicaMoveThread
is swapping the Log in the source log directory with the log in the destination log directory.
- The log segments in topicPartition.move directory will be subject to log truncation, log retention and log cleaning in the same way as the log segments in the source log directory.
3. Handle failure that happens broker is moving data or swapping replica
...