Uploaded image for project: 'Nutch'
  1. Nutch
  2. NUTCH-2625

ProtocolFactory.getProtocol(url) may create multiple plugin instances

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.15
    • Fix Version/s: 1.16
    • Component/s: protocol
    • Labels:
      None

      Description

      The method ProtocolFactory.getProtocol(URL url) may create unnecessarily multiple instances of protocol plugins given the same configuration. The following snippets from a Fetcher using 100 FetcherThreads show that the setConf(conf) method of the protocol-okhttp plugin is called 100 times (once for each thread):

      2018-07-12 12:04:32,811 INFO [main] org.apache.nutch.fetcher.FetcherThread: FetcherThread 1 Using queue mode : byHost
      ... (skipped 98 repeated messages)
      2018-07-12 12:04:33,136 INFO [main] org.apache.nutch.fetcher.FetcherThread: FetcherThread 1 Using queue mode : byHost
      
      ...
      
      2018-07-12 12:04:37,493 INFO [FetcherThread] org.apache.nutch.protocol.RobotRulesParser: robots.txt whitelist not configured.
      2018-07-12 12:04:37,493 INFO [FetcherThread] org.apache.nutch.protocol.okhttp.OkHttp: http.proxy.host = null
      ...
      2018-07-12 12:04:37,494 INFO [FetcherThread] org.apache.nutch.protocol.okhttp.OkHttp: http.enable.cookie.header = false
      
      ... (skipped 98 blocks of repeated messages)
      
      2018-07-12 12:04:39,080 INFO [FetcherThread] org.apache.nutch.protocol.RobotRulesParser: robots.txt whitelist not configured.
      2018-07-12 12:04:39,080 INFO [FetcherThread] org.apache.nutch.protocol.okhttp.OkHttp: http.proxy.host = null
      ...
      2018-07-12 12:04:39,080 INFO [FetcherThread] org.apache.nutch.protocol.okhttp.OkHttp: http.enable.cookie.header = false
      

      The method ProtocolFactory.getProtocol(URL url) is synchronized, however each FetcherThread holds its own instance of the ProtocolFactory.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                snagel Sebastian Nagel
                Reporter:
                snagel Sebastian Nagel
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: