kafka-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anton Karamanov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KAFKA-1644) Inherit FetchResponse from RequestOrResponse
Date Thu, 02 Oct 2014 07:05:35 GMT

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

Anton Karamanov commented on KAFKA-1644:

Jun, no {{FetchResponseSend}} still uses sendfile logic. {{FetchResponse.writeTo()}} only
writes a fixed sized fetch message header to buffer.

-  buffer.putInt(size)
-  buffer.putInt(fetchResponse.correlationId)
-  buffer.putInt(fetchResponse.dataGroupedByTopic.size) // topic count
+  fetchResponse.writeTo(buffer)

Guozhang, indeed it is not, it's priority can be lowered if necessary. But it's a pretty simple
change too.
The problem you are describing with {{FetchResponse.writeTo}} not being semantically consistent
with that of other API messages is the very same I've mentioned as my concern. However, it
seems like an OK compromise to me to use it for writing fixed-size message header, which depends
only on {{FetchResponse}} members ({{correlationId}} and size of {{dataGroupedByTopic}}) instead
of making it to do nothing at all just to conform to required function signature.

My primary goal for this task is to make {{FetchResponse}} to be a part of common superclass
to simplify client-side message flow control. Maybe another trait can be introduced without
any abstract members, just to mark all Kafka API messages. Or {{RequestOrResponse}} can be
split into {{RequestOrResponse}} without {{writeTo}} abstract method and something like {{Writable}}
trait which will require to provide it.

> Inherit FetchResponse from RequestOrResponse
> --------------------------------------------
>                 Key: KAFKA-1644
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1644
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Anton Karamanov
>            Assignee: Anton Karamanov
>         Attachments: 0001-KAFKA-1644-Inherit-FetchResponse-from-RequestOrRespo.patch
> Unlike all other Kafka API responses {{FetchResponse}} is not a subclass of RequestOrResponse,
which requires handling it as a special case while processing responses.

This message was sent by Atlassian JIRA

View raw message