...
The diagram below illustrates the sequence of steps involved in moving a replica between log directories.
In the diagram above, notice that if dir1
fails after the AssignReplicasToDirs
RPC is sent, but before the future replica is promoted, then the controller will not know to update leadership and ISR for the partition. If the destination directory has failed, it won't be possible to promote the future replica, and the Broker needs to revert the assignment (cancelled locally if still queued). If the source directory has failed, then the future replica might not catch up, and the Controller might not update leadership and ISR for the partition. In this exceptional case, the broker issues a AssignReplicasToDirs
RPC to the Controller to assignment the replica to UUID.LOST_DIR
- this lets the Controller know that it needs to update leadership and ISR for this partition too.
...