Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-7694

Allow setting an overall client request timeout that includes retries

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • None
    • None
    • SolrJ

    Description

      Current we're able to set a socket timeout on the underlying httpClient of an LBHttpSolrServer (used by CloudSolrServer). However, this timeout only applies to a single request that's issued from LBHttpSolrServer, but LBHttpSolrServer will go on to try all eligible candidate servers when a SocketTimeoutException is thrown, so that potentially the request can in fact take (socketTimeout * number of eligible servers) time to return from the caller's perspective. This is hard to predict.

      We should allow setting an overall client request timeout apart from the single request socketTimeout, so that the request call is guaranteed terminate by this timeout (either via success or via a timeout exception). This allows the client application to properly size their timeout and request thread pools to avoid request thread exhaustion if solr is experiencing issues.

      Attachments

        Issue Links

          Activity

            People

              thelabdude Timothy Potter
              mewmewball Jessica Cheng Mallet
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: