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

A fetch request in Fetch Purgatory can double count the bytes from the same delayed produce request

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 0.8.1
    • Fix Version/s: 0.8.2.0
    • Component/s: purgatory
    • Labels:
      None

      Description

      When a producer request is handled, the fetch purgatory is checked to ensure any fetch requests are satisfied. When the produce request is satisfied we do the check again and if the same fetch request was still in the fetch purgatory it would end up double counting the bytes received.

      Possible Solutions

      1. In the delayed produce request case, do the check only after the produce request is satisfied. This could potentially delay the fetch request from being satisfied.
      2. Remove dependency of fetch request on produce request and just look at the last logical log offset (which should mostly be cached). This would need the replica.fetch.min.bytes to be number of messages rather than bytes. This also helps KAFKA-671 in that we would no longer need to pass the ProduceRequest object to the producer purgatory and hence not have to consume any memory.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                sriramsub Sriram Subramanian
                Reporter:
                sriramsub Sriram Subramanian
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: