Hi everyone, Following a face-to-face discussion with Ron and Colin, I have just made further improvements to this KIP:
1. Every log directory gets a random UUID assigned, even if just one log dir is configured in the Broker. 2. All online log directories are registered, even if just one if configured. 3. Partition-to-directory assignments are only performed if more than one log directory is configured/registered. 4. A successful reply from the Controller to a AssignReplicasToDirsRequest is taken as a guarantee that the metadata changes are successfully persisted. 5. Replica assignments that refer log directories pending a failure notification are prioritized to guarantee the Controller and Broker agree on the assignments before acting on the failure notification. 6. The transition from one log directory to multiple log directories relies on a logical update to efficiently update directory assignments to the previously registered single log directory when that's possible. I have also introduced a configuration for the maximum time the broker will keep trying to send a log directory notification before shutting down. https://cwiki.apache.org/confluence/display/KAFKA/KIP-858%3A+Handle+JBOD+broker+disk+failure+in+KRaft Best, -- Igor