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

Update delay timeout for DelayedRemoteFetch request

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.8.0
    • None

    Description

      We are reusing the fetch.max.wait.ms config as a delay timeout for DelayedRemoteFetchPurgatory. fetch.max.wait.ms purpose is to wait for the given amount of time when there is no data available to serve the FETCH request.

      The maximum amount of time the server will block before answering the fetch request if there isn't sufficient data to immediately satisfy the requirement given by fetch.min.bytes.
      

      https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/server/DelayedRemoteFetch.scala#L41

      Using the same timeout in the DelayedRemoteFetchPurgatory can confuse the user on how to configure optimal value for each purpose. Moreover, the config is of LOW importance and most of the users won't configure it and use the default value of 500 ms.

      Having the delay timeout of 500 ms in DelayedRemoteFetchPurgatory can lead to higher number of expired delayed remote fetch requests when the remote storage have any degradation.

      We should introduce one fetch.remote.max.wait.ms config (preferably server config) to define the delay timeout for DelayedRemoteFetch requests (or) take it from client similar to request.timeout.ms.

      Attachments

        Issue Links

          Activity

            People

              ckamal Kamal Chandraprakash
              ckamal Kamal Chandraprakash
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: