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

Pratik kumar commented on KAFKA-4522:
-------------------------------------

Actually I am using kafka v0.8.x , wherein the async producer(object lock) 
acquires a lock before pushing events to array blocking queue. This might not 
be necessary as the queue is blocking and already thread safe.
This causes a high amount of lock contention.  As for proof let me run a test 
and get back to you.

> Using Disruptor instead of Array Blocking queue in Kafka Producer
> -----------------------------------------------------------------
>
>                 Key: KAFKA-4522
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4522
>             Project: Kafka
>          Issue Type: Improvement
>          Components: producer 
>            Reporter: Pratik kumar
>
> Kafka Producer currently uses Java's Array Blocking Queue to store outbound 
> kafka message before batching them in async mode. In case of high production 
> rate of kafka messages,this adds to lock contention on the user and is 
> generally hidden from user.(quoting from personal experience)
> Usage of LMAX Disruptor can reduce the lock contention overhead put by Kafka 
> Producer 
> LMAX Disruptor -> https://github.com/LMAX-Exchange/disruptor
> Also can someone help me understand if blocking queue gives any guarantees 
> inherent to kafka's design(and hence is irreplaceable)



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

Reply via email to