Hi Unmesh,

Very cool prototype!

Hi Colin,

The KIP proposes a record called IsrChange which includes the
partition, topic, isr, leader and leader epoch. During normal
operation ISR changes do not result in leader changes. Similarly,
leader changes do not necessarily involve ISR changes. The controller
implementation that uses ZK modeled them together because
1. All of this information is stored in one znode.
2. ZK's optimistic lock requires that you specify the new value completely
3. The change to that znode was being performed by both the controller
and the leader.

None of these reasons are true in KIP-500. Have we considered having
two different records? For example

1. IsrChange record which includes topic, partition, isr
2. LeaderChange record which includes topic, partition, leader and leader epoch.

I suspect that making this change will also require changing the
message AlterIsrRequest introduced in KIP-497: Add inter-broker API to
alter ISR.

Thanks
-Jose

Reply via email to