You can change the size of thread pool dedicated to query operations using the
pool-size property. Each query consumes a single thread from a Generic Operations ThreadPool on each Hazelcast member - let's call it the query-orchestrating thread. That thread is blocked throughout the whole execution-span of a query on the member.
The query-orchestrating thread will use the threads from the query-thread pool in two cases:
- if you run a
PagingPredicate- since each page is run as a separate task,
- if you set the system property
hazelcast.query.predicate.parallel.evaluationto true - since the predicates are evaluated in parallel.
Below is an example of that declarative configuration.
<executor-service name="hz:query"> <pool-size>100</pool-size> </executor-service>
Below is the equivalent programmatic configuration.
Config cfg = new Config(); cfg.getExecutorConfig("hz:query").setPoolSize(100);