Jianwen Wang created KAFKA-1503:
-----------------------------------
Summary: all partitions are using same broker as their leader
after broker is down
Key: KAFKA-1503
URL: https://issues.apache.org/jira/browse/KAFKA-1503
Project: Kafka
Issue Type: Bug
Components: controller
Affects Versions: 0.8.1.1, 0.8.0
Environment: 0.8.1.1
Reporter: Jianwen Wang
Assignee: Neha Narkhede
The current leader selection always pick the first live broker in ISR when the
current leader broker is down. Since the list of liveBrokerInIsr is not evenly
distributed. As time goes on, all the partitions will use only one broker as
its leader.
I figured out a fix which is to use the first live broker in replica list which
is also in ISR list. Since the liveAssignedReplicas is evenly distributed
across brokers, all the partitions will be evenly distributed in the live
brokers in ISR.
The fix is:
kafka-0.8.1.1-src/core/src/main/scala/kafka/controller/PartitionLeaderSelector.scala
71 71
case false =>
72
- val newLeader = liveBrokersInIsr.head
72
+ val liveReplicasInIsr = liveAssignedReplicas.filter(r =>
liveBrokersInIsr.contains(r))
73
+ val newLeader = liveReplicasInIsr.head
--
This message was sent by Atlassian JIRA
(v6.2#6252)