Class LTRThreadModule

  • All Implemented Interfaces:
    NamedListInitializedPlugin

    public final class LTRThreadModule
    extends Object
    implements NamedListInitializedPlugin
    The LTRThreadModule is optionally used by the LTRQParserPlugin and LTRFeatureLoggerTransformerFactory classes to parallelize the creation of Feature.FeatureWeight objects.

    Example configuration:

     <queryParser name="ltr" class="org.apache.solr.ltr.search.LTRQParserPlugin">
       <int name="threadModule.totalPoolThreads">10</int>
       <int name="threadModule.numThreadsPerRequest">5</int>
     </queryParser>
    
     <transformer name="features" class="org.apache.solr.ltr.response.transform.LTRFeatureLoggerTransformerFactory">
       <int name="threadModule.totalPoolThreads">10</int>
       <int name="threadModule.numThreadsPerRequest">5</int>
     </transformer>
     
    If an individual solr instance is expected to receive no more than one query at a time, it is best to set totalPoolThreads and numThreadsPerRequest to the same value.

    If multiple queries need to be serviced simultaneously then totalPoolThreads and numThreadsPerRequest can be adjusted based on the expected response times.

    If the value of numThreadsPerRequest is higher, the response time for a single query will be improved up to a point. If multiple queries are serviced simultaneously, the value of totalPoolThreads imposes a contention between the queries if (totalPoolThreads < numThreadsPerRequest * total parallel queries).

    • Constructor Detail

      • LTRThreadModule

        public LTRThreadModule()
    • Method Detail

      • getInstance

        public static LTRThreadModule getInstance​(org.apache.solr.common.util.NamedList<?> args)
      • setTotalPoolThreads

        public void setTotalPoolThreads​(int totalPoolThreads)
      • setNumThreadsPerRequest

        public void setNumThreadsPerRequest​(int numThreadsPerRequest)
      • createQuerySemaphore

        public Semaphore createQuerySemaphore()
      • execute

        public void execute​(Runnable command)
      • setExecutor

        public void setExecutor​(ExecutorService sharedExecutor)