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

Jay Kreps resolved KAFKA-2050.
------------------------------
    Resolution: Fixed
      Reviewer: Jay Kreps
      Assignee: Jay Kreps  (was: Jun Rao)

Nice catch, committed a slight variation on your patch.

> Avoid calling .size() on java.util.ConcurrentLinkedQueue
> --------------------------------------------------------
>
>                 Key: KAFKA-2050
>                 URL: https://issues.apache.org/jira/browse/KAFKA-2050
>             Project: Kafka
>          Issue Type: Bug
>          Components: network
>            Reporter: Tim Brooks
>            Assignee: Jay Kreps
>         Attachments: KAFKA-2050.patch, dont_call_queue_size.patch
>
>
> Generally, it seems to be preferred to avoid calling .size() on a Java 
> ConcurrentLinkedQueue. This is an O(N) operation as it must iterate through 
> all the nodes.
> Calling this every time through the loop makes this issue worse under high 
> load. It seems like the same functionality can be attained by just polling 
> and checking for null.
> This is more imperative and less functional, but it seems alright since this 
> is in lower-level networking code.



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

Reply via email to