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

Jun Rao commented on KAFKA-267:
-------------------------------

Thanks for patch v3. The code is still pretty messy, mostly for historical 
reasons. For example, the fix/variable length option is mixed with seqIdMode 
and batch size, etc. I suggest that we do the following: (1) Get rid of the 
seqId mode and always generate sequential ids in the message header. If the 
user doesn't specify the starting index, seq Id will start from 0. (2) Alway 
pad a message with random bytes, whether the message is fix length or variable 
length. (3) Don't batch messages into sets in the sync mode. Instead, send one 
message at a time in sync mode. (4) The send gap should probably be added after 
sending a batch of messages, not after each message. If we do all this, the 
send thread can just have one simple loop as the following:

while(j < messagesPerThread) {
  for each topic {
    msgString = // get the message for a seq id of a given size     
    msg = create Message
    producer.send(msg)
    if(config.messageSendGapMs > 0 && batch size is reached)
      Thread.sleep(config.messageSendGapMs)
  }
}

Also, we need to patch system test since the command line option has changed.

                
> Enhance ProducerPerformance to generate unique random Long value for payload
> ----------------------------------------------------------------------------
>
>                 Key: KAFKA-267
>                 URL: https://issues.apache.org/jira/browse/KAFKA-267
>             Project: Kafka
>          Issue Type: Improvement
>            Reporter: John Fung
>            Assignee: Yang Ye
>         Attachments: kafka-267-v1.patch, kafka-267-v2.patch, 
> kafka-267-v3.patch
>
>
> This is achieved by:
> 1. Adding a new class UniqueRandom to shuffle a range of numbers.
> 2. An optional new argument "start-index" is added to specify the starting 
> number of the range to be shuffled. If this argument is omitted, it is 
> defaulted to 1. So it is backward compatible with the argument options.
> 3. The ending number of the range is the starting number + number of messages 
> - 1.
> Other ProducerPerformance advancement: 
> 1. producing to multiple topics
> 2. supporting multiple instances of producer performance ( and distinguishes 
> them)
> 3. allowing waiting some time after sending a request

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to