Jun,

Thank you.  I'm looking at the 0.8.1 - 
kafka.producer.async.DefaultEventHandler.  Would you please point to the new 
producer that you are referring to.  I assume that's one we should be using.

Thanks, again,
-j


On Thursday, April 3, 2014 11:20 PM, Jun Rao <[email protected]> wrote:
 
Yes, it's not very intuitive. Currently, it is true that we don't have gap
in the partition ids. Since we already build the new producer, we probably
don't have to patch the old producer.

Thanks,

Jun



On Thu, Apr 3, 2014 at 9:06 AM, joe smith <[email protected]> wrote:

> Hi,
>
> My apologies - a newbie here.
>
> In looking at the getPartition() method, I notice the returned value for
> keyed message is the "index" of a partition.  But when there is no key,
> then the value returned is the "id" of a partition.
>
>           case None =>
>             val availablePartitions =
> topicPartitionList.filter(_.leaderBrokerIdOpt.isDefined)
>             if (availablePartitions.isEmpty)
>               throw new LeaderNotAvailableException("No leader for any
> partition in topic " + topic)
>             val index = Utils.abs(Random.nextInt) %
> availablePartitions.size
>             val partitionId = availablePartitions(index).partitionId
>             sendPartitionPerTopicCache.put(topic, partitionId)
>             << partitionId >>
>
> It probably won't make a difference when there is no gaps in the sequence
> of partitions.  However, when there is a gap - e.g. some partitions are not
> available - then the partition id and index would be different.
>
> In the partitionAndCollate() method, the semantic seems to be using index
> instead of id.
>
> Thanks

Reply via email to