[
https://issues.apache.org/jira/browse/KAFKA-659?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sönke Liebau resolved KAFKA-659.
--------------------------------
Resolution: Fixed
I'll close this for now since no-one objected here or on the mailing list, so
I'll assume my understanding of this being fixed by now is correct.
> Support request pipelining in the network server
> ------------------------------------------------
>
> Key: KAFKA-659
> URL: https://issues.apache.org/jira/browse/KAFKA-659
> Project: Kafka
> Issue Type: New Feature
> Reporter: Jay Kreps
> Priority: Major
>
> Currently the network layer in kafka will only process a single request at a
> time from a given connection. The protocol is designed to allow pipelining of
> requests which would improve latency.
> There are two changes that would have to made for this to work, in my
> understanding:
> 1. Currently once a completed request is read from a socket the server does
> not register for "read interest" again until a response is sent. The server
> would have to register for read interest immediately to allow reading more
> requests.
> 2. Currently the socket server adds all requests to a single "request
> channel" that serves as a work queue for all the background i/o threads. One
> requirement for Kafka is to do in order processing of requests from a given
> socket. This is currently achieved by not reading any new requests from a
> socket until the currently outstanding request is processed. To maintain this
> guarantee we would have to guarantee that all requests from a particular
> socket went to the same I/O thread. A simple way to do this would be to have
> work queue per I/O thread. One downside of this is that pinning requests to
> I/O threads will add latency variance--if that thread stalls due to a slow
> I/O no other thread can pick up the slack. So perhaps there is a better way
> that isn't overly complex?
> Would be good to nail down the design for this as a first step.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)