[ https://issues.apache.org/jira/browse/KAFKA-3996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on KAFKA-3996 started by Ismael Juma. ------------------------------------------ > ByteBufferMessageSet.writeTo() should be non-blocking > ----------------------------------------------------- > > Key: KAFKA-3996 > URL: https://issues.apache.org/jira/browse/KAFKA-3996 > Project: Kafka > Issue Type: Bug > Affects Versions: 0.10.0.0 > Reporter: Jun Rao > Assignee: Ismael Juma > Fix For: 0.10.0.1 > > > Currently, in ByteBufferMessageSet.writeTo(), we try to finish writing all > bytes in the buffer in a single call. The code has been like that since 0.8. > This hasn't been a problem historically since the broker uses zero-copy to > send fetch responses and only use ByteBufferMessageSet to send produce > responses, which are small. However, in 0.10.0, if a consumer is before > 0.10.0, the broker has to down convert the message and use > ByteBufferMessageSet to send a fetch response to the consumer. If the client > is slow and there are lots of bytes in the ByteBufferMessageSet, we may not > be able to completely send all the bytes in the buffer for a long period of > time. When this happens, the Processor will be blocked and can't handle other > connections, which is bad. -- This message was sent by Atlassian JIRA (v6.3.4#6332)