[
https://issues.apache.org/jira/browse/KAFKA-267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13480112#comment-13480112
]
Jun Rao commented on KAFKA-267:
-------------------------------
Thanks for patch v4. It's better, but still messy. Some more comments:
40. I suggest that we combine initialMessageIdOpt and varyMessageSizeOpt into
one option, something like message-mode. It will take 3 choices: sequence,
fix-length, and variable-length that are mutually exclusive.
41. I suggest that batchSizeOpt be only used in async mode. In sync mode, we
always send a single message at a time without batching. This will simplify the
way that we generate messages. When generating the data, we just need to
generate one message at a time, depending on message-mode.
42. The following 2 methods should be moved out of ProducerThread and put in a
util class.
generateProducerData
generateMessageWithSeqId
43. UniqueRandom: Why do we need this class? Can't we just use
Random.nextBytes()?
44. The following chunk of code is identical to that in Kafka. Could we create
a util function to share the code?
val metricsConfig = new KafkaMetricsConfig(verifiableProps)
metricsConfig.reporters.foreach(reporterType => {
val reporter = Utils.createObject[KafkaMetricsReporter](reporterType)
reporter.init(verifiableProps)
if (reporter.isInstanceOf[KafkaMetricsReporterMBean])
Utils.registerMBean(reporter,
reporter.asInstanceOf[KafkaMetricsReporterMBean].getMBeanName)
})
45. There are a few long lines like the following. Let's put .format in a
separate line.
println(("%s, %d, %d, %d, %d, %.2f, %.4f, %d,
%.4f").format(formattedReportTime, config.compressionCodec.codec,
threadId, config.messageSize, config.batchSize, (bytesSent*1.0)/(1024 * 1024),
mbPerSec, nSends, numMessagesPerSec))
> 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, kafka-267-v4.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