[ https://issues.apache.org/jira/browse/KAFKA-5859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16158279#comment-16158279 ]
Ismael Juma commented on KAFKA-5859: ------------------------------------ The idea is not to store `bodyAndSize`, not mutate it. > Avoid retaining AbstractRequest in RequestChannel.Request > --------------------------------------------------------- > > Key: KAFKA-5859 > URL: https://issues.apache.org/jira/browse/KAFKA-5859 > Project: Kafka > Issue Type: Improvement > Reporter: Ismael Juma > Priority: Minor > Labels: newbie > > We currently store AbstractRequest in RequestChannel.Request.bodyAndSize. > RequestChannel.Request is, in turn, stored in RequestChannel.Response. We > keep the latter until the response is sent to the client. > However, after KafkaApis.handle, we no longer need AbstractRequest apart from > its string representation for logging. We could potentially replace > AbstractRequest with a String representation (if the relevant logging is > enabled). The String representation is generally small while some > AbstractRequest subclasses can be pretty large. The largest one is > ProduceRequest and we clear the underlying ByteBuffer explicitly in > KafkaApis.handleProduceRequest. We could potentially remove that special case > if AbstractRequest subclasses were not retained. > This was originally suggested by [~hachikuji] in the following PR > https://github.com/apache/kafka/pull/3801#discussion_r137592277 -- This message was sent by Atlassian JIRA (v6.4.14#64029)