[ 
https://issues.apache.org/jira/browse/KAFKA-1988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14339751#comment-14339751
 ] 

Jun Rao commented on KAFKA-1988:
--------------------------------

Actually, we can probably keep the same logic in determining the partition from 
key in Partitioner. We  can move the current code in abs() into Partitioner, 
and give it a new name like toPositive(). Then we can replace Utils.abs() with 
toPositive() it in the following code in Partitioner.

            // hash the key to choose a partition
            return Utils.abs(Utils.murmur2(key)) % numPartitions;

This way, we will preserve the key distribution of existing users of the new 
producer.

Tong,

Do you want to submit a new patch based on that?



> org.apache.kafka.common.utils.Utils.abs method returns wrong value for 
> negative numbers.
> ----------------------------------------------------------------------------------------
>
>                 Key: KAFKA-1988
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1988
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 0.8.2.0
>            Reporter: Tong Li
>            Assignee: Tong Li
>            Priority: Blocker
>             Fix For: 0.8.2.1
>
>         Attachments: KAFKA-1988.patch
>
>
> org.apache.kafka.common.utils.Utils.abs method returns wrong value for 
> negative numbers. The method only returns intended value for positive 
> numbers. All negative numbers except the Integer.Min_Value will be returned 
> an unsigned integer.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to