Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-1895

Investigate moving deserialization and decompression out of KafkaConsumer

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • consumer
    • None

    Description

      The consumer implementation in KAFKA-1760 decompresses fetch responses and deserializes them into ConsumerRecords which are then handed back as the result of poll().

      There are several downsides to this:
      1. It is impossible to scale serialization and decompression work beyond the single thread running the KafkaConsumer.
      2. The results can come back during the processing of other calls such as commit() etc which can result in caching these records a little longer.

      An alternative would be to have ConsumerRecords wrap the actual compressed serialized MemoryRecords chunks and do the deserialization during iteration. This way you could scale this over a thread pool if needed.

      Attachments

        Issue Links

          Activity

            People

              hachikuji Jason Gustafson
              jkreps Jay Kreps
              Votes:
              3 Vote for this issue
              Watchers:
              13 Start watching this issue

              Dates

                Created:
                Updated: