Hi David,

Thanks for shedding light on migration goals, makes sense.
Your preference for option a) makes it even more attractive.
We'll keep that as the preferred approach, thanks for the advice.

> One question with this approach is how the KRaft controller learns about
> the multiple log directories after the broker is restarted in KRaft mode.
> If I understand the design correctly, this would be similar to a single
> directory kraft broker being reconfigured as a multiple directory broker.
> That is, the broker sees that the PartitionRecords are missing the
> directory assignments and then sends AssignReplicasToDirs to the controller.

It is not similar to single dir KRaft transitioning to multi-dir mode.
On single-dir mode AssignReplicasToDirs is not sent, but the dir
assignment is still written along in the partition records, as the
Controller knows the UUID of the only log dir that can be selected.
But you're right about the rest.

The multiple log dirs are indicated in the broker registration request.
The first registration in a migrating ZK broker will include dir UUIDs.
Directory assignments are communicated via the new RPC AssignReplicasToDirs.
We have debated whether the broker should start sending these while still
in mixed (migration) mode, or if it should wait until it is restarted
into full KRaft mode, and stay fenced until all dir assignments are
sent to the controller. Any advice for us on this one?

Best,

--
Igor

Reply via email to