Red Hat Training

A Red Hat training course is available for Red Hat JBoss Data Virtualization

10.4. Threading Considerations

Although, you can find information about all JBoss Data Virtualization settings using the Management CLI (see Section 11.1, “JBoss Data Virtualization Settings”), this section provides some additional information about those settings related to threading.
max-threads
Default is 64. The query engine has several settings that determine its thread utilization. max-threads sets the total number of threads available in the process pool for query engine work (such as processing plans, transaction control operations, and processing source queries).
You should consider increasing the maximum threads on systems with a large number of available processors and/or when it is necessary to issue non-transactional queries involving a large number of concurrent source requests.
max-active-plans
Default is 20. This value should always be smaller than max-threads. By default, thread-count-for-source-concurrency is calculated by (max-threads / max_active_plans) * 2 to determine the threads available for processing concurrent source requests for each user query. Increasing the max-active-plans should be considered for workloads with a high number of long running queries and/or systems with a large number of available processors. If memory issues arise from increasing the max-threads and max-active-plans, then consider decreasing the amount of heap held by the buffer manager or decreasing the processor-batch-size to limit the base number of memory rows consumed by each plan.
Increasing max-active-plans should be considered for workloads with a high number of long running queries and/or systems with a large number of available processors. If memory issues arise from increasing max-threads and max-active-plans, then consider decreasing buffer-service-processor-batch-size to limit the base number of memory rows consumed by each plan.
thread-count-for-source-concurrency
Default is 0. This value should always be smaller than max-threads. This property sets the number of concurrently executing source queries per user request. 0 indicates to use the default calculated value based on 2 * (max-threads / max-active-plans). Setting this to 1 forces serial execution of all source queries by the processing thread. Any number greater than 1 limits the maximum number of concurrently executing source requests accordingly.
Using the defaults, each user request would be allowed 6 concurrently executing source queries. If the default calculated value is not applicable to your workload, for example, if you have queries that generate more concurrent long running source queries, you should adjust this value.
Also see Section 10.6, “Transport Considerations” for max-socket-threads.