The latest consumer changes to read data from Zookeeper during rebalance have 
made the consumer rebalance code incompatible with older versions (making 
rolling upgrades without downtime hard). The problem relates to how partitions 
are ordered. The old code seems to have returned the partitions sorted:

... rebalancing the following partitions: ArrayBuffer(0, 1, 2, 3, 4, 5, 6, 7, 
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) for topic produce-indexable-views 
with consumers: ...

the new code instead uses:

... rebalancing the following partitions: List(0, 5, 10, 14, 1, 6, 9, 13, 2, 
17, 12, 7, 3, 18, 16, 11, 8, 19, 4, 15) for topic produce-indexable-views with 
consumers: ...

This causes new consumers and old consumers to claim the same partitions. I 
realize that this may not be a big deal (although painful for us since it 
disagrees with our deployment automation) since the code wasn't officially 
released, but it seems simple enough to sort the partitions if you'd take such 
a patch.

/Sam



Reply via email to