[ 
https://issues.apache.org/jira/browse/KAFKA-736?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Neha Narkhede updated KAFKA-736:
--------------------------------

    Attachment: check-message-ordering.py

We have the producer performance that can take in an option to produce messages 
with an id per thread and a configurable number of threads. We can then run 
console consumer and the script attached here to see if messages are ordered 
per thread. Please cross check this script, I'm a Python noob!

 ./bin/kafka-producer-perf-test.sh --broker-list localhost:9092 
--initial-message-id 1 --messages 100000 --threads 10 --topics sequential

bin/kafka-run-class.sh kafka.consumer.ConsoleConsumer --zookeeper 
localhost:2181 --topic sequential --consumer-timeout-ms 10000 --from-beginning 
> sequential-output &

python -B check-message-ordering.py -f sequential-output

Output from script -
 
Checking ordering for thread 1
All 20000 messages are ordered
Checking ordering for thread 0
All 21000 messages are ordered

So far, using this test I couldn't reproduce the reordering problem on the 
draft patch, but I ran a short test.
                
> Add an option to the 0.8 producer to mimic 0.7 producer behavior
> ----------------------------------------------------------------
>
>                 Key: KAFKA-736
>                 URL: https://issues.apache.org/jira/browse/KAFKA-736
>             Project: Kafka
>          Issue Type: Improvement
>          Components: producer 
>    Affects Versions: 0.8
>            Reporter: Neha Narkhede
>            Assignee: Neha Narkhede
>            Priority: Blocker
>              Labels: p2, replication-performance
>         Attachments: check-message-ordering.py, kafka-736-draft.patch, 
> kafka-736-v1.patch, kafka-736-v2.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> I profiled a producer throughput benchmark between a producer and a remote 
> broker. It turns out that the background send threads spends ~97% of its time 
> waiting to read the acknowledgement from the broker.
> I propose we change the current behavior of request.required.acks=0 to mean 
> no acknowledgement from the broker. This will mimic the 0.7 producer behavior 
> and will enable tuning the producer for very high throughput.

--
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