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)

Reply via email to