Package org.apache.solr.ltr
Class LTRThreadModule
- java.lang.Object
-
- org.apache.solr.core.CloseHook
-
- org.apache.solr.ltr.LTRThreadModule
-
- All Implemented Interfaces:
NamedListInitializedPlugin
public final class LTRThreadModule extends CloseHook implements NamedListInitializedPlugin
The LTRThreadModule is optionally used by theLTRQParserPlugin
andLTRFeatureLoggerTransformerFactory
classes to parallelize the creation ofFeature.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 settotalPoolThreads
andnumThreadsPerRequest
to the same value. If multiple queries need to be serviced simultaneously thentotalPoolThreads
andnumThreadsPerRequest
can be adjusted based on the expected response times. If the value ofnumThreadsPerRequest
is higher, the response time for a single query will be improved up to a point. If multiple queries are serviced simultaneously, the value oftotalPoolThreads
imposes a contention between the queries if(totalPoolThreads < numThreadsPerRequest * total parallel queries)
.
-
-
Constructor Summary
Constructors Constructor Description LTRThreadModule()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
acquireLTRSemaphore()
Semaphore
createQuerySemaphore()
void
execute(Runnable command)
static LTRThreadModule
getInstance(NamedList args)
void
init(NamedList args)
void
postClose(SolrCore core)
void
preClose(SolrCore core)
void
releaseLTRSemaphore()
void
setExecutor(ExecutorService sharedExecutor)
void
setNumThreadsPerRequest(int numThreadsPerRequest)
void
setTotalPoolThreads(int totalPoolThreads)
-
-
-
Method Detail
-
getInstance
public static LTRThreadModule getInstance(NamedList args)
-
init
public void init(NamedList args)
- Specified by:
init
in interfaceNamedListInitializedPlugin
-
setTotalPoolThreads
public void setTotalPoolThreads(int totalPoolThreads)
-
setNumThreadsPerRequest
public void setNumThreadsPerRequest(int numThreadsPerRequest)
-
createQuerySemaphore
public Semaphore createQuerySemaphore()
-
acquireLTRSemaphore
public void acquireLTRSemaphore() throws InterruptedException
- Throws:
InterruptedException
-
releaseLTRSemaphore
public void releaseLTRSemaphore() throws InterruptedException
- Throws:
InterruptedException
-
execute
public void execute(Runnable command)
-
setExecutor
public void setExecutor(ExecutorService sharedExecutor)
-
-