[ https://issues.apache.org/jira/browse/KAFKA-48?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13140450#comment-13140450 ]
Taylor Gautier commented on KAFKA-48: ------------------------------------- I can see how it would be reasonable to do the first approach. It does limit one use case I was considering, which is to allow the consumer to decide in which order to fetch the topics after the poll is triggered, however, this can be done at request time when the topics are requested. As you say, the response is 100% compatible, it's just the request that changes. Therefore it would make sense I think to go ahead and make a new request type that doesn't yet exist and then the current fetch request remains the same on the wire and the behavior of it is just a degenerate case of this new use case with delay and bytes set to 0. I think you might consider how useful is it to wait for user specified time/bytes? It will add a lot of complexity to your implementation, and frankly if I have just the ability to do a multi-fetch that will wait until it has something has arrived and send me whatever it has at the current moment that will be good enough. It should also probably provide a simple timeout that will respond with nothing if the timeout expires. I think that's a huge win and you might consider -- is that good enough? For me - I would prefer to get the simple thing in the short term and work on the harder thing in the long-term rather than waiting a longer time for the harder thing to be done. > Implement optional "long poll" support in fetch request > ------------------------------------------------------- > > Key: KAFKA-48 > URL: https://issues.apache.org/jira/browse/KAFKA-48 > Project: Kafka > Issue Type: Bug > Reporter: Alan Cabrera > Assignee: Jay Kreps > Attachments: KAFKA-48-socket-server-refactor-draft.patch > > > Currently, the fetch request is non-blocking. If there is nothing on the > broker for the consumer to retrieve, the broker simply returns an empty set > to the consumer. This can be inefficient, if you want to ensure low-latency > because you keep polling over and over. We should make a blocking version of > the fetch request so that the fetch request is not returned until the broker > has at least one message for the fetcher or some timeout passes. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira