Ismael Juma created KAFKA-5859:
----------------------------------
Summary: 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
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)