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