Hi Luke,

I assume that unclean leader election exists as a static config in kafka
kraft, but is still unavailable dynamically?  Or is it unavailable in
general?

Thanks!
ttyl
Dima


On Wed, Aug 28, 2024 at 3:45 AM Luke Chen <show...@gmail.com> wrote:

> Hi all,
>
> In v3.9.0, we're planning to support the `unclean.leader.election.enable`
> config in KRaft. Currently, the implementation PR
> <https://github.com/apache/kafka/pull/16866> is under review now. But I'd
> like to raise the discussion to let you know there will be one behavior
> change when enabling `unclean.leader.election.enable` config dynamically in
> KRaft.
>
> scenario:
> 1. broker [0, 1] config are all set `unclean.leader.election.enable=false`.
> 2. topic A is created with 1 partition, 2 replication factors and
> `unclean.leader.election.enable=false`. Leader of the partition 0 is 0. ISR
> is [0].
> 3. broker 0 is down, which leaves ISR to empty [ ], and leader none.
> 4. dynamically alter config using admin API to set
> `unclean.leader.election.enable=true`, no matter it changes to the topic A,
> or to broker 1, or default broker.
>
> In ZK mode, with this scenario, it'll trigger unclean leader election
> immediately, and broker 1 will be elected as the leader, which brings the
> availability of the partition back.
> In KRaft mode, with this scenario, the unclean leader election will be
> triggered in an unclean election thread, which is scheduled every 5 mins by
> default. That is, this partition might still be unavailable even if it
> enables `unclean.leader.election.enable`. If users want to elect a leader
> for this partition, run `kafka-leader-election.sh` with `unclean` option to
> trigger the unclean leader election immediately.
>
> The main reason we didn't implement what ZK did is because of this
> complication
> <https://github.com/apache/kafka/pull/16284#discussion_r1635410206> we
> faced.
>
> Other behaviors keep the same. Ex: When the topic config, or broker config,
> or default broker config set `unclean.leader.election.enable=true`, and
> later, a partition has leader down with empty ISR [ ], and having some
> alive non-ISR replicas, in this case, the unclean leader election will be
> triggered, as long as the config was set earlier.
>
> But since the PR is still under review, any comments or thoughts are
> welcomed.
>
> Thank you.
> Luke
>


-- 
ddbrod...@gmail.com

"The price of reliability is the pursuit of the utmost simplicity.
It is a price which the very rich find the most hard to pay."
                                                                   (Sir
Antony Hoare, 1980)

Reply via email to