Enabling multi-threaded queries
Multi-threaded queries are useful for a low-indexing volume with longer running queries.
Multi-threaded queries can offset the load of a query onto the CPU instead of writing and reading to disk. Benchmarking is recommended, multi-threaded queries do not always improve performance.
Use the CQL index management commands to set the number of queryExecutorThreads
for the search index config:
-
Change the number of threads on an existing table:
ALTER SEARCH INDEX CONFIG ON healthcare.health_data SET config.queryExecutorThreads=4;
-
To view the pending search index config in XML format, use this CQL shell command:
DESCRIBE PENDING SEARCH INDEX CONFIG ON healthcare.health_data;
The results in XML:
<config> ... <query> <maxBooleanClauses>1024</maxBooleanClauses> <filterCache class="solr.SolrFilterCache" highWaterMarkMB="2048" lowWaterMarkMB="1024"/> <enableLazyFieldLoading>true</enableLazyFieldLoading> <useColdSearcher>true</useColdSearcher> <maxWarmingSearchers>16</maxWarmingSearchers> ... </query> ... **<queryExecutorThreads\>4</queryExecutorThreads\>** </config> ...
-
Use the RELOAD SEARCH INDEX command to apply the pending changes to the search index:
RELOAD SEARCH INDEX ON healthcare.health_data;
-
To view the active search index in XML format:
DESCRIBE ACTIVE SEARCH INDEX CONFIG ON healthcare.health_data;