Hi,
These days I have been focus on Kafka 0.8 replication design and found
three replication design proposals from the wiki (according to the document,
the V3 version is used in Kafka 0.8 release).
But the v3 proposal is not complete and is inconsistent with the
release.
Is there a complete Kafka 0.8 replication design document?
Here are part of my questions about Kafka 0.8 replication design.
#1 According to V3, /brokers/topics/[topic]/[partition_id]/leaderAndISR
stores leader and ISR of a partition. However in 0.8.2 release there is not
such a znode, instead, it use
/brokers/topics/[topic]/partitions/[partition_id]/state to store the leader and
ISR of a partition.
#2 In /brokers/topics/[topic], we can get all the ISR for all partitions in a
certain topic, why we need
/brokers/topics/[topic]/partitions/[partition_id]/state ?
#3 I didn't find /admin/partitions_add/[topic]/[partition_id] and
/admin/partitions_remove/[topic]/[partition_id] during my adding and removing
partitions with bin/kafka-topics.sh. Is this deprecated in the 0.8 release?
#4 I found these two znode under /admin only will be automaticall
removed after the action complete. /admin/reassign_partitions/,
/admin/preferred_replica_election/. But why this znode (/admin/delete_topic/)
will not be removed automatically?
#5 What's the LeaderAndISRCommand in Senario A in V3? Is that same
with LeaderAndISRRequest?
#6 For Senario D, when a certain broker becomes Controller, it will
send a LeaderAndISRRequest to brokers with a special flag INIT. For Senario C,
when the broker receive LeaderAndISRRequest with INIT flag, it will delete all
local partitions not in set_p. Why we need to delete all local partitions for
Controller changing?
#7 For Senario E. Broker startup. The first step is read the
replica assignment. Doesn't it need to add its id to /brokers/ids first?
#8 Senario H. Add/remove partitions to an existing topic. In my
test, I didn't found such znode for PartitionRemove Path/PartitionAdd Path in
Zookeeper. Is this approach for partition adding/deleting deprecated? In fact,
I didn't observe any znode change during my adding/deleting partitions. So
what's the process of Kafka partition adding/deleting?
#9 Senario G. seems not consistent with the release one
Regards,
Jason