You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Ismael Juma (JIRA)" <ji...@apache.org> on 2017/07/26 07:28:00 UTC

[jira] [Comment Edited] (KAFKA-5641) Metadata request should always be allowed to send no regardless of value for max.in.flight.requests.per.connection

    [ https://issues.apache.org/jira/browse/KAFKA-5641?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16101273#comment-16101273 ] 

Ismael Juma edited comment on KAFKA-5641 at 7/26/17 7:27 AM:
-------------------------------------------------------------

My comment was about the broker. And yes, the broker applies head of line blocking so that it processes one request at a time for a given connection. If you send multiple requests, all but one are kept in the socket buffer. There is logic for this in the Selector.


was (Author: ijuma):
My comment was about the broker. And yes, the broker applies head of line blocking so that it processes one request at a time. If you send multiple requests, all but one are kept in the socket buffer. There is logic for this in the Selector.

> Metadata request should always be allowed to send no regardless of value for max.in.flight.requests.per.connection
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-5641
>                 URL: https://issues.apache.org/jira/browse/KAFKA-5641
>             Project: Kafka
>          Issue Type: Improvement
>          Components: network, producer 
>    Affects Versions: 0.11.0.0
>            Reporter: huxihx
>
> Metadata request might not be able to be sent when `max.in.flight.requests.per.connection` is set to 1 and there is already an inflight request in the same node's queue, as show below:
> {code:title=NetworkClient.java|borderStyle=solid}
> private long maybeUpdate(long now, Node node) {
>             String nodeConnectionId = node.idString();
>             if (canSendRequest(nodeConnectionId)) {
>             ......
>             }
> {code}
> However, setting `max.in.flight.requests.per.connection` to 1 actually means no out-of-order for the produced records, Metadata requests should have no related with this config. We don't have to check the inflight request's queue size when sending Metadata request.
> [~ijuma] Does it make any sense? If yes, I will work on it.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)