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

Sender should reset next batch expiry time between poll loops

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.1.0
    • Fix Version/s: 2.1.0
    • Component/s: clients
    • Labels:
      None

      Description

      Sender/RecordAccumulator never resets the next batch expiry time. Its always computed as the min of the current value and the expiry time for all batches being processed. This means that its always set to the expiry time of the first batch, and once that time has passed Sender starts spinning on epoll with a timeout of 0, which consumes a lot of CPU. This patch updates Sender to reset the next batch expiry time on each poll loop so that a new value reflecting the expiry time for the current set of batches is computed. We observed this running KSQL when investigating why throughput would drop after about 10 minutes (the default delivery timeout).

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                rohanpd Rohan Desai
                Reporter:
                desai.p.rohan Rohan Desai
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: